• Micro-promotions and mentorship: the big impact of small actions in an engineering culture

    Inclusion_Kindness.jpg

    For the last decade, I have worked in male-dominated environments. While during this time I’ve encountered many nitwits and detractors, I’ve also been fortunate to encounter many proponents and advocates. Although no company is perfect, at CircleCI I’ve had opportunities to grow my career in an environment I enjoy. Some of that is thanks to me, and a good slug of that is thanks to my coworkers. They have mentored, sponsored, and advocated for me through a series of real, substantive, micro-promotions. Their actions make a difference. Regardless of who you are or what your organizational role is, your actions do too. An inclusive team is either strengthened or weakened by the gestures of each individual on it. Start small.

    Continue reading “Micro-promotions and mentorship: the big impact of small actions in an engineering culture”


  • Debugging CI/CD pipelines with SSH access

    Tutorial Beginner

    In my recent interactions at AWS re:invent and KubeCon, I discovered that too many existing CircleCI users were not aware of, or not using, the very useful and powerful debugging with SSH feature. This feature enables a user to troubleshoot and debug builds on the resources where the build failed.

    I’ll start this post with a mock dialogue that most developers more than likely have had at one time or another with their sys admins, SREs, or DevOps colleagues regarding failed CI/CD builds, and it goes a little something like this…

    Continue reading “Debugging CI/CD pipelines with SSH access”


  • Piecing together build and test results with artifacts

    2019-04-04-Default-Baroque-v3.png

    Picture this: You’re in a remote desert area where there’s been a historic archaeological settlement found. Through the initial investigations, it appears this band of people didn’t have the greatest luck surviving. This is why you’re there. You’re looking for clues to see if you can put together an accurate picture of why their luck ran out.

    Through your searching and searching you’re not uncovering much that’s helpful when suddenly- bam! You uncover an object that seems to be the keystone to explaining what went on here. This artifact you’ve found was just what you needed to inform you and help you understand what happened.

    Imagine having these types of key clues for your test runs, builds, and more! CircleCI has you covered, though since we can’t give the system artifacts like sandy pieces of pottery, swords, or silver monkeys, let’s take a look at what we can create and a few ways that we can use those items.

    Continue reading “Piecing together build and test results with artifacts”


  • How to test software, part I: mocking, stubbing, and contract testing

    Cover-TestDefs-Part1.jpg

    In my last post, I talked about building a structured path to production: which tests to include, when to do them, and why. In this post, we’ll get into exactly how to do each kind of test.

    We’ll cover the techniques of mocking and stubbing, and test-driven development to help each testing layer.

    Continue reading “How to test software, part I: mocking, stubbing, and contract testing”


  • Contributing the Elixir orb

    2019-03-26-Default-Baroque.png

    Coletiv is a custom software development studio from Porto that transforms ideas into high-quality applications. We help companies of all sizes design, develop, and launch digital products for iOS, Android, and the web.

    From our earliest days, continuous integration (CI) and continuous delivery (CD) have been requirements for every project that we have built. We needed a tool that could cover Elixir as well as the native iOS and Android platforms that we work with. After testing several tools, we settled on CircleCI as our tool of choice.

    Continue reading “Contributing the Elixir orb”


  • An intro to Infrastructure as Code

    2019-04-02-Terraform-v6.jpg

    Hi! I’m Chris. I’m a Solutions Engineer with CircleCI. I love speaking with prospective customers and technology partners, solving challenging issues, working with very talented engineers, and helping folks get the most out of our platform. My role is very much at the intersection of engineering and sales. At this intersection, I do a lot of demos that show off complicated things in deterministic ways, and I constantly find myself spending time recreating demo environments. Before transitioning into this role, I was on CircleCI’s SRE team for about two years. On the SRE side of things, I discovered a wonderful piece of software that helps me with my demos called HashiCorp Terraform. I’m sure many of you are familiar with it, but if not, here is the tl;dr:

    Terraform is a magical tool that enables the automatic provisioning of infrastructure based on declarative templates, written either in HCL (HashiCorp Configuration Language) or JSON. These manifests represent declarative snapshots of what the desired state of your infrastructure would look like. Emphasis on declarative rather than procedural.

    This is the first post in a two-part series. This post will focus on the basics of Infrastructure as Code (IaC), addressing a fundamental question that I’m often asked when speaking with folks who are new to the platform: “Can I use Terraform on CircleCI?” The answer is yes. Yes you can! The followup post will contain best practices for executing Terraform on CircleCI and address more sophisticated use cases.

    Continue reading “An intro to Infrastructure as Code”


  • Protect secrets with restricted contexts

    restricted_contexts.jpg

    From the European Union GDPR data privacy standards to seemingly endless press coverage of data leaks, security is top of mind like never before. Security is such a crucial consideration in software development that an entirely new word, DevSecOps, now exists to represent security’s significance throughout every stage of an integrated software creation and delivery pipeline.

    Continue reading “Protect secrets with restricted contexts”


  • CI/CD for Node.js projects: using CircleCI, Kubernetes, and Docker with deployment to the Google Cloud Platform

    Tutorial-Beginner.jpg

    Photo credits: Meshstudio

    Photo credit: Meshstudio


    Automating the delivery of software can solve many of the problems associated with manual deployments. The goal of this post is to provide insight into continuous integration/continuous deployment (CI/CD) for Node.js projects. The tutorial will feature the use of several tools: Docker to help us in containerization, Kubernetes will be used as our orchestration tool, Google Cloud Platform (GCP) will be the cloud service provider, and finally, CircleCI.

    Continue reading “CI/CD for Node.js projects: using CircleCI, Kubernetes, and Docker with deployment to the Google Cloud Platform”


  • A preview of pipelines

    Pipelines-v2.1.jpg

    TL;DR: Today we are changing our project setting called “Build Processing” to “Pipelines.” If you want to know why, read on. If not, nothing about this will affect you for a while, so you can stop here.

    The change to “pipelines” begins our process of moving all projects over to having this setting on by default. This is the first of several changes we’ll be making to roll out the concept of pipelines throughout our platform. The vast majority of users should not notice any change because of today’s update, but we wanted to share more detail on what we are doing, and why, so you have more context on things that will be coming in the future.

    Continue reading “A preview of pipelines”


  • Package a Clojure web application using Docker

    This is the second blog post in a three-part series about building, testing, and deploying a Clojure web application. You can find the first post here.

    In this post, we will be focusing on how to add a production database (PostgreSQL, in this instance) to an application, how to package the application as a Docker instance, and how to run the application and the database inside Docker. To follow along, I would recommend going through the first post and following the steps to create the app. Otherwise, you can get the source by forking this repository and checking out the master branch. If you choose this method, you will also need to set up your CircleCI account as described in the first post.

    Continue reading “Package a Clojure web application using Docker”


Subscribe to our Blog

Get the latest posts in your inbox

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