[Remote] Software Engineer (Scala)
Note: The job is a remote job and is open to candidates in USA. thatDot specializes in solving high-throughput data streaming problems using graphs. The Software Engineer will build and maintain highly performant distributed systems, design scalable and fault-tolerant applications, implement streaming pipelines and graph-based features, and collaborate with developers, architects, and product managers.
Responsibilities
- Learn. We value curiosity and share a desire to continuously learn new things, including from each other
- Collaborate. As a fast growing team, we must communicate and work together to achieve goals. That includes both within teams and across our small, dynamic team
- Write. Clarity of thought is best reflected in clear documentation. We document our work in ways our community of backend software engineers will want to engage with
- Represent. Advocate for the needs of our users and contribute to the community discussion on product direction and uses
- Designing and maintaining protocols in distributed systems
- Implementing new features in our querying engines and actor-based graph interpreter
- Creating high-throughput back-pressured streaming pipelines
- Ensuring horizontal and vertical scalability
Skills
- Highly skilled in Scala or another functional language
- Experience designing robust protocols for distributed systems
- Familiarity with Akka/Pekko or the Actor-model
- Exposure to designing, implementing, and maintaining complex data infrastructures
- Hands-on experience designing and developing scalable, high performing and fault-tolerant applications
- Able to rapidly learn and apply new technologies
- Understanding of concurrency in the JVM
- Willingness to create and update documentation to facilitate learning, with comfort speaking to groups and presenting information
- Nice to have: graph databases and graph algorithms
- Nice to have: experience using Kafka
- Nice to have: experience using Cassandra or ScyllaDB (esp. in large clusters)
Benefits
- Support for fully-remote and in-person collaboration as it works best for individuals and the team.
- Opportunity to learn and grow.
- Continuous learning, including learning from each other.
Company Overview