Job Description
Job DescriptionTitle: Distributed Systems Software Engineer (Functional Programming), Mid - Senior levels
Location: 100% Remote, flexible on time zone
Type: Direct hire
Start: ASAP
Salary: 130 - 175K
Job Description: We are seeking someone with experience building and maintaining highly performant distributed systems. You will have experience with functional programming and object-oriented design and development. As a fast-growing team it is important that you can successfully collaborate with developers, architects, and product managers, ideally in an early-stage company environment. We're looking for engineers who are suspicious of easy answers and who can't walk past something broken without wanting to fix it.
Requirements
- 4+ years of work experience with Distributed Systems
- 3+ years of work experience with Functional Programming
- Highly skilled in Scala, or another functional language, such as Haskel (need to have type-level functional programming experience from somewhere so candidate can readily navigate and improve upon our codebase).
- Experience building/designing robust protocols for distributed systems. Not just off-shelf assembly distributed system experience - must have built and know what's under the hood.
- Continue to enhance product. Consistently touching distributed protocol.
- Familiarity with Akka/Pekko or the Actor-model
- Exposure to designing, implementing, and maintaining complex data infrastructures
- Hands-on experience building/designing and developing scalable, high performing and fault-tolerant applications
- Understanding of concurrency in the JVM
- Graph databases and graph algorithms - Nice to have
- Experience using Kafka - Nice to have
- Experience using Cassandra or ScyllaDB (esp. in large clusters) - Nice to have
