Software Engineer - Distributed Systems
About Hightouch
Hightouch’s mission is to empower everyone to take action on their data. Through our Reverse ETL platform, business and data users can seamlessly sync data from where it resides, such as warehouses and databases, to where it is needed, including operational systems and SaaS tools. Traditionally, acting on data has required engineering time and bandwidth, and left most business users stuck with charts and reports that are unable to take automated action on their data. With Hightouch, every business user, without writing any code, can activate data to streamline critical processes, improve marketing performance, and scale operations.
Our team operates with a focus on making a meaningful impact for our customers. We believe in approaching challenges with a first principles thinking mindset, moving quickly and embracing our value of efficient execution, and treating each other with compassion and kindness. We look for team members that are strong communicators, have a growth mindset, and are motivated and persistent in achieving our goals.
Hundreds of companies use Hightouch, including Spotify, Ramp, Grammarly, NBA, Plaid, and Betterment. We’re based in San Francisco, are remote-friendly, and backed by leading investors such as Amplify Partners, ICONIQ Growth, Bain Capital Ventures, Y-Combinator, and Afore Capital.
About the Role
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 meaningful 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 a lot of 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 Personalization 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
We are looking for talented, intellectually curious, and motivated individuals who are interested in tackling the problems above. This is a senior role, but we focus on impact and potential for growth more than years of experience. The salary range for this position is $170,000 - $240,000 USD per year, which is location independent in accordance with our remote-first policy.
About You
You are an engineer with a passion for solving hard technical problems that generate real value for customers. You’re motivated by high ownership and are comfortable in a fast-paced, startup environment.
You have experience and comfort with distributed systems and high-scale systems or the ability and desire to build this experience quickly. This experience can take different forms:
You’ve built syncing engines that process and move terabytes of data per day in a scalable way
You’ve created event collection or data streaming services that power company critical systems
You’ve owned systems that have undergone orders of magnitude of growth and helped them scale accordingly
You have relevant skills and are a fast learner who is excited to take on the challenges we face
Interview Process
Our goal with the interview process is to balance speed with giving both parties opportunities to assess whether there is a strong mutual fit. We will ask you questions, but we want you to ask us questions! Our technical interviews focus on how you design systems because we believe this is the best way for us to see how you work and for you to see how we collaborate. We don’t ask you to write code to solve technical brainteasers that don’t appear in your day to day job.
Recruiter screen [30m]: Introductory call with our recruiting team to get to know each other and see if the role could be a good mutual fit.
System Design Screen [45m]: Designing a data processing feature end-to-end.
Hiring manager interview [30m]: Chat with hiring manager about past experiences and future operating preferences to assess fit on company values and operating principles.
System Design Interview [90m]: Work with the interviewer to architect a system at a conceptual level. The problem will be at a pretty high level - and have both product and customer requirements as well as technical.
About the job
Apply for this position
Software Engineer - Distributed Systems
About Hightouch
Hightouch’s mission is to empower everyone to take action on their data. Through our Reverse ETL platform, business and data users can seamlessly sync data from where it resides, such as warehouses and databases, to where it is needed, including operational systems and SaaS tools. Traditionally, acting on data has required engineering time and bandwidth, and left most business users stuck with charts and reports that are unable to take automated action on their data. With Hightouch, every business user, without writing any code, can activate data to streamline critical processes, improve marketing performance, and scale operations.
Our team operates with a focus on making a meaningful impact for our customers. We believe in approaching challenges with a first principles thinking mindset, moving quickly and embracing our value of efficient execution, and treating each other with compassion and kindness. We look for team members that are strong communicators, have a growth mindset, and are motivated and persistent in achieving our goals.
Hundreds of companies use Hightouch, including Spotify, Ramp, Grammarly, NBA, Plaid, and Betterment. We’re based in San Francisco, are remote-friendly, and backed by leading investors such as Amplify Partners, ICONIQ Growth, Bain Capital Ventures, Y-Combinator, and Afore Capital.
About the Role
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 meaningful 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 a lot of 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 Personalization 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
We are looking for talented, intellectually curious, and motivated individuals who are interested in tackling the problems above. This is a senior role, but we focus on impact and potential for growth more than years of experience. The salary range for this position is $170,000 - $240,000 USD per year, which is location independent in accordance with our remote-first policy.
About You
You are an engineer with a passion for solving hard technical problems that generate real value for customers. You’re motivated by high ownership and are comfortable in a fast-paced, startup environment.
You have experience and comfort with distributed systems and high-scale systems or the ability and desire to build this experience quickly. This experience can take different forms:
You’ve built syncing engines that process and move terabytes of data per day in a scalable way
You’ve created event collection or data streaming services that power company critical systems
You’ve owned systems that have undergone orders of magnitude of growth and helped them scale accordingly
You have relevant skills and are a fast learner who is excited to take on the challenges we face
Interview Process
Our goal with the interview process is to balance speed with giving both parties opportunities to assess whether there is a strong mutual fit. We will ask you questions, but we want you to ask us questions! Our technical interviews focus on how you design systems because we believe this is the best way for us to see how you work and for you to see how we collaborate. We don’t ask you to write code to solve technical brainteasers that don’t appear in your day to day job.
Recruiter screen [30m]: Introductory call with our recruiting team to get to know each other and see if the role could be a good mutual fit.
System Design Screen [45m]: Designing a data processing feature end-to-end.
Hiring manager interview [30m]: Chat with hiring manager about past experiences and future operating preferences to assess fit on company values and operating principles.
System Design Interview [90m]: Work with the interviewer to architect a system at a conceptual level. The problem will be at a pretty high level - and have both product and customer requirements as well as technical.