Build and maintain highly performant distributed systems using functional programming and Scala. Design robust protocols and scalable, fault-tolerant applications for high-throughput data streaming. Collaborate with cross-functional teams in a remote-first environment to solve complex graph-based data problems.
Key Highlights
Key Responsibilities
Technical Skills Required
Benefits & Perks
Nice to Have
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.
Location
Support for fully-remote and in-person collaboration as it works best for individuals and the team. Some of our team is based in Portland, Oregon, but we are a remote-first company.
Job Requirements
- 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)
Interested in remote work opportunities in Development & Programming? Discover Development & Programming Remote Jobs featuring exclusive positions from top companies that offer flexible work arrangements.
Day to day at thatDot
- 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.
About us
thatDot is a growing company that specializes in solving high-throughput data streaming problems (entity resolution, streaming joins, ingest pipelines, incremental computation, pattern matching, etc.) using graphs. Some of the typical challenges we deal with include:
- 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
Quine, our core technology, is a streaming graph that combines key operational features of event stream processing systems like Flink with the graph data structure of databases like Neo4J or Tigergraph. Quine makes it easy to find complex patterns and anomalies in massive data streams and trigger action immediately. Built on native streaming graph technology as the result of 7+ years of DARPA-funded R&D, this hot new technology makes it easy for infinite datasets to be efficiently analyzed in real-time. Ideal use cases for Quine include financial and identity fraud detection, XDR/EDR solutions, network observability/root cause analysis, and e-commerce.
Browse our curated collection of remote jobs across all categories and industries, featuring positions from top companies worldwide.
What We Believe About
Work:
- About more than just a paycheck.
- Should be intellectually engaging.
- Should provide the opportunity to learn and grow.
- Short-termism in tech is bad. It’s worth building lasting relationships.
- Punching a clock or counting hours is bad. Results > Hours.
- It’s a big part of our lives, but it’s not all there is.
Creativity In Work:
- Work should be fun!
- Knowledge work - Coding is the easy part. Figuring out the ideas is hard work.
- Our mental model is really what we’re building when coding. Communicating is an expression of your mental model. First think clearly, then help someone else share your thoughts.
Hiring:
- Plan to teach us something about the cool work you’ve done in the past.
- Let us teach you something about the cool work we’re doing now.
Similar Jobs
Explore other opportunities that match your interests