I'm Chris. I live in Atlanta, GA with my wife San, our daughters Autumn and April, and our dog Pixie. Professionally I am a Software Engineering Leader and Technologist currently helping to build something new at Statype, on the side I run a Web Hosting company for Atlanta small businesses, and for fun I ride bikes, take pictures, and build things.

Building A Smarter Sprinkler System

I moved into a house a year ago, and with some time between jobs finally had some time to get through a pile of projects. The existing sprinkler system controller turns on when it is not supposed to, and forgets everything whenever the power blips, which has been happening a lot.

This project (unfortunately) didn’t require buying any new tools, saved spending $100+ on a gadget, and hooks together a a handful of things pretty smoothly. Finished photo first:

A Wild Five Years

My last update here was in 2017, and since then a lot has happened.

  • mtb2k18 in Squamish and Whistler, BC
  • Moved to New Canaan, Connecticuit in 2018 to manage software engineering teams at Bridgewater Associates for 2 years
  • mtb2k19 in Sedona, AZ
  • Added a 2019 Knolly Warden to the stable and rode a bunch of chunky rocky mountain bike trails and downhill parks all around New England, including attending NEMBAFest at the Kingdom Trails in East Burke, VT. Met a handful of great people, built some trails, and rode every wednesday night including when it was 17F out.
  • Family Vacation to London and Disney Paris
  • Christmas with San’s family in Getaria, Spain
  • Went to AWS re:invent 2019
  • A global pandemic began. Lots of Zwift.
  • Moved back, temporarily to Newnan, GA, and permanently back to in-town Atlanta, GA to manage software engineering teams at Zenput
  • Had a second kiddo.
  • mtb2k21 in Crested Butte, CO
  • Retired my 2016 Yeti ASR Enduro and added a 2021 Commencal Meta AM HT to the stable to replace it for XC and adventure riding, back to the Tuesday night ride in town.
  • Lots of traveling and bike adventures
  • Starting a new job on May 23. Stay tuned for details!

The theme here got a (minor) facelift today, and with a few weeks between jobs I’m much more caught up on ‘projects’ than I’ve been in a long time so this place may start to see a little bit more regular updates. I owe you some blog posts, stay tuned for:

  • Mountain biking in Squamish/Whistler, Sedona, and Crested Butte
  • What I learned building a dollhouse from scratch
  • Mountain biking at Paul’s Mountain Place
  • What I learned building a sprinkler system controller with Homebridge and some electronics parts
  • Reflections on Middle Management
  • Any requests?

Mountain Biking in Pisgah, NC

(2009: Santa Fe, NM, 2010: Portland, OR, 2011: Colorado, 2012: Sun Valley, ID, 2013: Park City, UT, 2014: Oakridge, OR, 2015: Jackson, WY 2016: Moab, UT)

It was finally time to make the drive from home to Brevard, NC to ride around Pisgah for a week for #mtb2k17. All kinds of technical downhills, some great miles of flow, even less views than North GA. Paul flew in from Portland, Kurt drove over from Charlotte, and the rest of us all drove up from Atlanta in a handful of cars. This was my first bike trip on my own mountain bike (instead of a rental) which was great, and the rest of the crew had a great spread of their own bikes and some sick rentals from The Hub (who also have all the maps and draft beer you need). We stayed at a great AirBnB a quick bike ride from town. The first night we turned on TNT and Star Wars was on, a different Star Wars was on every night, so we watched all of them and added Rogue One from Jason’s Netflix account the last evening. Best beer of the trip for me was Lorelai IPA by Bhramari Brewing Company, and second place was far too close to call between Asheville Brewing’s Perfect Day IPA, Lazy Hiker Brewing’s Slack Pack, and Catawba Brewing’s Hopness Monster.

Dreamforce 2016

If you’re in the Salesforce ecosystem, you know what a big deal Dreamforce is. I’ve been working on Saleforce’s B2B Marketing Automation product Pardot for almost 2 years and I’d heard the hype, but didn’t really get how big of a deal it was. Last year I was building new teams and my teams didn’t yet have things for announcing at Dreamforce, but this year we were building software and had a lot to show off.

Announcing “Wave for B2B Marketing”

First up, the reason Salesforce shipped me over to California for Dreamforce: A year’s effort by one of my engineering teams culminated in our product launch at Dreamforce, “Wave for B2B Marketing”

Mountain Biking in Moab, Utah

(2009: Santa Fe, NM, 2010: Portland, OR, 2011: Colorado, 2012: Sun Valley, ID, 2013: Park City, UT, 2014: Oakridge, OR, 2015: Jackson, WY)

For #mtb2k16 this year, we headed to Moab, Utah. It’s got the views and the downhills, but not quite the ups of years past. 5 days of great riding, only one minor emergency room visit, and a lot of great food and beer.

Getting There

Paul flew into Denver from Portland, while Brian and I flew in from Atlanta to meet up and pick up the cheapest rental car Hertz had: a Mercedes GLA 350. No idea why this was $300 for an entire week, but no complaints! We drove the 5+ hours to Moab, UT, where we met up with Dave (drove in from Albuerqueue, NM) and Jason (Flew into Jackson). It was a bit of a logistical mess and the kind folks at the bike shop ended up staying open a little late for us. Rent your bikes from Moab Cyclery, they’ll take care of you. I was on a Specialized 6Fattie for the week which was tons of fun.

Will lives in Moab currently and came over to talk trails, drink some beers, and figure out the week. Our rental house comfortably held the 6 of us and we made good use of the original Atari, hot tub, wifi, kitchen, and 2 car (1 car and a huge pile of bikes) garage.

Certbot and Cloudflare

If you’re like me, you host a bunch of PHP+MySQL websites using apache, you have CloudFlare in front of most of them, and you think SSL Everywhere is a pretty good idea. You set up letsencrypt, they renamed it to certbot, and SSL is on everywhere and nice. You’ve also realized that after following the certbot defaults, certbot needs to connect with openssl s_client to make sure things are working right, so you have to pause CloudFlare to successfully renew certs. You’ve also realized this means your automated renew-all-the-certs cron job is not going to work. Oops. Your certs expire tomorrow too.

Had you used one of the other methods (e.g. docroot verification) you’d be ok, but you would have more manual steps for each site you add. Not the best.

Do not fear! There is a not-ideal-but-works-pretty-well way of doing this. My specific version doesn’t have the best error handling , has no tests, and may be a jerk, but it’s worked for me for the last round of renewals so it’s got that going for it. Read on for details.

So You've Agreed To A Bike Ride.

Maybe you were convinced (perhaps no so subtly), maybe you’ve always been wanting to, or maybe you had a few too many beers and shook hands on something. Now the day approaches, and you’re going to show up because you are a man/woman of your word. Excellent. See you there!

How To Get A Software Engineering Job For Newbies

A career in software engineering can be a pretty good (and profitable) one, and there is a pretty huge push these days for everyone to learn to code. I don’t think it’s for everyone, but if you like problem solving and don’t mind spending a lot of time in front of a computer, you can make it work. That said, taking a ‘Coding Academy’ multi-week course is not how you’re going to get a job. It certainly helps, but read on for what you actually need to do. These aren’t in any particular order, and if you pull all of them off please let me know because I am hiring.

I have used all of these to get jobs, and am far more likely to hire someone that does these things.

A Day In The Life Of An Engineering Manager

As a software developer, avoiding meetings is generally a good call because they interrupt flow and often don’t really need you to be there, and meetings aren’t really getting work done. One of the weirdest things about becoming a manager is how much more meaningful meetings seem to become, and how many more of them appear on the calendar.

Mountain Biking in Jackson, Wyoming