At Segment, we believe companies should be able to send their data wherever they want, whenever they want, with no fuss. We make this easy with a single platform that collects, stores, filters, transforms, and sends data to hundreds of business tools with the flip of a switch. More recently, we also developed the ability to let customers enrich their data in real time using computations they specify. Our goal is to make it easy to understand, extract value, and protect the integrity of data. We are creating a world where engineers spend their time working on their core product, letting us take care of the complexities of processing their customer data reliably at scale. We’re in the running to take over the entire customer data ecosystem, and we need the best people to take the market.
We’re looking for senior software engineers who are excited to build large-scale distributed systems. Segment’s Foundation engineering team creates the core services that process billions of events/day for some of the worlds largest enterprises and most innovative startups. Our high-throughput low-latency pipelines process our customers’ most valuable data, so we have a passion for the highest quality engineering, testing, and operations.
What we do:
- We implement high performance pipelines with Go, Kafka, Docker, Terraform and lots of other modern tools, we are heavy users of AWS and are expanding to other clouds.
- We have a culture of exceptional testing including unit testing, automated end-to-end testing, shadow deploys, game days, and high observability.
- We’re always deploying, and have sophisticated feature flagging.
- We dog-food Segment to help ourselves move faster and guide our engineering and product.
- We run orchestration systems that interact with AWS services hosted by Segment and our customers.
Who we are looking for:
- You enjoy being part of a cohesive and supportive team.
- You are passionate about finding elegant solutions to challenging technical problems.
- You are able to lead an engineering solution to a business problem end-to-end.
- You know when it is time to refactor, and when it's time to ship.
- You strive to ensure customers have a great experience using our product.
Projects you will be working on
As a Senior Software Engineer in the Foundation team, you would focus mostly on implementing backend systems using technologies like Go, Python, Kafka, Docker, Spark, Terraform and a variety of AWS and GCP technologies. The projects we work on continuously evolve but here are a few things we have done in the past and are currently work on:
- A scheduling system that can connect to EMR clusters hosted across several customer AWS accounts to remotely submit and execute data processing jobs
- Operating at scale to power the Identity Resolution service that merges user identities across different channels into one profile
- A data deletion service that can comb through billions of events stored in S3 to remove sensitive user information to ensure GDPR/CCPA compliance
- An orchestration system that is capable of spinning up and managing thousands of ECS docker containers daily, to load data to more than 2.5 million SQL tables across warehouses like Redshift, Snowflake and BigQuery
- Aggregation service that leverages to get real time counts of events sent to Segment, grouped by customer, event types and several other key dimensions
- A data persistence primitive that can be used by internal teams to easily store customer data from Kafka to a blob storages like S3
Our engineering team is incredibly committed to and blogging about the things we’ve been building:
- Read how Rick and Collin built a at Segment
- Read about the we observed after operating our GDPR deletion system for more than a year
- Read how Alex and team in our server-side destinations to improve our architecture
- Read about how Alan built an end-to-end that enabled us to rollout changes safely
- Read about what Achille and Rick learned about
- CS or EE degree or relevant industry or open source contributor experience.
- Great computing fundamentals and shown ability to write code that solves real problems using a statically typed programming language.
- Strong theoretical fundamentals and hands-on experience designing and implementing highly available and performant fault-tolerant distributed systems.
- Experience with implementing large-scale event processing pipelines, preferably using streaming technologies.
- Well-versed in concurrent programming.
- Familiar with good practices for deploying and testing code into a Production environment.
- Consistent track record of shipping high impact projects
Segment is an equal opportunity employer. We believe that everyone should receive equal consideration and treatment. Recruitment, hiring, placements, transfers, and promotions will happen based on qualifications for the positions being filled regardless of sex, gender identity, race, religious creed, color, national origin ancestry, age, physical disability, pregnancy, mental disability, or medical condition.