Whoa! Has it really been that long?

Two years ago now — two years! — I wrote a post about how I was totally going to start writing more blog posts on my website. And I was feeling pretty good about it: I’d just started a new, more content-focused role at work (so I was gearing up to do a bunch more writing anyway), I was ready to pick things back up with my book, I’d just put together the beginnings of a companion site for it, and I’d rewritten this site in Hugo, having spent a year or so wrestling with Next.js and finally deciding the pain of that just wasn’t worth it. (Never again.) I was excited, and I was ready to get going.

And then, I promptly dove right back into work and family life. And now, two years later, here we are: new job, new house, multiple new websites — so much newness! — but alas, not too much more in the way of writing. Here, anyway.

I won’t say I haven’t written anything, though. I did write a few pretty decent posts for that companion site. And I’ve written reams of docs and blog posts in that new role, along with hundreds of journals (the one thing I still do every day) packed with shockingly high-quality, caffeine-fueled insights, like this gem, for example:

My brain feels like absolute mush these days. I totes need a break.

But of course, I haven’t written anything in this space. So for that, I feel bad.

To the several of you who’ve written to tell me how sad and disappointed you are by all this, I get it, and I apologize. And by several, of course I mean none — no one’s written in. But hey, it’s cool — I know you all meant to write in, but you held back, out of respect, because you knew how busy I probably was, and you didn’t want to make things awkward between us. Which I also get. Or I suppose it’s possible that you were off living your own interesting and satisfyingly productive life, completely uninterested in the challenges of mine. Unlikely, sure (let’s be honest), but still, certainly within the realm. Either way, the fact remains: I haven’t used this space as well as I meant to.

So today, a few brief updates.

I’ve rewritten this site with Astro

For the last few months, I’ve been kicking the tires with Astro and liking it. It’s yet another framework based on React, which I generally detest (React isn’t the real web), so the moment I learned Astro was React-based (having just come from Next.js — a terrible experience; if you’re considering it, stay away), it had a tough hill to climb with me. But the Astro team has managed to deliver a framework that somehow succeeds at using React well while keeping much of the pain of React hidden from view. (I’m also using Preact, which helps.) The builds are fast, the DX is lovely, and I can easily switch between static and server-rendered. It’s great stuff, and I’m looking forward to having some fun with it.

I’ve pulled everything into a monorepo

This was my first experience with a monorepo, having spent most of my dev years working in more microservices-oriented ways, and I have to say, it’s pretty delightful. I’m using Turborepo for this one, and it’s nice, because everything here is JavaScript-based, so everything mostly just works. I’ve also paid more attention to my dev workflows, linting, formatting, and so on this time than I have before with personal projects, and I’m happy with the outcome. (It’s still light on tests, but hey — this is a personal site. Who needs tests when you’re pushing straight to main?)

I’ve moved from GitHub Actions to Buildkite

After pulling everything into a monorepo (which includes both my site and my son’s portfolio site, along with several supporting projects like my media processor — the serverless handler that powers my Photos, Videos, and Sounds sections) — deployment infrastructure (Pulumi-backed, of course), and a handful of shared libraries to support my new workflow), I’ve also migrated from GitHub Actions to Buildkite for CI/CD. Why? Besides just being delightful to use, Buildkite also lets me write all my CI/CD workflows in TypeScript. So much nicer than wrestling with wacky conditionals and other oddball interpolations in YAML.

Oh — and I decided to join the team at Buildkite

This is perhaps the biggest news. After six great years at Pulumi, it was finally time to move on. Things were fine, but I wanted to be able to focus more specifically on technical content marketing (i.e., writing good stuff for engineers) than I’d been able to do at Pulumi, and Buildkite has an amazing product (see above) that far too few people know about. So I’ll be working on developing a team and strategy to fix that.

I’m still working on the book!

Writing a book while also parenting, homeschooling (three teenagers now), and trying to keep pace with startup life is no easy task. The Pulumi Book is still coming along, if slowly, and now, a with the introductory chapters out of the way (~200 pages in), I’m working on several new chapters that dive deeper into more advanced Pulumi concepts and use cases. I also work hard to keep all chapters and examples (which are all up on GitHub) up to date with the latest versions of Pulumi and the AWS SDK (a part-time job in itself), so you can always rely on the latest draft and repo as workable sources of truth.

That’s all for now! Keep an eye on this space and I’ll try to be a little more active from here on out.