• Deploying a Serverless Application with AWS and CircleCI

    This is a guest post written by Vicenç García-Altés. It originally appeared on his blog, and has been re-published here with his permission. We hope you enjoy it!

    Starting with AWS Lambda is really easy. You can even write a function in the browser! But that’s not how you should work on a daily basis. You must have a CI/CD pipeline set up, you probably have two accounts (one for production and another one for development), you need a repeatable and reliable way to create your infrastructure and so on. In this article I’ll show you how to create a simple continuous delivery pipeline that brings us closer to a professional application development.

    Continue reading “Deploying a Serverless Application with AWS and CircleCI”

  • Migrating Your Scala/sbt Schema from CircleCI 1.0 to CircleCI 2.0

    I’ve been using CircleCI version 1.0 to build, test and upload Scala application packages to S3 for over 2 years. The CircleCI 1.0 template for the Scala apps are easy to understand and implement quickly which was a huge benefit over the older CI/CD solutions I was using. In July 2017, CircleCI 2.0 was released.

    CircleCI 2.0 features dramatically reduced build times and gives users more flexibility regarding the build environments than 1.0. Having said all this, there is a cost in upgrading, in that you need to migrate your 1.0 configuration file to the new 2.0 schema.

    In this post I’ll walk you through how I migrated a Scala application from 1.0 to 2.0. Below is my CircleCI 1.0 yaml file for a Scala-based app named samplescala. The source code for the samplescala app can be found in this github repo.

    Continue reading “Migrating Your Scala/sbt Schema from CircleCI 1.0 to CircleCI 2.0”

  • 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”

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