Lead Software Engineer Distributed Systems
Job Description:
REMOTE POSITION USA OR CANADA
MANDATORY REQUIREMENTS:
Seniority
7+ years of experience as a software engineer with a very high level of general aptitude and experience in distributed systems
Work experience
Have been part of high velocity startup through high stages of growth, Series B - Series E
Staff-level minimum, with a history of rapid promotion at the listed companies.
Strong backend engineers
Education
Have graduated from a top 30 CS program such as: University of Waterloo, Harvard, Columbia, Princeton, Stanford, UC Berkeley, MIT, CMU, CalTech, Cornell, Duke, Dartmouth, Brown, IITs
Skills
Extremely strong in systems design fundamentals and understanding of how large-scale distributed systems behave
You've created event collection or data streaming services that power company critical systems ( work with message queues, Kafka, SQL databases, Kubernetes, Docker)
You've owned systems that have undergone orders of magnitude of growth and helped them scale accordingly
You've built data sync engines that process and move terabytes of data per day in a scalable way
Work close to the infrastructure layer of code, someone who knows how even the tools (i.e. spark, flink, kafka) are built
Soft skills
Extremely strong communication skills, and are a fast learner who is excited to take on the challenges we face
JOB OVERVIEW
We are looking for a distributed systems engineer to work on the systems that power the syncing engine our customers and other engineering teams rely on. This presents an exciting challenge where you can apply your expertise in distributed systems, performance optimization, and troubleshooting to push the boundaries of what is possible and meaningfully improve our ability to move massive amounts of customer data. This role also provides a unique opportunity to work on a multi-cloud and multi-region infrastructure that supports a global customer base.
We believe in enabling our engineers to do their best work for our customers by giving them extremely high levels of ownership and autonomy. This comes in different forms: you will own and deliver projects from start to finish, you will work directly with customers to solve their hardest scaling problems, and you will have significant influence over what we work on as a team and company.
Some of the problems we'll be working on include:
- Sync Speed: Customers want to sync a lot of data to important destinations like Facebook and Snapchat, which requires us to analyze every part of our syncing process and find where we can optimize to sync data more quickly
- Streaming Syncing: We currently sync data from sources in batch only, but envision a world where we also do syncs in real-time and support streaming sources like webhooks and queues
- Scalability and Reliability: As part of our rapid growth, we're always evaluating current future bottlenecks in scaling and reliability, and architecting for the next order of magnitude of growth
- Personalization API: Our personalisation API product provides a low latency caching layer on top of data warehouses that enable customers to use their data warehouse for real-time personalization use cases with <30ms p90 response times with QPS in the millions
- Multi-Region and Multi-Cloud: Supporting our multi-region and multi-cloud backend, including extending it to launch Hightouch on in new regions to support data residency requirements of our global customer base