06 Nov
|
CircleCI
|
Canada
About CircleCI Engineering AI agents don't just run pipelines. We're building them. We think like the customer: every decision connects back to the developer sitting in front of a failing build at 2 am. Every pipeline, job, and test that runs on CircleCI generates data, and that history is one of our biggest advantages in an agentic software delivery lifecycle. Flaky test detection, test insights, pipeline search, and agents that reason about why a build failed all depend on rapid, reliable access to it. We pull product data out of the transactional services that create it and store it in datastores built for historical and analytical workloads. We serve it through domain-level APIs to CircleCI's product teams and to customers through our public API. Our goal is to make storing data "fire and forget" for every other team, and querying it fast and dependable at a scale that keeps growing. Build AI-natively. AI is how we work. It's not a productivity layer on top of engineering, but the default starting point for how problems get approached and solved. Shape how we store data at scale. Design schemas for known and emerging access patterns, and tune ingestion and query performance to support production-scale data. Build the pipelines that move our data. Design and own ingestion from event streams and durable workflows built on Temporal. Data should arrive reliably, stay queryable while it's in transit, and never slow down the critical path of the services that produce it. Serve data to the product and to customers. Make getting historical data easy, not a bottleneck. Teams should be able to get what they need quickly and with minimal hand-holding, while Query keeps enough visibility into how the data is used to optimize ingestion and reads across every consumer. Set technical direction.
When the problem is complex or the answer isn't obvious, you lead the design discussion, write up the architecture decision, and make the call. You help decide which data domain we migrate next and how. Use Honeycomb, Datadog, and Rollbar to understand ingestion lag, query latency, and data correctness. For a data platform, operational data drives stability, not just incident response. You take ambiguous data problems from design to production quickly, and you help the people around you move faster too. You'll fix the immediate issue, then solve the underlying team practice, process, or system that let it through. AI-native engineering practices. You use AI tools daily and can speak to what you've built, where they changed your approach, and where they fall short. Hands-on data experience. You've built or owned data-intensive systems such as ingestion pipelines, event-driven architectures, or analytical and time-series datastores. Experience with ClickHouse or another columnar database is a strong plus. You're strong in Go, or strong in a comparable language and eager to work in Go: interface design, data modeling, service integration, and concurrency. Familiarity with React and TypeScript is a plus, since you'll occasionally work on the product surfaces that display this data. You know when to rely on a framework's reliability guarantees rather than building your own. Technical leadership. You leave foundations others can build on. You raise the quality bar through reviews, mentoring, and direct feedback, not just through the code you write. A track record of shipping. 5+ years building and operating production backend systems. Your work has served real users, and you've treated latency, reliability, and correctness as design concerns. You care about how data powers the product, not just where it lives.
📌 Senior Software Engineer, Production Engineering (Canada)
🏢 CircleCI
📍 Canada