• Improve Process by Enforcing Build Standards: 3 Practices to Adopt

    When developing software solo, you don’t have to spend time communicating your decisions to anyone, and you’re likely to format your code today the way you formatted it yesterday. However, when working in a shared codebase, it becomes much more important to create and follow standards of behavior. Having a shared understanding of “the way we do things” ultimately saves time by eliminating unnecessary back-and-forth, confusing code reviews, and having to re-do PRs on incorrect branches.

    However, new rules and standards can be difficult to adopt. CircleCI can help by automating the process and creating built-in alerts when standards are violated. Read on for three ways CircleCI can help you enforce build standards on your team.

    Continue reading “Improve Process by Enforcing Build Standards: 3 Practices to Adopt”

  • The Future of Operations: 6 Shifts Worth Noting


    The umbrella term “DevOps” has grown so much over the last few years that the word now strains to mean the same thing for all people. This is less a semantic issue and more a reflection of the growing scope of software delivery automation. At the helm of this growth are the operators who manage the tooling and practices that enable today’s software delivery methods. Their role has morphed and grown immensely, even over just the last two years that CircleCI has been running behind their firewalls. These operators’ responsibilities are myriad: they are responsible for keeping the tool chains that developers use every day humming along while answering to the business for security, cost control, and compliance. Behind the scenes, they are keeping inevitable technical fires at bay while facing increasing pressure from senior management to deliver on Digital Transformation.

    Continue reading “The Future of Operations: 6 Shifts Worth Noting”

  • Publishing npm Packages Using CircleCI 2.0

    This is a guest post written by Armando Canals, co-founder at packagecloud.

    This post will cover the necessary steps to implement a continuous deployment pipeline for NodeJS projects using CircleCI 2.0.

    We’ll go over setting up a project using the new CircleCI 2.0 configuration, running tests in CircleCI, and deploying packages to the official npm registry when a tagged commit is pushed to a git repository.

    Continue reading “Publishing npm Packages Using CircleCI 2.0”

  • Automate Your Static Site Deployment with CircleCI

    This article was originally posted on Forestry.io’s blog. Forestry.io is a Git-backed CMS (content management system) providing editors and other non-technical users with a custom UI for websites and web products built using static site generators.

    Tools like Hugo, Jekyll, and Gatsby have made building static sites a popular and practical choice for developers. One major disadvantage these tools have, however, is the need to regenerate and redeploy their files every time there is new content to publish.

    Automating this process will go a long way toward making your static site feel like a dynamic CMS. It will also save you time and improve the reliability of your deployments, as the exact same steps will run every time you deploy. For this reason, automated deployment is a cornerstone of modern web development.

    Our favorite deployment tool is CircleCI, we’re using it at Forestry.io every day to deploy our Hugo site. For our tutorial today we’ll be using CircleCI to deploy a Hugo site but you can use CircleCI for any static site that needs automated deployment.

    Continue reading “Automate Your Static Site Deployment with CircleCI”

  • How to Design Services for Continuous Deployment: 3 Best Practices

    The benefits of continuous delivery are well-documented elsewhere. In this post I want to share some of the practices that we use at CircleCI to ensure that our services can safely be deployed continuously.

    Our stack is composed of services deployed on Kubernetes. Each service is largely contained in its own git repository and deployed independently of other services. When we deploy a new version of a service, the new code is rolled out pod by pod, by Kubernetes. This means that at any one time, there can be more than one version of the code in production at once.

    What follows is a list of practices that we find work well for us as team.

    1. Prevent Broken Code From Being Deployed
    2. Know When Code Is Being Deployed
    3. Ensure Messages Are Delivered

    Continue reading “How to Design Services for Continuous Deployment: 3 Best Practices”

  • How We Interview Engineers at CircleCI

    Since the beginning of 2018, we have had over a thousand candidates pass through the engineering hiring process. Our engineering interview consists of four stages following an initial screen. We broke down the percentages of candidates that pass through each stage of our hiring process, and it looks like this.

    Out of any group of 1000 applicants:

    250 will pass the initial screen.
    117 will pass the hiring manager phone screen.
    44 will pass the micro-skills assessment portion of the interview.
    7 will pass the macro-skills assessment.
    Fewer than 3 will pass the on-site interview and receive offers.

    Following our Series C, we’ve ramped up our hiring further, building on what we’ve learned so far. We’ve been talking a lot internally lately about how we interview, and thought folks might be interested in what our interview process looks like for engineering roles, and why.

    Continue reading “How We Interview Engineers at CircleCI”

  • CircleCI and Snapcraft: Everything You Need to Know

    Snapcraft, the package management system fighting for its spot at the Linux table, re-imagines how you can deliver your software. A new set of cross-distro tools are available to help you build and publish “Snaps”. We’ll cover how to use CircleCI 2.0 to power this process and some potential gotchas along the way.

    Continue reading “CircleCI and Snapcraft: Everything You Need to Know”

  • How a Seemingly Simple Logging Problem Turned into a Bear Trap: Lessons Learned


    “Developers are drawn to complexity like moths to flame, frequently with the same result. Puzzle solving is fun, and developers are problem solvers. Who doesn’t like the rush of solving some incredibly complex problem? In large-scale software, though, removing accidental complexity while retaining the solution to the essential complexity is challenging.” Neal Ford

    I have been coding in Clojure for almost 4 years now. I have been fighting with logging in Clojure for almost 4 years now. This is not something for which Clojure is solely to blame, but it is something that seems to often suffer the Lisp Curse.

    This past year, while working in a field of green (ie, building Contexts), I was once again confronted with a “simple” problem in the realm of logging…namely we were spitting out all of our secrets. Figuring this was probably enough to block launching it publicly, my team took some time to dig deeper and hunt down the errant class writing all of our requests to stdout.

    Continue reading “How a Seemingly Simple Logging Problem Turned into a Bear Trap: Lessons Learned”

  • CircleCI: Helping Intuit Teams Save 40% (or more) on CI/CD

    This post was originally published on Intuit Quickbooks’ engineering blog.

    DockerCI.png Docker on CI is powerful

    CircleCI has an amazing set of features in a simple package that allows our developers to move faster than ever before. Coming from our old build system, we wanted to push Circle to the limits such that we could squeeze as much speed out of it as possible.


    1. Be as small as possible
    2. Be reliable/reproducible
    3. Be fault tolerant

    From the outset, we wanted to make sure that we could build at scale with the least amount of friction possible. That meant embracing open source, and interweaving it our internal solutions. At each step of our build process, we focused on these things.

    Continue reading “CircleCI: Helping Intuit Teams Save 40% (or more) on CI/CD”

  • We’re Sunsetting CircleCI 1.0: August 31, 2018 is the Final Day for 1.0 Builds

    TL;DR: After August 31, 2018, CircleCI 1.0 will no longer be available for Linux and macOS users. You can find guides for transitioning from 1.0 to 2.0 and a full timeline on planned changes here.

    We launched CircleCI 2.0 for general availability in July 2017, providing users with increased flexibility, power, and control. Since then, build times on both our Linux and macOS fleets have been dramatically reduced. We’ve been able to handle increasing numbers of users and jobs, while simultaneously decreasing average job time across every language we serve. The addition of Workflows in 2.0 has also made it possible to match your pipeline to your team’s needs.

    Continue reading “We’re Sunsetting CircleCI 1.0: August 31, 2018 is the Final Day for 1.0 Builds”

Get New Posts Delivered

Sign up to receive fortnightly blog highlights

Thank You for Submitting Your Info

You should receive an automated response notifying you that we received your info. Someone from our Enterprise team will be reaching out to you shortly.

CircleCI Success Logo