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 backpressured streaming pipelines
- Ensuring horizontal and vertical scalability
Quine, our core technology, is the world's first streaming graph interpreter. Built on native streaming graph technology as the result of 7+ years of DARPA-funded R&D, this foundational new technology makes it easy for infinite datasets to be efficiently analyzed in real-time, and trigger events immediately. Quine powers many key use cases in cybersecurity, fraud detection, data pipeline engineering, infrastructure optimization, and a long list of others.
As a Distributed Systems Engineer at thatDot, we are seeking someone with interest and experience in distributed systems and data-intensive applications. You will have expertise 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, UX teams, and product managers, ideally in an early stage company environment.
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.
Role and Responsibilities
- Learn. Become an expert in this cutting-edge technology. The “work” in “knowledge work” is all about gaining the necessary knowledge.
- Share. When you’ve spent time building a mental model to solve a problem, teach it to your colleagues so we can all get smarter and build better things together.
- Code. Great code follows from clear thinking. Write code you’re proud of and help grow the community of other contributors.
- Collaborate. As a fast growing team our engineers must communicate and work together to achieve goals.
- Write. Document your work in ways our community of backend software engineers will want to engage with.
- Represent. As a distributed systems engineer you are our user. Advocate for the needs of our users and contribute to the community discussion on product direction and uses.
Job Requirements
- Strong interest and background in distributed systems
- Experience in Scala, Java, or other strongly typed JVM languages
- Experience in streaming systems and back pressuring (ideally Akka streams)
- Familiarity with functional programming and ability to use it pragmatically
- Solid understanding of concurrency in the JVM
- Familiarity with Akka or the Actor-model
- Nice to have: experience using Cassandra (esp. in large clusters)
- Nice to have: experience using Kafka
About thatDot
thatDot is working hard to change how software is built and deployed, to turn high-volume data into high-value data. But it’s the people that we work with make it such a rewarding experience. So you can start to get to know us, here is 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.
Code:
- It’s fun! It’s fascinating. Always hold on to that.
- 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. Code is an expression of your mental model.
People:
- A person ≠ their opinions. We value people even when we disagree with their opinions.
- Non-traditional backgrounds are highly prized. E.g. Philosophy majors wanted!
- We complement each other. Everyone is good at something and bad at something.
- We are upfront about what we don’t know, but we are also not afraid to learn anything that we don’t know.
- Humility and intellectual security are important for all of us.
Hiring process:
- No coding on a whiteboard, brain-teasers, or guess-what-I’m-thinking questions.
- 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.
Looking for more roles like this?
Join our talent network and get matched with similar opportunities from top companies.