CircleCI has roughly 100 employees and at least 10 of us are here as a result of attending a coding bootcamp. Love them or hate them, bootcamps are here to stay and they’re becoming more entrenched in the hiring pipeline. Course Report counted 30 technology-focused bootcamps in 2013. Today, they list more than 300.
Test, test again
Here at CircleCI, we care a LOT about testing. And after running more than 65 million builds, we have learned a thing or two. Empowering teams to test often and better is a driving force in what we do. Running tests makes your code more reliable.
But are you getting the most out of your tests? Beyond simply implementing them, are you adequately testing your tests? After all, the tests themselves are only as good as they are reliable.
Some Docker containers are perfect for CircleCI 2.0. Postgresql, for instance, spins up everything you need just by passing in a few variables:
version: 2.0 jobs: build: docker: - image: clojure:alpine - image: postgres:9.6 environment: POSTGRES_USER: username POSTGRES_DB: db ...
But sometimes you’ll come across a third party container which doesn’t play so nice. You’ll need access to some resources which are present inside the container and nowhere else. The issue you’ll run into is that CircleCI makes your execution environment your primary image. So above, while I have access to the ports which are exposed by Postgres,
psqlisn’t in my
$PATH. Only the contents of Clojure’s Alpine container are.
When it comes to choosing passion projects and side studies, CircleCI engineers have considerable freedom. One of our support engineers, Zachary Scott, has been spending some of his free time tinkering with Elixir, a dynamic, functional language. It has enough in common with Clojure — our language of choice here at CircleCI — that we thought folks would enjoy a deep dive into this (relatively) new language. Enjoy!
It’s probably no surprise that we’re excited about Elixir, a functional language built on Erlang VM that shares many of Clojure’s philosophies. Before I talk about Elixir’s design and why it’s so amazing, I’d like to share how I stumbled on this beautiful language.
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.
After a bracing conversation with Alek Sharma, our developer advocate, I decided to write an equally bracing call-to-arms describing our hiring process.
So, you’re a software engineer. You’re adept at creating value from abstract concepts, weaving functions together in the loom of your mind. You know that Real Problems™ involve Real Work™ – a potent blend of success and failure, mixed thoroughly and served with a little umbrella.
TL;DR: CircleCI 2.0 now recognizes your build, test, and deploy stages as individual jobs with the release of Workflows. Teams using Workflows will now be able to control each stage of their development process to match their ideal process from start to finish.
Sometimes you’re backed into a dark corner, and a creeping thought comes into your head: “Rewrite this dark corner that everyone’s afraid to touch.”
WWDC 2017 has been a source of many great improvements for iOS and Mac developers, from new hardware to brand new APIs for drag and drop, wireless debugging, and exciting frameworks for machine learning and augmented reality. However, there are a few features that we’re most excited about.
The ability to share project environment variables has been one of our top-requested features, and is now available to all CircleCI users.
Previously, each new project required manually adding environment variables such as API keys. Now, organization admin users can do a one-time import of environment variables from other projects within an organization. This should reduce pain when setting up new projects.
Here’s how to find and import project environment variables from your build dashboard: