How CircleCI Processes 4.5 Million Builds Per Month

41,796
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.



CircleCI Workflow


Background

CircleCI is a platform for continuous integration and delivery. Thousands of engineers trust us to run tests and deploy their code, so they can focus on building great software. That trust rests on a solid stack of software that we use to keep people shipping and delivering value to their users.

As CTO of Engineering 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 viscous cappuccino.

The Teams

Engineers are people. People work better in small groups. So we’ve divided our team into several functional units, inspired by Spotify’s pods. We’re much smaller, so we’ve adapted their ideas to meet our needs, while maintaining the core principle that each team has the resources they need to implement a feature across the stack.

But we think of these teams as more of a guideline than actual rules, so folks are free to move around if it means they’ll be more engaged in the work. Flexibility is a key value at CircleCI: it has to be, with the majority of our engineers working remotely across multiple time zones. To keep everyone on the same page, we use Zoom for videoconferencing and screensharing and update statuses in Pingboard to keep track of who’s “in the office”.

We use JIRA to create consistency in our processes across teams. This consistency lets us stay more nimble if engineers ever need or want to switch teams. We use GitHub for version control and Slack for Giphy control. In addition to chat, we use Slack-based integrations with tools like Hubot, PagerDuty, and Looker to give us central access to many day-to-day tasks.

But you didn’t come here to read about how many Slack channels we have (241), you’re here to read about...

The Stack

Languages

Most of CircleCI is written in Clojure. It’s been this way since almost the beginning. While there were some early spikes in Rails, the passion of a sole developer won out; by the time CircleCI was released to the market, it was written entirely in Clojure and has been at our platform’s core ever since.

Our frontend used to be in CoffeeScript, but when Om made a single-page ClojureScript application viable, we opted for consistency and unification. This choice wasn’t that hard to make, given how much we enjoy using Clojure. Having a lingua franca also helps reduce overhead when engineers want to move between layers of the stack.

That doesn’t mean we won’t sharpen other tools when warranted. The build agent for our recently launched 2.0 platform is written in Go, which lets us quickly inject a multi-platform static binary into environments where we can’t lean on a bunch of dependencies. We also use Go for CLI tools where static dependency compilation and fast start-up are more important than our love of Clojure.

But as we pull microservices out of our monolith, Clojure remains our weapon of choice. We’ve already got over ten microservices, and that number is growing rapidly. A major part of this velocity stems from using Clojure, which ensures developers can rapidly move between teams and projects without climbing a huge learning curve.

The Frontend

Our web app’s UI is written in ClojureScript. Specifically, we’re using the framework Om, a ClojureScript interface to Facebook’s React. This is currently in some flux, since we’re upgrading to Om Next, an Om reboot which fixes a lot of its quirks. You can read more about why we’re so excited in this deep dive by one of our engineers, Peter Jaros.


CircleCI Screenshot


The Backend

Two Pools, Both Alike in Dignity

There are two major pools of machines: the first hosts our own services — the systems that serve our site, manage jobs, send notifications, etc. These services are deployed within Docker containers orchestrated in Kubernetes. In 2012, this configuration wasn’t really an option. As functional programmers, though, we were big believers in immutable infrastructure, so we went all in on baking AMIs and rolling them on code changes.

However, rounding boot times and charges to the hour made using full VMs slow and expensive; rolling deploys in Docker with Kubernetes is much more efficient. Kubernetes’ ecosystem and toolchain made it an obvious choice for our fairly statically-defined processes: the rate of change of job types or how many we need in our internal stack is relatively low.

On the other hand, our customers’ jobs are changing constantly. It’s challenging to dynamically predict demand, what types of jobs we’ll be running, and the resource requirements of each of those jobs. We found that Nomad excelled in this area. With a fast, flexible scheduler built-in, Nomad distributes customer jobs across our second pool of machines, reserved specifically for scheduling purposes.

While we did evaluate both Kubernetes and Nomad to do All These Things, neither tool was optimized for such an all-inclusive job. And 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’ve also recently started using Helm to make it easier to deploy new services into Kubernetes. We’ve had to build a couple small services to string the full CD process together with Helm, while also keeping Kubernetes locked down — but the results have been great. 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

For the last five years, we’ve run our infrastructure on AWS. It started simply because our architecture was simple but evolved into a necessarily complex stack of Linked Accounts, VPCs, Security Groups, and everything else AWS offers to help partition and restrict resources. We’re also running across multiple regions. Our deep investment in AWS led to increasing assumptions in our code about how the software was being managed.

When we introduced CircleCI Enterprise (our on-prem offering), we started supporting a number of different deployment models. We also started separating ourselves further from the system by packaging our code in Docker containers and using cloud-agnostic Kubernetes to manage resources and distribution.

With a much lower level of vendor lock-in, we’ve gained the flexibility to push part of our workload to Google Cloud Platform (GCP) when it suits us. We chose GCP because it’s particularly well-suited for short-lived VMs. Today, 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.

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 Frontend

When the frontend needs to talk to the backend, it does so via a dedicated tier of API hosts. These API hosts are also managed by Kubernetes, albeit in a separate cluster to increase isolation. Nearly all our APIs are public, which means we’re using the same interfaces available to our customers. The value of dogfooding your APIs can’t be overstated: it’s enabled us to keep the APIs clean and spot errors before our users find them.

If you’re interacting with our web application, then all of your requests are hitting the API hosts. The majority of our authentication is handled via OAuth from GitHub or Bitbucket. Once you’ve authenticated, you can also generate an API token to get programmatic access to everything we expose in the UI.

Our API hosts once accepted webhooks from GitHub and Bitbucket, but we’ve recently extracted that into its own service. Using a cleanly-separated service that dumps hooks into RabbitMQ allows us to more easily respond to a large array of operational issues. When version control system (VCS) providers are recovering from their own issues, we’ve seen massive spikes in hooks. Now we’re well equipped to deal with that.

Data! Data! Data!

Our primary datastore is MongoDB. We made this decision in CircleCI’s early days — lured like so many others by the simplicity of “schemaless” storage and rapid iteration. Having peaked at over 10TB of bloated storage in MMAP, along with painful, outage-inducing DB-level locks in Mongo 2.4, we’re happy to see progress being made in WiredTiger. Our operations have greatly improved, but we’re still suffering from a legacy of poorly-enforced schemas on a dataset too large to clean efficiently.

So we’re retreating to the structure of PostgreSQL. We’ve got a great opportunity for this migration as we build microservices with their own datastores. We’re also using Redis to cache data we’d never store permanently, as well as 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’re well beyond the scale where we could just dump this kind of stuff in a database. We handle any side-effects of S3’s eventual consistency model within our code to ensure 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 build or workflow representation in our datastores, then queue it for processing. In order to get promoted out of this first queue, the organization needs to have enough capacity in its plan to run the build/workflow.

If you’re a customer using all your containers, no new builds or workflows are runnable until enough containers free up. When that happens, we’ll pass the definition of the work to be performed to Nomad, which is responsible for allocating hardware for the work’s duration.

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 customer for a completely tailored build environment.


CircleCI Screenshot


The build agent streams the results of its work over gRPC to the output processor, a secure facade that understands how to write to all our internal systems. This facade approach allows our 1.0 and 2.0 platforms to coexist.

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 store small segments temporarily in Redis while we collect enough to write permanently to S3.

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 figuring out their more anomalous features. Nor the willingness to trust that it will just work for us. 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’re also using LaunchDarkly to safely deploy new and/or incomplete features behind feature flags.

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 Postgres; this is available for rapid analytics and dashboard creation through Looker. Many engineers who want to do their own analysis use tools they’re comfortable with, which includes sed and awk but also Pandas and R.

TL; DR

One of the great things about being a CI/CD company is that 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 they need.

This is our stack today. As our customers deal with more complex problems, we’ll adapt and adopt new tools to deal with emerging tech. It’s all very exciting, and we can’t wait to see what the future holds.

While we wait for the future, though, there’s no reason you should be waiting for good code. Start building on CircleCI today and ship your code faster. Or come work with us and help us ship our own code faster.

P.S. If you're already a CircleCI customer, head over to our community site and share your stack to get some free swag.


CircleCI Workflow


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
Analytics Engineer
San Francisco, Denver, Boston, Toronto, US, Canada
<p>As an <strong>Analytics Engineer at CircleCI</strong>, you will be responsible for bridging the gap between our team of data platform engineers and data analysts. We are looking for an Analytics Engineer to join our team that will help build, maintain, and scale our processes to deliver well-defined, transformed, tested, documented and code-reviewed data to business users and downstream systems to help the company strategically use our data to operate and grow our business.</p> <h2><strong>About Analytics Engineering at CircleCI</strong></h2> <p>The Analytics Engineering team at CircleCI will work to apply software engineering methodologies to the production and maintenance of analytics code and transform raw data into consumable information and business logic. The team will build a workflow that tests data to ensure it is of high quality, documents all business logic, and ensures data models are running optimally in a production environment. The team will be instrumental in growing the velocity of the analytics process and will improve the quality of data by bringing a deep understanding of what the business needs into the transformation process and by bringing the rigor of software engineering to analytics code! We’re now looking for someone who brings the experience and entrepreneurial mentality to help us build out this team and domain.</p> <h2><strong>What you’ll do:</strong></h2> <ul> <li>Work on high impact projects that improve data availability and quality, and provide reliable access to data for the rest of the business</li> <li>You’ll be the go-to analytics specialist at the company, and will help bridge the gap between understanding business needs and knowing how to craft efficient, usable data models.</li> <li>Work with engineers, product managers, and data analysts to understand data needs</li> <li>Build data expertise and own data quality</li> <li>Help define the data and analytics strategy and technical direction, advocate for standard methodologies, and investigate new technologies</li> </ul> <h2><strong>What we're looking for:</strong></h2> <ul> <li><strong>Experience:</strong> 3+ years experience as a data analyst or analytics engineer and prior experience with software engineers or software engineering workflows</li> <li><strong>Technical Skills:</strong> Proficient in SQL with experience programming in Python or another high-level language. Understanding of schema design for analytics and the operational needs of data pipelines. Just as comfortable getting quick answers with Excel</li> <li>A strong understanding of data quality testing</li> <li>Experience working with Snowflake, Looker and dbt preferred</li> <li><strong>Technical Education: </strong>A bachelor’s degree in a technical or quantitative field (e.g., Statistics, Mathematics, Computer Science, Engineering, Economics, or Finance)</li> <li><strong>Soft Skills and values: </strong></li> <li>Problem-solving: You bring curiosity and a strong interest in data, discovery, and an entrepreneurial mentality to your work</li> <li>Openness: You’re open to questioning your assumptions and being questions, and resilient</li> <li>Communication: You’re an effective communicator across technical and business audiences</li> <li>Planning: You have an affinity for structure and efficiency and are able to balance planning and execution, and are able to optimize for incremental value delivery. You manage partner expectations gracefully</li> </ul> <h2><strong>About CircleCI</strong></h2> <p>CircleCI is the world’s largest shared continuous integration/continuous delivery (CI/CD) platform, and the hub where code moves from idea to delivery. As one of the most-used DevOps tools - processing 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, and BuzzFeed use us to improve engineering team productivity, release better products, and get to market faster.</p> <p>Founded in 2011 and headquartered in downtown San Francisco with a global, remote workforce, CircleCI is venture-backed by Base10, Greenspring Associates, Eleven Prime, IVP, Sapphire Ventures, Top Tier Capital Partners, Baseline Ventures, Threshold Ventures, Scale Venture Partners, Owl Rock Capital, Next Equity Partners, Heavybit and Harrison Metal Capital.</p> <p>CircleCI is 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.</p> <p>Salary Range: $88,000-$110,000/year</p>
DevOps Customer Engineer
US
<p>As a DevOps Customer Engineer (DCE) at CircleCI<span style="font-weight: 400;">, you will be responsible for providing elite post-sales technical leadership to our client base. The DCE must be the subject matter expert on both the CircleCI platform and continuous integration and deployment as a general practice. Delivering value by driving adoption of CircleCI across the client’s enterprise will be goal number one.</span></p> <p><span style="font-weight: 400;">The successful candidate for this job will have a strong technical aptitude along with a strong self-starting, proactive mentality. Building, maintaining, and growing deep, lasting relationships with customers is a critical part of this role. CircleCI has very technical end users, and we deal with complex issues daily. The ability to provide clear, quick, and concise recommendations while also creating excitement and loyalty in our customer base should be a constant thought and come almost as second nature.</span></p> <p><strong>What you'll do:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Work together with customers to help them setup CircleCI, both on circleci.com and in their own private cloud, including any custom setup they may need</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Partner with your Customer Success Manager to onboard and support our customers.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Be creative and let your resourcefulness shine in solving customer technical problems and answering customer questions</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Act as the voice of the customer and provide customer feedback to internal product teams to contribute to moving the product forward in a way that best suits our customers</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work closely with the Product and Engineering teams to improve the customer experience across the whole platform</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Become an authority on the CircleCI solution</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Deliver and recommend in depth technical trainings for various topics to ensure customers succeed using CircleCI</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Assist customers in deploying CircleCI in private clouds to Kubernetes clusters</span></li> </ul> <p><strong>What we're looking for:</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">3+ years of technical product support, engineering, or experience deploying software in the enterprise</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience working directly with customers to debug common errors</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Ability to tie business problems to technical solutions and understand technology value propositions</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Demonstrated and proven capacity to quickly absorb new concepts and technologies</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Must have spent at least one year using and scripting *nix</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Git and GitHub knowledge required</span></li> <li><span style="font-weight: 400;">Solid understanding of Docker or Linux containers and Kubernetes required</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Developed and maintained an app or two in a high-level programming language</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Must believe that the best way for all to succeed is to honestly discuss product and company abilities and limitations with customers</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Strong ops / infrastructure knowledge, especially networking and security</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Great relationship building skills and a good people person</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Outstanding written and oral communication skills</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Must be comfortable communicating with customers live (via Zoom)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Must be able to adapt to unexpected problems on customer calls and handle them in a professional manner</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Must be able to communicate complex technological concepts to customers that are in a non-technical field</span></li> </ul> <p><strong>Bonus points!</strong></p> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with build, test, and deployment automation, either as a practitioner or in a customer-facing role</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Ability to understand and resolve networking issues that may prevent communication between different components</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience with popular web app frameworks (e.g. Rails, Django) and/or mobile app development (iOS, Android)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Knowledge of Go and Clojure a plus!</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience using and automating a major IaaS like AWS, GCP, or Azure</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Management of autoscaling technologies (e.g. launch configurations in AWS)</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Familiarity deploying and debugging distributed systems, especially with Hashicorp Nomad, specifically, a plus!</span></li> </ul> <p><span style="font-weight: 400;">We will ensure that individuals with disabilities are provided reasonable accommodation to participate in the job application or interview process, to perform essential job functions, and to receive other benefits and privileges of employment. Please contact us to request accommodation.</span></p> <p><strong>About CircleCI</strong></p> <p><span style="font-weight: 400;">CircleCI is the world’s largest shared continuous integration/continuous delivery (CI/CD) platform, and the hub where code moves from idea to delivery. As one of the most-used DevOps tools - processing 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, and BuzzFeed use us to improve engineering team productivity, release better products, and get to market faster.</span></p> <p><span style="font-weight: 400;">Founded in 2011 and headquartered in downtown San Francisco with a global, remote workforce, CircleCI is venture-backed by Base10, Greenspring Associates, Eleven Prime, IVP, Sapphire Ventures, Top Tier Capital Partners, Baseline Ventures, Threshold Ventures, Scale Venture Partners, Owl Rock Capital, Next Equity Partners, Heavybit and Harrison Metal Capital.</span></p> <p><span style="font-weight: 400;">CircleCI is 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.</span></p> <p><span style="font-weight: 400;">Colorado Salary Range: $96,000 - $120,000/year, plus applicable bonuses</span></p> <p>&nbsp;</p>
DevOps Customer Engineer, EMEA
London, UK, Ireland, Germany, Netherlands
<p>&nbsp;</p> <p>As a DevOps Customer Engineer, you will be responsible for providing world class post-sales technical leadership for our highest value customers. Working directly with end users and up to senior decision-makers within customer software engineering teams, you will be the authority 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 depth and breadth of customer organisation.</p> <p>The successful candidate for this job will have a strong technical capability and preferably some experience in CI/CD and DevOps practices. You will have a self-starter mentality and 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.</p> <h2><strong>About Customer Engineering at CircleCI</strong></h2> <p>CircleCI’s Customer Engineering organisation’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. Customer Engineering currently comprises DevOps Customer Engineering (your team), Solutions Engineering (your pre-sales counterparts), and Support Engineering (the global support team). There is opportunity for both horizontal and vertical growth and promotion within, as well.</p> <h2><strong>Responsibilities</strong></h2> <ul> <li>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.</li> <li>Partner with your Customer Success Manager to onboard and support our customers as well as act as the dedicated technical point of contact.</li> <li>Be creative and scrappy in solving customer technical problems and answering customer questions.</li> <li>Build standards for onboarding across different technologies.</li> <li>Act as the voice of the customer and use customer feedback to help Product and Engineering improve the product.</li> <li>Code and commit relevant upgrades and changes to the CircleCI codebase.</li> <li>Work closely with the Product and Engineering teams to improve the customer experience across the whole platform.</li> <li>Become an expert on the CircleCI solution.</li> </ul> <h2><strong>Basic qualifications</strong></h2> <ul> <li>3+ years of technical product support, engineering, or experience deploying software in the enterprise.</li> <li>Experience working directly with customers to debug common errors.</li> <li>You can tie business problems to technical solutions and understand technology value propositions.</li> <li>Demonstrated and proven capacity to quickly absorb new concepts and technologies.</li> <li>You have spent a decent amount of time using and scripting *nix.</li> <li>Git and GitHub knowledge required.</li> <li>You’ve developed and maintained an app or two in a high-level programming language.</li> <li>You believe that the best way for all to succeed is to honestly discuss product and company abilities and limitations with customers.</li> <li>Strong ops / infrastructure knowledge, especially networking and security.</li> <li>Great relationship building skills and a good people person.</li> <li>Exceptional written and oral communication skills.</li> </ul> <h2><strong>Additional skills</strong></h2> <ul> <li>Experience with build, test, and deployment automation, either as a practitioner or in a customer-facing role.</li> <li>Ability to solve networking issues that may prevent communication between different components.</li> <li>Working knowledge of Docker and/or kubernetes.</li> <li>Experience with popular web app frameworks (e.g. Rails, Django) and/or mobile app development (iOS, Android).</li> <li>Knowledge of Go and Clojure a plus!</li> <li>Experience using and automating a major IaaS like AWS, GCP, or Azure.</li> <li>Management of autoscaling technologies (e.g. launch configurations in AWS).</li> <li>Familiarity deploying and debugging distributed systems. Familiarity with Nomad, specifically, a plus!</li> </ul> <p>We will ensure that individuals with disabilities are provided reasonable accommodation to participate in the job application or interview process, to perform essential job functions, and to receive other benefits and privileges of employment. Please contact us to request accommodation.</p> <h2><strong>About CircleCI</strong></h2> <p>CircleCI is the world’s largest shared continuous integration/continuous delivery (CI/CD) platform, and the hub where code moves from idea to delivery. As one of the most-used DevOps tools - processing 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, and BuzzFeed use us to improve engineering team productivity, release better products, and get to market faster.</p> <p>Founded in 2011 and headquartered in downtown San Francisco with a global, remote workforce, CircleCI is venture-backed by Base10, Greenspring Associates, Eleven Prime, IVP, Sapphire Ventures, Top Tier Capital Partners, Baseline Ventures, Threshold Ventures, Scale Venture Partners, Owl Rock Capital, Next Equity Partners, Heavybit and Harrison Metal Capital.</p> <p>&nbsp;</p> <p>CircleCI is 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.</p>
Director of IT
San Francisco, Denver, Boston, US
<p><span style="font-weight: 400;">As Director of Information Technology your main goal is to enable our global organization through the effective use of end user Information Technology.&nbsp; You will be responsible for defining CircleCI’s office infrastructure and technology strategy, and a vision for how that should unfold over the upcoming 3-5 year horizon.&nbsp; You will build and lead the IT team, and shape our systems access architecture and collaboration technology choices. You will define and communicate key IT policies and procedures, and set clear expectations that our employees and departments can understand and be accountable to uphold.&nbsp; You will collaborate with other teams to choose a rational roster of systems, tools, and integrations that maximize our efficiency as an organization, and the employee experience.&nbsp; The Director of IT will report directly to the VP of Business Operations.&nbsp;</span></p> <h2><strong>About IT at CircleCI</strong></h2> <p><span style="font-weight: 400;">The IT team is responsible for provisioning and supporting our key technologies (workstations, A/V equipment), providing a help desk to our employees, and administering key tools and platforms used across the organization.&nbsp; Additionally the IT team is responsible for collaborating with the Security Team to ensure ongoing compliance with FedRAMP, SOC 2, and other emerging requirements.&nbsp;&nbsp;</span></p> <h2><strong>What you'll do:&nbsp;</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Define CircleCI’s end user technology strategy and a vision of how that unfolds over a multi-year period</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Identify a back office system architecture in conjunction with the key business stakeholders and system owners across the company</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Define and document the critical business systems leveraged across the organization, and the necessary people/process/tools required to ensure effective day to day operations of those systems.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Establish clear help desk policies, ensure SLA’s are being achieved, and provide a positive user experience to our employees.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Determine the appropriate separation of duties related to each critical business system, in conjunction with the existing business owners and primary user base.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Work with the Security Team to ensure ongoing compliance for FedRAMP and SOC 2. This includes being a guardian of the Access Control Policy.&nbsp;</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Assist in evidence creation for audits.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Help shape and manage a procurement process to ensure adequate visibility and control exists over technology purchases.&nbsp; Oversee and negotiate annual contract renewals.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Document the intended use and best practices for our portfolio of communications tools;&nbsp; how and when to use slack, e-mail, etc.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Drive organization-wide technical requirements and solutions on matters such as automating onboarding/offboarding, MDM, anti-virus, VPNs, phishing, password managers and 2FA.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Manage quarterly objectives and KPIs for the IT function.</span></li> </ul> <h2><strong>What we're looking for:</strong></h2> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Experience driving the IT function for a growing global organization.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">A collaborative mindset.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">A hands-on leadership style, with a scrappy start-up mentality.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Great communication skills, especially strong at cross departmental collaboration.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Technical proficiency around AV systems, Okta, office wireless networks, MDM, anti-virus, VPNs, phishing, password managers and 2FA.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Understanding of SOC 2, FedRAMP and GDPR.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Passionate about solving problems for employees of all levels and working with compliance/security teams.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Excellent project management skills.</span></li> <ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Ability to juggle, coordinate, track and follow through details of many seemingly unrelated issues.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Coordinate all the dependencies of a deliverable action across teams.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Provide concise reports to management.</span></li> </ul> <li style="font-weight: 400;"><span style="font-weight: 400;">Ability to escalate problems with applications or products to management with recommendations on solutions.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Strong writing and documentation skills.</span></li> <li style="font-weight: 400;"><span style="font-weight: 400;">Passion for our mission, our technology and our innovative approach to achieve&nbsp; growth</span></li> </ul> <h3><strong>About CircleCI&nbsp;</strong></h3> <p><span style="font-weight: 400;">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.&nbsp;</span></p> <p><span style="font-weight: 400;">Founded in 2011 and headquartered in San Francisco with a global remote workforce, CircleCI is venture-backed by Scale Venture Partners, Threshold Ventures (formerly DFJ), Baseline Ventures, Top Tier Capital, Industry Ventures, Heavybit, Harrison Metal Capital, Owl Rock Capital Partners, and NextEquity Partners.</span></p> <p><span style="font-weight: 400;">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.</span></p> <p>Colorado Salary Range: $180,000 - $225,000/year</p> <p>&nbsp;</p>
Verified by
Developer Evangelist
Support Engineer
Vice President of Marketing
Technical Content Marketing Manager
Head of DevRel & Community
You may also like