Three weeks ago today, a moving truck delivered all my possessions to our new house in Olympia, Washington. Last week, I was informed that my employer was restructuring and my role had been eliminated. Once again , I’m available for hire. Moving to Olympia We started looking at Olympia as a possible place to raise a kid early this year. We visited and saw the children’s museum and tried to pick up…
When I was a teenager 1 I loved Orson Scott Card’s Enderverse 2 . A particularly formative moment for me was when Ender, the protagonist, finally verbalized something he had been realizing over the duration of the novel: that it was impossible to truly know someone and not love them as they love themselves. This provided useful clarity on empathy for me. That everyone had their own rich,…
I actually wrote this post almost a month ago. Then I sent it out to a friend to review, and woke up in the morning to find we needed to say goodbye to our dog. Then the next time I went to publish it, my country bombed Venezuela. So here it is now, instead. Twenty years ago, servers used to send HTML to browsers, not just JavaScript. 1 We wrote CSS and HTML and a sprinkling of JavaScript but the…
I spent like an hour last night explaining this in a group chat and I need to justify my husband’s suffering, so I’m going to share my rules of thumb when it comes to pointers in Go. When to use pointers There are four things pointers are useful for: Accepting nil values. Mutating data across functions. Avoiding copying data. Fulfilling an interface. Accepting nil values. A fairly…
I feel like the ground is shifting beneath my feet. Several times in the last few weeks I’ve seen people I respect talk about how they use a generative AI assistant when coding, or criticize those that are critical of generative AI. People who were, themselves, critical of generative AI in recent memory. I’m tired. I am, deep in my bones, tired of talking about this. The first time I mentioned AI…
Look, when I left my last job I didn’t really know what to expect or have any plans, but I knew what I had to be prepared for. I was voluntarily leaving my job in a notably poor job market, and I had to be prepared to be unemployed for a while, take a pay cut, or both. So when I wrote that post, what I expected to happen was for me to take like six weeks and just chill, not really doing much of…
Now that I’m funemployed and have some time on my hands 1 I decided to solve a problem that has been bothering me. See, historically I have published my blog in the following way: Write a post in NeoVim over SSH on our home server. Run Hugo on that home server, overriding the base URL to point to the home server’s domain. Preview the blog post by navigating to the home server’s domain. Re-run Hugo…
Three years and just under five months ago, I joined LaunchDarkly . Today, as of 5pm PDT, I no longer work for LaunchDarkly. I’d love to be really clear about why not. To explain the choice in full and outline my reasons. But I’m not confident I know why not. I have a lot of reasons, but those reasons were true six months ago, too. Why now? Well, because. The truth is, I don’t know. I woke…
Errors in Go are a contentious topic. Everyone has an opinion on them. I’m not going to share mine here, nor am I really going to engage with the controversy of them. Instead, I’m going to accept that the tree grew in the way it did, and explore how to best cut with the grain, rather than fighting against it. I was discussing error handling in Go with some coworkers, and the discussion prompted me…
Today we got the email that a judge in Texas has ruled that Lucas is now legally our child. Let’s back up a bit. The Call On the afternoon of Saturday, June 10 th , our adoption agency called and told us a woman was actively in labor, and asked if we wanted to adopt the baby. We said yes, dropped everything, and got on the next flight to Texas 1 . We sat on the plane, knowing very little. We…
I can’t quite believe it, but the year’s over. Again. I can’t quite figure out where it went. We’ve grown fond of saying “time is fake and homophobic” around our house. This means it’s time to update my blog again, because I can’t be relied upon to write about things as they’re happening, clearly. Let’s take things one at a time.…
This post was written on February 19th, 2022. I then proceeded to fail to publish it. I’m very good at blogging. For lack of a better answer, it’s dated the date it was originally written, and being published on December 31st, 2022. Which is when I noticed it was never published. It’s been a while since I switched up my domain name, so I felt like it was time for a new one. 😄…
About 20 years ago (😭), before we had smartphones, when using a computer meant sitting at a desk the entire time , we had these things called “away messages”. You see, because sometimes you would be away from computers and unreachable. It was a wild time. AOL was a company that distributed free discs to your mail and as a side hustle they provided internet services by making two…
I’m really excited to officially join LaunchDarkly and work on their Internal Tools team on Tuesday, January 4th. When I was 22 and just starting my career, I remember thinking in my parents' kitchen about what I want out of a job. I came up with three things, because my brain starts protesting really loudly when I don’t follow the rule of three . Those three things haven’t…
I’ve been thinking a lot about how we talk about books. Partially because I’ve been reading a lot of books, partially because I’ve started listening to a lot of authors (especially marginalized authors) talk on Twitter, and partially because I’m reading so many truly excellent books and I need everyone to read them so I can discuss them with you. I have So Many Thoughts.…
Getting right to the point, today is my last day at HashiCorp. I’m leaving my position as Engineering Lead of the Terraform Plugin SDK team for new challenges and adventures. After five years of working on Terraform, it’s time for me to turn my attention to new problems. I don’t want to talk too much about what’s next–it feels gauche to celebrate the future while…
For the inaugural HashiTalks: Build , I did a talk with my team introducing our latest project, terraform-plugin-framework , a new, modernized approach to building Terraform providers. You can find a recording of the session on YouTube .
For the inaugural HashiTalks: Build , I did a talk about Terraform’s type system, explaining the different types and special values and some of their requirements and quirks. You can find a recording of the session on YouTube .
For the inaugural HashiTalks: Build , I did a talk about how to design an API that it will be easy to build a Terraform provider for, going into some of the lessons we’ve learned over the years of building Terraform providers. You can find a recording of the session on YouTube .
I’ve been struggling to finish a side project for a while , but I’ve finally actually finished something , so I thought I’d write it up. Ethan and I are in the process of adopting a baby , and we’re at the point in the process where we can get a phone call basically at any time saying our baby is being born and we need to travel to some hospital anywhere in the United…
Following the release of the terraform-plugin-go and terraform-plugin-mux modules, Katy Moe and I joined Tracy P. Holmes of the HashiCorp Developer Advocacy team to do a livestreamed demonstration and presentation of the modules, their features, and the possibilities they open up. The code presented in the livestream is available on GitHub . You can find a recording of the session on YouTube .
I was fortunate enough to be able to give a lightning talk on the history of Terraform provider development, a subject I find endlessly fascinating, with my coworker Katy Moe at HashiConf Digital 2020. It was an interesting experience doing a lightning talk with someone on a different continent over a Zoom call, but Katy was an amazing co-presenter and I’m really pleased with how it turned…
In the Fall of 2019, I was working on the Google Cloud Platform provider for Terraform and was asked to be the Engineering Lead for HashiCorp for the project. I agreed, but wanted to know what that meant, and nobody had a really good answer for me. Everyone agreed it largely looked like continuing to do the job I was already doing, perhaps with some institutional authority behind my actions, and…
A talk about how to upgrade your provider to support the v0.12 release of Terraform, which accidentally turned into a history lesson on Terraform and a deep dive into why the 0.12 upgrade process was difficult. You can find the transcript for this talk and the video of it on HashiCorp.com .
The HashiCorp community team asked if I’d do a lightning talk about the history of HashiCorp’s popular pride stickers, which I’d had a hand in creating in 2017. I was delighted to, and got to talk on a stage for several minutes about representation in the workplace and how we can use symbols to make space for others. I was fortunate enough to be able to reprise this talk at the…
This post was originally written for the June 2019 edition of Tumbleweird . They were kind enough to print it. If you enjoy it, please consider supporting Tumbleweird so they can publish more writing like it in the future. This June, on the 28th, marks the 50th anniversary of the Stonewall uprising. It has been 50 years since New York City’s finest raided the Stonewall Inn, arresting the occupants…
I don’t know if y’all have heard, but Pete Buttigieg (a.k.a. Mayor Pete), the openly gay mayor of South Bend, Indiana, is running to be president of the United States, and vying for the Democratic nomination, along with like a billion other Democrats. Many of whom are boring white dudes with bad takes. (Bernie’s running again!) A lot of people in the Democrat base are tired of…
I wanted to do this on the anniversary of my first post but then car accidents and house-buying stuff happened, and well here we are. A little over a year ago, I mentioned Ethan and I were investigating what the road to having kids would look like for us. We did a lot of reading, a lot of research, and had a bunch of very uncomfortable discussions about it. And we settled on a plan, which is what…
I didn’t write a post for 2018, and I don’t really intend to. Mostly because I don’t have much to say about it. It was a quiet year; we largely just saved money to buy a house and worked. Even work was a quiet year for me; I focused on the Google Cloud Platform provider for Terraform , and helped make a bunch of changes that, while important and valuable, don’t lend themselves well to things I can…
A talk I gave with my friend Dana Hoffman, of Google, about the Magic Modules project, how we were using it with Terraform, the new possibilities it opened up, and a brief history of the GCP provider for Terraform. We also talked about how our two companies worked together. You can find the video for the talk and a transcript on HashiCorp.com .
Some of you may have noticed links to my site have changed. I’ve stopped linking to paddy.io, and started linking to paddy.carvers.co instead. All the links should still work, and will redirect appropriately. I believe I’ve updated all the internal links; if you find one that still points to paddy.io, please do let me know! I also updated my picture on here to be of my jerk husband shoving his…
I started growing my family in September of 2015. I don’t have a specific date, but I know it was then. And, of course, I had family before that, too. But there was definitely an inflection point, a point where we started rapidly adding people to our lives that we have no other word for besides “family”. When we moved to Washington, the people we surrounded ourselves with…
A year ago, I joined HashiCorp to work on the Terraform team. I was excited, and baffled. I’d heard of HashiCorp, I’d used Vagrant, but I hadn’t kept up. I had never used Terraform. But I knew the calibre of people that worked there, and I wasn’t sure I fit that description. But I loved working in Go. I loved working remotely. I had learned some things about operations from…
I was invited to give a talk on multi-cloud strategies using Terraform and Nomad at HashiDays London. In my talk, I talk through why you may want to deploy to multiple clouds, and do a live demo of deploying a Nomad cluster to Google Cloud Platform and Amazon Web Services, all using Terraform. You can find the code used in the talk on GitHub . You can find the video of my talk on YouTube .
I dunno how you ended up at this place. Maybe you hate yourself a little. Maybe, like me, you have a loved one who, for some reason, enjoys records even though you have subscriptions to a music streaming service that has all these songs already . Maybe, like me, you’re a little annoyed that what could be a general-purpose solution for making all the speakers in your house talk to each other is…
Just before GopherCon, Peter Bourgon was tweeting about contexts and dependency injection. For background, Peter is someone whose best practices have rung true or been proven over time since he started talking about them (to my knowledge) at the first GopherCon. So when he said not to use contexts as a way to manage dependency injection, I was pretty sad. That’s typically how I handle dependency…
So Bill Kennedy and Nate Finch bullied peer-pressured talked me into writing about Go. This post is all their fault . I figured I’d start with one of the things I love about Go that took me a while to figure out: Go’s interfaces. So we’re going to tell the story of how Go’s interfaces and I became BFFs, and the critical things I learned that helped that relationship develop. At First Blush My…
I think it was my (wonderful) friendboss Ry4an who first used the phrase “impractical zealot” to describe me. He wasn’t, if memory serves, espousing his own opinion; I believe he was trying to describe the impression I left on others. But it was definitely in the context of my propensity for making things harder than strictly necessary. The phrase stuck with me as a semi-accurate description, and…
So once again, we’re talking about a Code of Conduct , and once again, people are all up in arms about it. The word “fascism” is getting bandied about unironically, and I’m tweetstorming, so I guess it’s time for another blog post about this. Don’t blame me, I’m not the one scare-mongering over this. First Amendment So let’s talk about the First Amendment first, because that seems to be every…
Once again , I find myself in the position of describing an indescribable conference. But the effort should be made, because my brain feels like mush and I want to remember this. &yetConf was… emotionally heavy. It was a conference that asked us to look at what we’re making, why, and whether we’re actually ok with that or not. We were asked to take a look at the road we’re on, where it’s going,…
I’ve been trying to get Google Cloud Storage support for WAL-E for years . Since July 2014, if we’re going to be precise about it. It is proving to be a fun nut to crack. (OK, in fairness, I haven’t actively been working on this and trying to solve the problem for like 14 months; it was more like a month of trying to solve the problem in stolen time chunks, then a year of not touching it, then…
We’re going to try something new today. We’re going to remember I’m a developer, and I’m going to post some code on my blog, and we’ll all just see how that works out, ok? To kick it off, I’m gonna do a small series on using Ampersand.js as the front end for an API that uses OAuth2 for the authentication. In this post, we’re going to cover storing, loading, and maintaining the tokens and their…
There was hubbub today over a project maintainer’s conduct on Twitter, and whether he should be allowed to continue to hold a position of authority in the project while marginalising a group of people. I don’t want to talk about that, because (honestly) we see this situation every month or so. Everyone wants to be able to marginalise people without any consequences, and so arguments about…
It’s been a little while since I last posted, and I kind of want to get in the habit of posting more. (How will you know I’m alive if I’m not constantly sharing my opinions?) Also, today was kind of shitty, and a lot of my posts tend to be about things that make me sad , so I figure it’s about time I just talked about something I love without really having a point. Or having several points. I…
I tend to be a very unhappy person. It’s just kind of the way things work out. I look to my left, I look to my right, and I tend to be dismayed by what I find. I’m constantly going on about how we can do better . If you work with me, you’ll recognise these traits in me, and will probably have a less complimentary way to describe them. It is a thing I try to be mindful of, to varying success. I was…
Every few years, it seems, I’ve taken to moving. In 2008, I moved from Syracuse to Buffalo. In 2012, I started trying to move to San Francisco, and wound up back in Syracuse (long story). Then in 2013, I wound up in Buffalo again. Just before 2014 started, I switched over to Brooklyn to work for DramaFever . And now here it is, the start of 2015, and I’m making plans to take my fiancé and our…
I think I’ve grown up. That’s such a terrifying, anxiety-inducing sentence for me to put to paper. It feels like an existential threat. I’m having a hard time right now. I don’t know why. Well, I know why . But I don’t know why this particular moment is hard. When I was offered my first full-time job, I remember where I was. I remember what I was doing. I remember rushing home and calling a friend…
For over a year now, I’ve been part of EngineYard ’s amazing Prompt program. I’ve given a series of talks and been on a series of panels because of this program, but I realised this week that I’ve never made a formal offer on the subject. So here it is. I will come to your offices, to your team-building exercise, to your user group, to your conference. I will come prepared with a talk, or be there…
Today coming out is in the news again, and while I have nothing special to say on that matter (“good for him!” kind of sums it all up), it coincides nicely with a lot of thinking I’ve been doing around coming out in the last few weeks. I have two ways of looking at this. The first is that I never really came out. The second is that I come out every day. When I was coming to terms with my sexuality…
We’re circling back around in the dev community to talk about reinventing the wheel again. Sometimes you hear this referred to as “Not Invented Here Syndrome”. Because I’m a white, male, 20-something, of course that means I need to weigh in on this. Because I have a lot of feels about it. I’ve been criticised in the past for reinventing things. I actually gave an entire talk about how people got…