Senior Software Engineer

CircleCI Logo

CircleCI

πŸ’΅ $109k-$137k
πŸ“Remote - Canada

Summary

Join CircleCI as a Senior Software Engineer and contribute to the development and maintenance of core services powering our CI/CD platform. You will work on features such as job orchestration, introducing new execution environments, ensuring reliable and secure infrastructure, and crafting customer testing environments. This fully remote role involves collaborating with a global team, participating in on-call support, and handling incident management. You will design, build, and maintain microservices within a complex distributed system, focusing on observability and performance. The role requires extensive experience in building reliable distributed systems and a passion for writing high-quality, maintainable code.

Requirements

  • 5+ years as a full time professional developer with experience building reliable, zero-downtime, observable distributed systems
  • The utmost care in regards to how your code runs in production. You're the kind of developer who's happy to dig around in tools like Honeycomb, Datadog, Graylog, and Rollbar and work out what needs to be done to address a problem
  • Ability to write code that’s easily readable, testable, maintainable and documented, with an eye towards baking observability in from the beginning
  • Interest in improving the lives of our customers and the team, and can use just enough code with a keen eye on constraining complexity. We use Go primarily, but you'll also encounter JavaScript, Clojure, and even the odd bash script - all deployed into Kubernetes and as agents on our compute fleet
  • Ability to learn and think critically about both system design and software engineering concepts and blend those perspectives pragmatically based on project needs
  • Ability to quickly adapt when priorities change and making conscious tradeoffs with incomplete information

Responsibilities

  • Design and build new features, simplify existing services, automate and scale our systems as we continue to rapidly grow and evolve
  • Write sustainable, testable, high-quality, high-performance code
  • Support, maintain, and debug production microservices in a highly complex distributed system
  • Champion a culture of observability and monitoring by using operational data to help your team improve the stability and performance of our systems
  • Partner with members of a cross-functional team and other partners to set the direction of our platform and product: learn about our business problems, explore solutions, weigh design tradeoffs, and prioritize them to deliver maximum value in a sustainable, incremental fashion
  • Orchestrating and scheduling jobs
  • Introducing new execution environments across our platforms: Docker (Nomad), EC2 and GCP
  • Keeping our large multi-tenant, multi-platform fleet of build servers, distributed cloud infrastructure and generally instrumenting our environments to be running reliably and securely
  • Helping craft the end user testing environments we offer to our customers
  • Debugging complex issues across the platforms we support
  • Storing customers caches, artifacts, test results and step output

Preferred Qualifications

Experience managing infrastructure as code on a public cloud

Benefits

  • Full-time, fully remote role
  • On-call support rotation
  • Canada Base Pay Range $152,000 β€” $190,500 CAD

Share this job:

Disclaimer: Please check that the job is real before you apply. Applying might take you to another website that we don't own. Please be aware that any actions taken during the application process are solely your responsibility, and we bear no responsibility for any outcomes.