I'm writing another book: Kargo in Action

I'm writing Kargo in Action for Manning with Jesse Suen and Kent Rancourt. It's available now in early access.

Read more

Share

Why you should give new employees a 30-60-90

In the last blog post, we talked about ramping up your new developers as quickly as possible and we concentrated on their local development environment and why it is important to get them up and running quickly. Getting that setup is important but is only one step of many that you need to do to make sure they become a fully functional team member.

An employee will need to make sure they have system access, business knowledge, employee connections as well as the skills required for their job. Every new employee is going to be different when they start. Some are going to have some of the skills and knowledge, some might not have any. You need a way to determine what their gaps are and create a plan for that employee to make sure they know what they need to do to get to the point where they have everything they need to be a fully competent member of the team, able to take on tasks with little to no hand-holding.

Read more

Share

On-boarding new developers to the team

When you hire someone new for your development team, one of the primary goals is to ramp up that person so that they can be a fully contributing member as soon as possible.

When dealing with developers one way to decrease this time is to make it as easy as possible for someone to commit code to production on their first day. For a lot of companies, this isn’t possible and I hear horror stories of new employees taking a week or two just to get their local environments configured and up and running.

Read more

Share

How I hire software developers

As an engineering manager, one of the things that you will need to do from time to time is hire new employees for your team. I have been involved in hiring developers for around 15 years now. I have done everything from just being on an interview panel, all the way to the hiring manager. Each of the roles on the interview panel has different responsibilities but they helped me finely tune the hiring practice I use today. It is set up to be fair and to hopefully eliminate any unconscious biases that might be in the process.

Read more

Share

Build, notarize, and sign Golang binaries for MacOS with GitHub Actions

When Apple introduced MacOS Catalina, it came with some security features to make sure you were only using trusted binaries. This requires that the binaries are signed and notarized by Apple themselves, or else you get an error.

MacOs Catalina error for unsigned binary

There are ways around this error, but that makes it difficult if you want distribute your binaries to a large group of people. It could slow down adoption.

Read more

Share

I wrote a book : Docker Cookbook Second Edition

One of the things that I have always wanted to do was write a book. When I was at Docker I had a few offers from publishers to write a book, and I even started writing one called the Docker guidebook and you can find it on Github. Since Docker was growing so fast and I was spending so much time working that I didn’t have a lot of free time to write a book. I decided instead to take my free time and spend it with my family. That was a pretty easy decision, and I would make it again if I had to with no regrets.

Read more

Share

CashStar the early years

On August 30th, 2017 BlackHawk Network acquired CashStar for $175 Million dollars in cash. This is good news for everyone involved, the CashStar employees, share holders, and for black hawk. This is a great ending, but how did they get where they are today, and how did it all start? I was lucky enough to be one of the first employees at CashStar, so I have some first hand knowledge of the early years. I have been meaning to write about this for a while, and with the recent sale, it looks like this is a good time to sit down and write it down, before I forget.

Read more

Share

Using Lambda to get a users Availability Zone list in Cloud Formation

This is a follow up to my Understanding AWS Regions and Availability Zones in Cloud Formation post that I made a little while ago.

Previously I talked about how you can dynamically select the number of AvailabilityZones (AZs) that you want to deploy your instances too, based on the region. Since some regions only offer two AZs and others have more, you will always want to deploy to as many as possible, to make your application better handle an outage if an AZ were to go down.

Read more

Share

My CloudFormation wish list

I have been using CloudFormation a lot over the past year with my work on Docker for AWS. It is a pretty good product, but there are still some rough edges that make using it a lot harder then it needs to be. I have compiled a list of changes and feature requests that I would like to see added to CloudFormation to make my life easier. I hope this blog post gets read by the CloudFormation team and helps guide their roadmap. If they have any questions, feel free to reach out to me on Twitter, Linkedin, etc any time.

Read more

Share

5 Years at Docker

February 15th, 2017 was my 5th year anniversary of joining dotCloud/Docker. I have been thinking a lot about those 5 years at Docker, and thought it would make for a good blog post. This is going to be fairly long, but I think it will be worth it to see how Docker progressed over time.

How I got hired

Before I can explain how I got the job, I need to first give a little background. Before working at dotCloud/Docker I worked for a startup called CashStar. At CashStar I was the first engineer hired to build the SaaS product they were developing. When I got there, they only had a powerpoint presentation and a half working demo. This was good because it meant I had the freedom to do what I wanted and pick the technologies that I felt were best for the job. I decided on a typical Linux stack with the following as my base: Linux, Python/Django, MySQL. This stack worked very well for what we were doing. The only change I might make if I had to do it again is switch out MySQL with PostgreSQL.

Read more

Share