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.