Update: How CircleCI Processes Over 30 Million Builds Per Month

4,146
CircleCI
CircleCI’s continuous integration and delivery platform helps software teams rapidly release code with confidence by automating the build, test, and deploy process. CircleCI offers a modern software development platform that lets teams ramp quickly, scale easily, and build confidently every day.

By Rob Zuber, CTO at CircleCI.


Editors note: This is a follow-up post from How CircleCI Processes 4.5 Million Builds Per Month.


CircleCI is a continuous integration and delivery platform that enables you to automate your development process quickly, safely, and at scale. Engineers around the world at companies of all sizes trust us to run their tests and deploy their software. We’ve earned that trust by using a solid stack of software allowing our users and their teams to continuously deliver value to their users.

As CTO at CircleCI, I help make the big technical decisions and keep our teams happy and out of trouble. Before this, I was CTO of Copious, where I learned a lot of important lessons about tech in service of building a consumer marketplace. I like snowboarding, Funkadelic, and cappuccino.


The Teams

In the last year, we have seen tremendous growth on our engineering teams. This growth forced us to rethink our engineering growth paths as well as what we needed in engineering managers. One key result of this was an update to our engineering competency matrix that we published. This has helped us in hiring for our open positions and creating better career paths for our current engineers. It also increases transparency in expectation. Reasonable and clear expectations, team alignment, and transparency are key values of our engineering teams as they consist of engineers working remotely at locations distributed around the world.

10 out of 200+ CircleCI-ers. View the rest here.

We use Pingboard to find out who is “in” or “out” of the office, Zoom for video conferencing and screen sharing with those who are “in”, Slack for synchronous and asynchronous communication, and to organize all of the efforts across the teams, we use JIRA. Additionally, Slack-based integration tools such as Hubot, PagerDuty, Looker, Amplitude, Datadog, and Rollbar are used to bring information and data into our primary communication tool. Giphy’s Slack-based integration has also proven itself to be invaluable.


The Stack

Languages

Most of CircleCI is written in Clojure and it has been this way since almost the beginning. Early development included Rails, but by the time that CircleCI was released to the public, it was written entirely in Clojure. Clojure is still at our platform’s core. It helps having a common language across much of our stack to allow for our engineers to move between layers of the stack without much overhead.

Being fans of Clojure is not reason enough to build out the entire stack in that language. When we launched our 2.0 platform, the build agent was written in Go because it allows us to inject a multi-platform static binary into an environment where we can’t rely on lists of dependencies. Go is also used for CLI tools. Here, fast start-up and static dependency compilation outweigh our affinity for Clojure. Clojure remains our language of choice, but as we continue to pull microservices from our monolith (over a dozen at this point), we are committed to using the right set of tools for the job and we evaluate that decision for each new service.


The Frontend

We are in the process of adopting Next.js as our React framework and using Storybook to help build our React components in isolation. This new part of our frontend is written in Typescript, and we use Emotion for CSS/styling. For delivering data, we use GraphQL and Apollo. Jest, Percy, and Cypress are used for testing.


The Backend

Two Pools of Machines

Our backend consists of two major pools of machines. One pool hosts the systems that run our site, manage jobs, and send notifications. These services are deployed within Docker containers orchestrated in Kubernetes. Due to Kubernetes’ ecosystem and toolchain, it was an obvious choice for our fairly statically-defined processes: the rate of change of job types or how many we may need in our internal stack is relatively low.

The other pool of machines is for running our users’ jobs. Because we cannot dynamically predict demand, what types of jobs our users need to have run, nor the resources required for each of those jobs, we found that Nomad excelled over Kubernetes in this area. Our users’ jobs are changing constantly. The fast, flexible, built-in scheduler that comes with Nomad distributes our users’ jobs across our second pool of machines, reserved specifically for scheduling purposes.

We did evaluate both Kubernetes and Nomad to do All These Things, but neither tool was optimized for such an all-inclusive job. Additionally, we treat Nomad’s scheduling role as more a piece of our software stack than as a part of the management or ops layer. So we use Kubernetes to manage the Nomad servers.

We’re also using Helm to make it easier to deploy new services into Kubernetes. We create a chart (i.e. package) for each service. This lets us easily roll back new software and gives us an audit trail of what was installed or upgraded.


Infrastructure

Previously, we had run all of our infrastructure on AWS. At first, it was simple because our architecture was simple. As our architecture grew in complexity, our AWS infrastructure grew to include a complex stack of VPCs, Security Groups, and everything else AWS offers to help partition and restrict resources. We are also running across multiple regions. We have adopted Terraform to help us manage this complexity in a scaling team.

Once we launched CircleCI Enterprise (our on-prem offering), we began to support different deployment models. During this time, we also began to package our code in Docker containers. This allowed us to start using cloud-agnostic Kubernetes to manage resources and distributions and it reduced our cloud vendor lock-in.

We now push a part of our workload to GCP. If you use our machine executor to run a job, it will run in GCP. This executor type allocates a full VM for tasks that need it. GCP is well-suited for running small, short-lived VMs. We’ve also wrapped GCP in a VM service that preallocates machines, then tears everything down once you’re finished. Using an entire VM means you have full control over a much faster machine. We’re pretty happy with this architecture since it smooths out future forays into other platforms: we can just drop in the Go build agent and be on our merry way.


Communication with the Frontend

To get the frontend to communicate with the backend, we use a dedicated tier of API hosts. We manage these API hosts with Kubernetes as well, but in a separate cluster to increase isolation. A number of our APIs are public, meaning that we use the same interfaces that are available to our users. By dogfooding our APIs, we’ve been able to keep them clean and spot and fix errors before our users discover them.

When you interact with our web application, all of your requests are hitting the API hosts. We handle the majority of our authentication via OAuth from GitHub or Bitbucket. We provide programmatic access to everything exposed in the UI through an API token that you can generate once you have authenticated.


Data! Data! Data!

We use MongoDB as our primary datastore. Mongo's approach to replica sets enables some fantastic patterns for operations like maintenance, backups, and ETL. We’re happy to see progress being made in WiredTiger, and our operations have greatly improved, but we’re still suffering from a legacy of our early mistakes in schema enforcement on a dataset that is too large to clean efficiently.

As we pull microservices from our monolith, we are taking the opportunity to build them with their own datastores using PostgreSQL. We also use Redis to cache data we’d never store permanently, and to rate-limit our requests to partners’ APIs (like GitHub).

When we’re dealing with large blobs of immutable data (logs, artifacts, and test results), we store them in Amazon S3. We handle any side-effects of S3’s eventual consistency model within our own code. This ensures that we deal with user requests correctly while writes are in process.


A Build is Born

When we process a webhook from GitHub/Bitbucket telling us that a user pushed some new code, we use the information to create a new pipeline representation with associated workflows and jobs in our datastores. We then pass the definition of the work to be performed to Nomad, which is responsible for allocating hardware to run the jobs.


Running the Build

The gritty details of processing a build are executed by the creatively named build agent. It parses configuration, executes commands, and synthesizes actions that create artifacts and test results. Most builds run in a Docker container, or set of containers, which is defined by the user for a completely tailored build environment.

The build agent streams the results of its work over gRPC to the output processor, a secure façade that understands how to write to all our internal systems. In order to get this live streaming data to your browser, we use WebSockets managed by Pusher. We also use this channel to deliver state change notifications to the browser, e.g. when a build completes. We also make use of Redis's amazing performance to stash bits of output as we collate it for permanent S3 storage.


A Hubot Postscript

We have added very little to the CoffeeScript Hubot application – just enough to allow it to talk to our Hubot workers. The hubot workers implement our operational management functionality and expose it to Hubot so we can get chat integration for free. We’ve also tailored the authentication and authorization code of Hubot to meet the needs of roles within our team.

For larger tasks, we’ve got an internal CLI written in Go that talks to the same API as Hubot, giving access to the same functionality we have in Slack, with the addition of scripting, piping, and all of our favorite Unix tools. When the Hubot worker recognizes the CLI is in use, it logs the commands to Slack to maintain visibility of operational changes.


Analytics & Monitoring

Our primary source of monitoring and alerting is Datadog. We’ve got prebuilt dashboards for every scenario and integration with PagerDuty to manage routing any alerts. We’ve definitely scaled past the point where managing dashboards is easy, but we haven’t had time to invest in using features like Anomaly Detection. We’ve started using Honeycomb for some targeted debugging of complex production issues and we are liking what we’ve seen. We capture any unhandled exceptions with Rollbar and, if we realize one will keep happening, we quickly convert the metrics to point back to Datadog, to keep Rollbar as clean as possible.

We use Segment to consolidate all of our trackers, the most important of which goes to Amplitude to analyze user patterns. However, if we need a more consolidated view, we push all of our data to our own data warehouse running PostgreSQL; this is available for analytics and dashboard creation through Looker.


In Summary

At CircleCI, we get to practice what we preach. Instead of long dry spells between releases, we push several changes per day to keep our feedback loops short and our codebase clean. We’re small enough that we can move quickly but large enough that our teams have the resources that they need.

This is our stack today. As our users demand solutions for more complex problems, we’ll adopt new tools and languages to deal with emerging tech. We are excited about the future, but while we wait for that future to unfold, there is no reason you should be waiting for good code. Start building on CircleCI today and ship your code faster. We’re also looking for people who are interested in collaboration and learning and who want to join us in shaping the future of software engineering supporting our internal teams, as well as the thousands of organizations using our product. Come work with us and help us ship our own code faster!

CircleCI
CircleCI’s continuous integration and delivery platform helps software teams rapidly release code with confidence by automating the build, test, and deploy process. CircleCI offers a modern software development platform that lets teams ramp quickly, scale easily, and build confidently every day.
Tools mentioned in article
Open jobs at CircleCI
Solutions Engineer
Tokyo, Japan

As a Solutions Engineer at CircleCI Japan, you will be the customer’s trusted technical advisor throughout the sales process. You’ll provide hands-on support for cloud-based and single tenant deployment and product guidance with CircleCI’s largest customers.

About Solutions Engineering at CircleCI

Our Solutions Engineers have a strong understanding of the developer community and are able to confidently communicate with and provide first class support to developers, DevOps leads, and architects.

What you’ll do:

  • Serve as the technical support in mid-market and enterprise opportunities across the APAC region.
  • Collaborate with Account Executives to identify and uncover customer business goals, needs, and pains, and work to show how CircleCI can address them.
  • Lead demonstrations  and support customer trials, providing advice and technical support along the way.
  • Prove the technical feasibility of the CircleCI platform to highly technical and developer audiences.
  • Identify areas of potential improvement in our sales efforts, and then work to improve them. This could be high level strategy, daily tactical efforts, or down in the weeds of creating documentation or how to videos.
  • Partner closely with our customer success teams to ensure continuity of an amazing customer experience - for life.
  • Collaborate closely with Product and Engineering teams to help influence product roadmap based on market/customer requirements.
  • Provide technical responses to RFPs and RFIs.
  • Become an expert on the CircleCI solution.

What we're looking for:

  • Exceptional written and oral communication skills in English.
  • JLPT N2 or equivalent Japanese language proficiency.
  • World class presentation skills. You feel comfortable leading presentations and demos of our platform to groups, both technical and non-technical, in-person and virtually.
  • Work with customers directly to debug common errors without involving an engineer.
  • You can tie business problems to technical solutions and understand technology value propositions.
  • Demonstrated and proven capacity to quickly absorb new concepts and technologies.
  • You have spent a decent amount of time using and scripting *nix.
  • You know how to work with Git in general and ideally GitHub or Bitbucket in particular.
  • You’ve thrown together an app or two in a high-level programming language.
  • You believe that the best way for all to succeed is to honestly discuss product and company abilities and limitations with customers. We do not oversell at CircleCI.
  • You have working knowledge of cloud computing and exposure to one of the major vendors (AWS, GCP, Azure).
  • You’re familiar with basic networking concepts, e.g. HTTP, DNS, SSH, Firewalls.
  • Great relationship building skills and a good people person.

Bonus points!

  • Experience with build, test, and deployment automation.
  • Familiarity with functional languages, particularly Clojure.
  • Knowledge of Docker or Linux containers in general.
  • Experience with popular web app frameworks (e.g. Rails, Django), mobile app (iOS, Android), and/or Windows development.
  • Experience using and automating a major IaaS like AWS, GCP, or Azure.
  • Familiarity deploying and debugging distributed systems.
  • Ability to troubleshoot networking issues that may prevent communication between different components.

How to apply

If you’re interested in joining the team at CircleCI, please send a resumé and let us know why you’d be a great fit for our team. If you contribute to an open source project, write a blog, or have a presence on the web (Github, Stack, Quora, Wantedly, etc) we would love to hear about it.

We know there’s no such thing as a “perfect" candidate - we’re all a work in progress and are growing new skills and capabilities all the time. CircleCI welcomes those who are enthusiastic about learning and evolving, so however you identify and whatever your background, if this looks like a role where you could do work that excites you, we hope you’ll apply.

About CircleCI

CircleCI is the world’s largest shared continuous integration and continuous delivery (CI/CD) platform, and the central hub where code moves from idea to delivery. As one of the most-used DevOps tools that processes more than 1 million builds a day, CircleCI has unique access to data on how engineering teams work, and how their code runs. Companies like Spotify, Coinbase, Stitch Fix, and BuzzFeed use us to improve engineering team productivity, release better products, and get to market faster. 

Founded in 2011 and headquartered in downtown San Francisco with a global, remote workforce, CircleCI is venture-backed by IVP, Sapphire Ventures, Owl Rock, NextEquity Partners, Scale Venture Partners, Threshold Ventures, Baseline Ventures, Top Tier Capital Partners, Industry Ventures, Heavybit, and Harrison Metal Capital. Learn more at https://circleci.com.

CircleCI is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law.

Staff Full Stack Software Engineer - ...
(United States or Canada)

Come join the world’s largest shared CI/CD platform, and help us drive the future success of our company! Our customers range from well-known household brands to small startups and everywhere in between, and we’re looking for engineers to help us excite more companies about our product. 

We’re looking for an experienced engineer who brings strong technical skills as well as experience supporting Growth engineering, to lead the buildout of our Growth domain and -teams. In this role, you’d play a key role in driving the future success of our business, and work with your teammates and technical leadership every day to make our Growth engineering teams successful. You will drive technical strategy for the Growth domain and work with your team to implement and maintain it. You’ll mentor and coach your teammates and foster technical leadership on your team. You will instill a Growth mindset and culture of using data-driven decision making, small increments of work, and continuous learning and experimentation. Together with your team, you’ll learn new things every day, and iterate based on short feedback cycles and data which you’ll analyze to identify what works. 

Our team: 

As the Growth team, our mission is to expose more users to the value they can get through using our product, and getting deeper into CI/CD with us. We dig deep into our users’ experience with CircleCI, and help them become more successful using our product. Focusing on our users’ onboarding experience, we hypothesize, build, analyze, and iterate together. We work hand in hand with our Product, Data, Design, Marketing, and Engineering teammates. Every day we challenge the status quo of our product in order to support our go-to-market teams and drive sustainable long-term growth for our entire company.

Our position in the engineering team is unique: we work throughout the entire CircleCI product – across marketing sites, onboarding, all the way to our core CI/CD workflows – to help empower our users to deliver better software faster.

What you’ll do:

  • Mentor & coach: You will regularly collaborate with the other growth engineers to expand their skills and support their career growth. 
  • Develop strategy and follow through on implementation with your team: You will conceive growth enablement strategies for the team, as well as for other Growth engineering teams together with technical leaders in the Growth domain, and implement them to allow teams to iterate faster.
  • Have business impact: You will conceive and execute experiments with the goal of learning more about how our users use our product, working with people across our entire company, always looking to increase your impact on our business. 
  • Foster a learning mindset and culture on your team: You will help the team embrace failure as a learning opportunity, are motivated by challenges, and celebrate the team successes.
  • Learn! You’ll learn something new about our product and our users every single day: through user feedback, data, and your work with your teammates. You’ll develop a deep understanding of how people use our product, what makes them successful, and how we can evolve our product to engage more organizations. You’ll learn how to drive revenue through engineering measures, how to get more customers to use our products and increase their engagement with us – key lessons for anyone interested in starting their own business one day.   
  • Run experiments and iterate quickly: Hypothesize, plan, architect, implement, analyze, A/B test, and rapidly iterate on features. 
  • Work with a collaborative, fast-moving team: Collaborate with, lead, and mentor your engineering teammates through planning, pairing, testing, and delivery of the features you build.
  • Take ownership of your work: As part of this role, you’ll participate in our team’s on-call rotation. 

What we’re looking for: 

We’re looking for someone who has a learning mindset, is curious and highly motivated to learn something new everyday. They should also like to have impact on high visibility work for their business, and be someone with an audience-driven communication style. If this sounds like you, here’s the additional experience we’re looking for:

  • Technical skills: You are proficient in one or more of Go, C++, or Python, and are interested in using functional programming paradigms (we use Clojure, but it’s fine if you haven’t yet). You bring a basic understanding of frontend development (we use React, but it’s fine if you haven’t yet). You bring experience designing, building, and running distributed systems, and are focused on scalability. You have experience utilizing frameworks and tools that support quick experimentation, and experience improving those on Growth engineering teams. You consider technology a tool for solving users’ problems, and are interested in learning new technology when required. You can find our entire tech stack here.
  • Enabling Growth engineers: You are deeply invested in helping teams become more effective and investing in creating more leverage for them. You care about good testing practices, observability, and creating long-term scalable systems that your teams can rely on.
  • Growth engineering experience: You have experience as an entrepreneur, in a small startup, or on Growth engineering initiatives and teams.
  • Strong communication and collaboration skills: You enjoy working closely with your teammates, brainstorming and developing ideas together, and would be excited to collaborate on technical strategy with fellow leaders on our Growth teams, as well as to shape interaction patterns between Growth- and other Engineering teams. You have strong feedback skills and communicate openly with your team and are open to being wrong and having your mind changed.
  • A curious mind: You are motivated by your curiosity and deep desire to learn something new every day. You enjoy driving a culture of curiosity and discovery on our users’ experience with our product within your team, and helping your teammates make decisions based on data, paying attention to the big picture as well as small details.
  • Desire to impact the future of our business: You like working on high exposure projects and tasks, and are keen to have impact in a crucial business domain, and taking a leadership role in a team that will play an important part in shaping the future of our company.
  • Interest in moving fast: You’re experienced in the day-to-day practices of continuous delivery and agile development in a production environment. You favor regular, incremental delivery over perfection, and you seek optimizations that allow the team to quickly implement experiments, and are interested in driving a culture of quick experimentation, as well as implementation of the frameworks to allow for it, on your team
  • Adaptability: You’re comfortable with ambiguity and figuring things out as they evolve, change, and new requirements emerge. You’re good at managing the ambiguity of a small, rapidly-growing company: adjusting to changing priorities, making conscious tradeoffs when guidance is limited and information is incomplete, and instituting best practices from scratch when needed. You’re able to help more junior engineers work through ambiguous, complex tasks, and reduce ambiguity together with them to help them grow.  

Work remotely with our globally distributed team!

We’re a distributed company with teammates across the world. Our Growth teams are distributed across North America. For this role, we are hiring engineers to work remotely in the United States and through our affiliate, Continuous Labs, in the following Canadian provinces: Alberta, British Columbia, Manitoba, New Brunswick, Newfoundland and Labrador, Nova Scotia, Ontario, Prince Edward Island and Saskatchewan.

CircleCI Engineering Competency Matrix

This role will be for level E4 on our Engineering Competency Matrix, our internal career growth system for engineers. These are the minimum expectations for this position, but we are always willing to discuss bringing people on at more senior positions when appropriate. Read our blog post about the competency matrix to learn more.

We know there’s no such thing as a “perfect” candidate - we’re all a work in progress and are growing new skills and capabilities all the time. CircleCI welcomes those who are enthusiastic about learning and evolving, so however you identify and whatever your background, if this looks like a role where you could do work that excites you, we hope you’ll apply.

About CircleCI

CircleCI is the world’s largest shared continuous integration and continuous delivery (CI/CD) platform, and the central hub where code moves from idea to delivery. As one of the most-used DevOps tools that processes more than 1 million builds a day, CircleCI has unique access to data on how engineering teams work, and how their code runs. Companies like Spotify, Coinbase, Stitch Fix, and BuzzFeed use us to improve engineering team productivity, release better products, and get to market faster. 

CircleCI is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law.

Support Engineer
Tokyo, Japan

As a Support Engineer at CircleCI, you will be responsible for providing world-class post-sales technical leadership to our client base. Working directly with customers, you will be the subject matter expert on both the CircleCI platform and continuous integration and deployment as a general practice. You will be responsible for delivering value by driving adoption of CircleCI across the client’s enterprise. Finally, as part of the Customer Engineering organization, you will have the opportunity to work directly with our Product Management, Engineering, Customer Success, and Marketing teams to share your knowledge and experiences, towards ultimately improving our customers’ success with CircleCI.

You will be the main point of contact for all technical questions and assistance for these customers and will represent their needs back to the aforementioned teams. And, you will work with the rest of the Support team to build out and cultivate a customer community to enhance the experience of our customers.

The successful candidate for this job will have a strong technical aptitude along with a strong self-starting, proactive mentality as well as the ability to create and maintain deep, lasting relationships with customers. You’re going to be dealing with very technical users and complex issues, but you’re also tasked with creating excitement and loyalty in the customers you interact with.

About Customer Engineering at CircleCI

CircleCI’s Customer Engineering organization’s goal is to make life easier for our customers and leave them with the “wow” experience of building and testing their applications with ease. Customer Engineering works with customers to understand their technical and business needs and requirements — from onboarding to implementation to scale. The Customer Engineering department is comprised of Solutions Engineering (pre-sales), Success Engineering ( post-sales for large accounts), and Support Engineering (post-sales ticket based support for all customers). There is an opportunity for both horizontal and vertical growth, and promotion within Customer Engineering and the CircleCI organization.

What you’ll do:

  • Work closely with customers to help them setup CircleCI, both on circleci.com and in their own private cloud, including any custom setup they may need
  • Partner with your Support Manager to onboard and support our customers as well as act as the dedicated technical point of contact
  • Be creative and scrappy in solving customer technical problems and answering customer questions
  • Build best practices for onboarding across different technologies
  • Act as the voice of the customer and use customer feedback to help Product and Engineering improve the product
  • Code and commit relevant upgrades and changes to the CircleCI codebase
  • Work closely with the Product and Engineering teams to improve the customer experience across the whole platform
  • Become an expert on the CircleCI solution

What we're looking for:

  • Based in Tokyo
  • Exceptional written and oral communication skills in English
  • 2+ years of technical product support, engineering, or experience deploying software in the enterprise
  • Experience working directly with customers to debug common errors
  • You can tie business problems to technical solutions and understand technology value propositions
  • Demonstrated and proven capacity to quickly absorb new concepts and technologies
  • You have spent a decent amount of time using and scripting *nix
  • You know how to work with Git in general and ideally GitHub in particular
  • You’ve thrown together an app or two in a high-level programming language
  • You believe that the best way for all to succeed is to honestly discuss product and company abilities and limitations with customers. We do not oversell at CircleCI
  • Strong ops / infrastructure knowledge, especially networking and security
  • Great relationship building skills and a good people person

Bonus points!

  • Experience with build, test, and deployment automation, either as a practitioner or in a customer-facing role
  • Ability to troubleshoot networking issues that may prevent communication between different components
  • Knowledge of Docker or Linux containers in general
  • Experience with popular web app frameworks (e.g. Rails, Django) and/or mobile app development (iOS, Android)
  • Experience using and automating a major IaaS like AWS, GCP, or Azure
  • Familiarity deploying and debugging distributed systems
  • Japanese language skills

How to apply

If you’re interested in joining the team at CircleCI, please send a resumé and let us know why you’d be a great fit for our team. If you contribute to an open source project, write a blog, or have a presence on the web (Github, Stack, Quora, Wantedly, etc) we would love to hear about it.

We know there’s no such thing as a “perfect" candidate - we’re all a work in progress and are growing new skills and capabilities all the time. CircleCI welcomes those who are enthusiastic about learning and evolving, so however you identify and whatever your background, if this looks like a role where you could do work that excites you, we hope you’ll apply.

About CircleCI

CircleCI is the world’s largest shared continuous integration and continuous delivery (CI/CD) platform, and the central hub where code moves from idea to delivery. As one of the most-used DevOps tools that processes more than 1 million builds a day, CircleCI has unique access to data on how engineering teams work, and how their code runs. Companies like Spotify, Coinbase, Stitch Fix, and BuzzFeed use us to improve engineering team productivity, release better products, and get to market faster. 

Founded in 2011 and headquartered in downtown San Francisco with a global, remote workforce, CircleCI is venture-backed by IVP, Sapphire Ventures, Owl Rock, NextEquity Partners, Scale Venture Partners, Threshold Ventures, Baseline Ventures, Top Tier Capital Partners, Industry Ventures, Heavybit, and Harrison Metal Capital. Learn more at https://circleci.com.

CircleCI is proud to be an Equal Opportunity and Affirmative Action employer. We do not discriminate based upon race, religion, color, national origin, sexual orientation, gender, gender identity, gender expression, transgender status, sexual stereotypes, age, status as a protected veteran, status as an individual with a disability, or other applicable legally protected characteristics. We also consider qualified applicants with criminal histories, consistent with applicable federal, state and local law.

Verified by
Solutions Engineer
Head of DevRel & Community
Vice President of Marketing
Software Engineer
Support Engineer
Developer Evangelist
Technical Content Marketing Manager
You may also like