Skip to main content

Blog posts

Claude Code is a great Dad side project environment

I finally did it.

I moved my blog off of Wordpress. It's running on a Go server on a small Digital Ocean droplet.

Why now? Because side projects are fun again. I'm excited about software engineering for the first time in about 15 years. Agentic coding is so new and unsolved! And even better, now I get to make political statements just by saying which agent I use. What a time to be alive.

Oh sure, I've had a lot of fun coding in that time. I've gotten excited about a lot of problems. But it was never software engineering itself. And side projects eventually burned me out. Especially once my toddler was born. I don't want to pick up a project, fight exhaustion, hit a weird error, and yak shave for an hour while hoping that I have fun tomorrow at least.

But wow, Claude[0] really fixed that. I'm not new to Claude or Agents; I've used some version of Copilot/Cursor/Claude at work since Copilot first came out, and I've been using agents for about a year at work. But work's different than side projects. At work, I can't vomit out 30,000 lines of code and hold it up and ask, "Is this anything?" But I now regularly do this at home as part of exploring how far we can push the tools.

And you know what? It's amazing for dad side project time. It can meet me wherever I am.

Is my wife walking to the store with our daughter? That's 20 minutes, I can write a prompt and let it churn once they come back.

Am I exhausted after both my daughter and my pager wake me up? I can just click through my project and whine about the parts I don't like, and Claude will dutifully fix it all. Or maybe I can just vibecode a huge project with the goal of learning something.

Do I have a few hours? Great, let's really bend this codebase to my will. I'm going to micromanage this to within an inch of its life.

And one of the famous slogans from "The Mythical Man Month" was "Build one to throw away." I.E. you should invest time to prototype before building the final system. Claude really changes the cost dynamics; you can build a prototype, prototype a second approach, prototype a third approach, refine the third prototype, and then the production system is within a stone's throw.

The actual Wordpress port

I've wanted to move onto a VPS ever since the Wordpress drama happened years ago. But the juice never seemed worth the squeeze. I mean, I had fewer than 30 blog posts on this blog and just a couple of pages. Why bother, right?

But I first signed up for the Claude Pro account, and I tried thinking about projects that I might be able to one-shot within its narrow token budget. The blog port was a natural fit.

So I wondered if I should just convert the posts to Markdown and host them on Github pages or similar. But I liked the idea of being able to have dynamic server-based content[1].

Overall, I tried to one-shot the port at least 15 times.

In the beginning, I gave it really simple prompts. Basically, "Port www.bitlog.com" to a Golang server with Markdown files storing content." These failed horribly! They'd just make a basic Go server and a few fake posts.

Next, I prodded it to download the content. It would try for a while but I would eventually run out of context. I tried asking it to make a tool to scrape each page, but it tapped out and asked me to export the XML instead.

So I downloaded the XML dump and started telling it, "The XML dump of a Wordpress install is in this directory." And my prompt grew and grew with each telling. So many things needed to be fixed. It linked to images on my remote server instead of hosting them. Pages included Wordpress styling. Opus 4.6's first attempt rendered completely blank pages.

At some point, I started experimenting with subagents and immediately started running out of tokens. This was the point where I upgraded to a Max subscription. That's how they get you and it worked. Well played Anthropic.

I then was looking for a Beads alternative and found beans. I liked the idea of beads. I just wanted an implementation that... evolved a bit slower. Beans was another increase in power. My current experiments involve subagent teams, which are producing mixed results.

But eventually, I wrote this prompt, and I looked over the output. I realized, "This version has a lot of problems, but this is close enough. I can productionize this."

Refining the output

I started comparing the local markup with my Wordpress server. It skipped a bunch of meta tags like OG tags, Twitter markup tags. I made a lot of changes to the visual design (graphic design is my passion), information architecture, etc. This kind of work was great when I was exhausted; I could just whine to it about not liking how the header was styled and it would go and fix it for me.

Then I started asking it to e.g. find accessibility issues. And it came up with some good ones, and suggested good things like having a "skip to content" element. And I noticed something funny! Whenever I commanded it to generate a list of issues that included severity, it would generate a list with 1-3 severe issues, 3ish medium issues, and 3ish low-severity issues. I find that I had to specify what I mean by "severe" for it to generate an honest list; like, "Judge all issues relative to a "severe" flaw that would render the site completely inoperable, like a focus trap."

Deploying

I created a Digital Ocean droplet, pointed DNS at it, and set up SSH keys so that SSH commands would work without needing in-band authentication. And then I told Claude that I wanted to set up Ansible and a reverse proxy, harden the server, etc. It churned for about 15 minutes, and at the end of it my blog post was deployed and all the configs were right.

And then I had to talk Claude off the ledge. Something about its environment was preventing it from seeing the page on HTTPS. I could access it just fine over both HTTP and HTTPS. And then we were live!

Conclusion

I converted a blog from Wordpress to my own Golang server, even though I don't have much time. I am excited about software engineering itself for the first time in 15 years. I have my own theories about how the profession will evolve over the next 5 years[2], which will be the subject of my next blog post.

First, obviously this took longer than doing it myself, given the number of iterations it took. However, Claude could work when I couldn't. It's indefatigable! On nights that I was too tired to code, but didn't want to play a video game, I could just whine to Claude and it would fix the problems I saw.

It was also a playground for a while. Almost a "code kata," except I wasn't trying to execute a perfect form. I was just walking down a well-worn path, seeing what happened each time I changed a variable or three.

But I did it. I deployed it. I'm happy with the results. And now I'm curious how far I can take this. Can I host my own email server?

Footnotes

[0] You can substitute your favorite agent here.

[1] To be clear, I never will have dynamic server-based content. But man, I love the idea.

[2] TL;DR: We need to become product managers before product managers become coders.

2025 year in review

Professional year in review

I got a lot done professionally in 2025.

For most of the year, I was a backend engineer on the recommendations team at Hinge. We started the year by rolling out my big 2024 project, which was adding Elasticsearch to power new candidate generators in Hinge's recommender. The initial launch was successful: its p99 was 80% lower than our previous Postgres-powered version, and was much more maintainable. For the remainder of the year we added more and more features using this stack, and now it's load bearing for a bunch of product wins. Along the way we learned a lot about scaling Elasticsearch clusters, so I'll try to write a blog post or a conference talk explaining our approach!

By the end of the year, I became the backend tech lead of a recommendations-adjacent team called "Matching." So now I'm spending my time doing the usual TL dance: refining new ideas with product managers, guiding our tech implementations, and then project leading and IC work when everything is humming smoothly. I'm really excited by our roadmap, so I'm hoping 2026 will be a good year as well.

Multiple people have told me that I bring "fun dad energy" to work every day. I'll take it.

Fun dad energy

My daughter is 2.5. I love hanging out with her. She tells jokes that catch me off guard and make me laugh. She loves stories and playing with words. She's trying to guess the first letter of words based on how they sound. She even gets it right sometimes. She's starting to develop real friendships with the kids at school. For the first time, she sometimes wants to just play by herself for 10 or 15 minutes. 2024 was all about her becoming an individual we could talk to. 2025 was all about her growing in complexity. I'm so excited to see what else changes this year.

We tried to develop her athletic side by enrolling her in soccer. Every Sunday, we'd bring her to a field near our apartment. She'd ignore all instructions from the coach. We needed to intensely micromanage her to even kick the ball. Halfway through every class she would jailbreak by sprinting across the field away from the lesson. Her coach was great with kids, which is probably the only reason my daughter was excited to go every week. But a switch flipped after a few months of attendance. She started listening to her coach. She gleefully did everything the coach wanted. And she actually stayed in class instead of trying to flee. We're thinking of enrolling her again for the spring. I think she'll actually want to go.

Much of the rest of the year was pretty mundane. Her sleep schedule stabilized. She's sleeping more than she used to, and so are we. Potty training was hard but achievable. Giving her a balanced diet was hard but achievable. That's a good summary for the year in parenting: hard but achievable.

New apartment

In 2024, our building installed heat pumps. It was a massive project that lasted most of the year, finally ending in November. The 1 bedroom was getting too small for us, so we moved into a rental in the middle of the year. We wanted to sell our apartment but had to wait until the construction finished. And then the unexpected happened: my next-door neighbor put her apartment on the market. Against all odds, she accepted our bid. We moved in at the end of 2025 and I'm living in two apartments next to each other. I still can't believe it. For the first time in my adult life, I have enough space.

Our plan is to combine the two units into one next year. This will be a nightmare. However, it's 2027's nightmare.

We have one advantage: the units might have been combined in the past. Most of the wall between the apartments is a thick load-bearing masonry wall. But I knocked on the walls between the units. There are 2 doorway-sized areas that sound hollow, and are covered in sheetrock instead of plaster. I dug in with a long screwdriver and it sounds like there's a different brick wall between the two (instead of the 12-ish inch thick load-bearing wall). I'm hoping that these are doorways that were bricked over, and that we can just take the brick out and live happily ever after. But I won't know for sure until we take the sheetrock down. Again, 2027's problem!

Newsletter

My daughter had a more predictable sleep schedule this year. So I was better rested and had more free time. I decided to write a newsletter at clientserver.dev. My initial writing prompt was "Money Stuff for tech." I committed to writing two posts per week. So I focused on current events in tech. Since my wife went to bed at 10:30 and I went to bed between 12:00 and 12:30, I had 3-4 hours to write each post.

I wrote two posts per week in the beginning. Over 6 months I got to 268 subscribers. Holy cow, people wanted to read it! This made writing easy: every single post had a guaranteed audience. However, the newsletter took up ALL of my free time. I worked around the clock. I pushed my bedtime later and later to get issues out. I was exhausted. I became more stressed. I become emotional when small changes in my schedule took away time from the newsletter. My wife started begging me to take time off. Once she started trying to intervene, I was like "this is a really bad sign." I stopped working on it in July. Next year, I'm going to start publishing it again without a regular schedule. I think writing is too valuable and I don't want to throw the audience away. bitlog.com will continue to be my own personal writing, and clientserver.dev will continue to be my hot takes on the news.

Having a short stint as a tech writer made me realize a few things:

  1. Sourcing stories on a regular basis is extremely hard.
  2. The good publications are incredible. Shoutout to outlets like The Register that produce high-quality tech journalism. They do an incredible amount of research and writing on a timeframe I can't fathom.
  3. Most publications are absolutely horrific.

For example, journalists apparently don't have time to read anything. They just get a prompt and write and publish. I'd occasionally find things that were (a) mass reported, and (b) trivially provable to be wrong. For example, many outlets reported that Salesforce would not hire software engineers in 2025. But anyone could go to Salesforce's job page and see dozens or hundreds of software engineer job postings. And then you'd read Marc Benioffs' statements and interviews on the subject and you'd realize, "oh, they actually said they are keeping their engineering headcount stable. All of these people are reporting the wrong thing."

Gaming

As I said in the newsletter section, I've had more free time this year. After my newsletter stint, I've picked up more games in my free time.

My #1 game of the year was Hollow Knight: Silksong. What else is there to say? Great soundtrack. Great bosses. A fun moveset on Hornet. If I had any criticisms (besides Bilewater), it'd just be the absence of a challenge boss like Radiance. It feels like a missed opportunity given Hornet's versatility and mobility.

I also sunk almost 100 hours into Blue Prince. Which is a bit weird given that I did not like it! The game is like 40 hours of gameplay spread into 300 because of RNG, and my life is too busy to allow some dude to waste entire days of my life like that. On the plus side, some of the puzzles were genuinely enjoyable. Color was also starting to be a factor in puzzles. I am colorblind with protanopia, which is a severe color deficiency. This game was so subtle and tricky that I never knew whether I was missing some obvious clue, like "this realm's color is only exposed in one place, where you have to notice that a postcard is tinted a specific color." I also understand that color continues to be more and more important as the game progresses.

Spoiler paragraph for anyone curious about how far I got: I was playing with 0 hints or outside help. I love word puzzles and had a lot of fun decoding the Baron's Bafflers, and needed a few visits to the gallery (and a hint from the classroom) to solve all of the painting puzzles. I was clearing out the tunnel, I had gotten most of the way through the 8 doors of the realm puzzle (probably close enough to brute force the remainder). I uncovered the CASTLE puzzle and (correctly) had a few clues that I thought were part of the puzzle. I also unlocked the throne room and figured out how to steal the crown, but wasn't sure if they were connected in any way. I was collecting trophies so that I could unlock the blue tent to see if it did anything or just wasted money. I finished the classroom quiz and looked at the giant pile of hints I hadn't processed yet in my Notion doc, and the list of things that I was waiting for perfect RNG to do, and just couldn't bring myself to try the next thing. So I called it quits and looked up the remainder of the story and major spoilers (Thanks, FuryForged!). I'm not sure if I could have 100%'d the game without help, but I didn't have the time necessary to find out. I also didn't like the story or the lore, although I did appreciate that once you understand the early through late game, it's a story of how a spoiled brat truly earns the right to call the house his own.

I've also rediscovered the joy of just messing around in party games with my friends! Recently we've been playing "Golf With Your Friends" and "RV There Yet" and having a good time.

Looking ahead

My goals for 2026 are pretty simple:

  • Get in shape
  • Take more time off
  • Find more time to write

See you next year!

This entry was posted in uncategorized on January 4, 2026 by jake.

2023 Year in Review: interviewing for jobs with a baby on the way

Our daughter set the pace for the entire year. Even before her birth! We needed to prepare for her arrival. It turns out that babies don't take up much space, so our 1-bedroom apartment was fine for the year. But kids require lots of support items, so we needed to buy and install storage. This consumed much of my free time from January until her birth in May.

We bought a ton of furniture from Ikea, assembled the furniture over the course of a few weeks, got a bunch of freebies from "buy nothing" groups on Facebook, got some more donations from my sister-in-law, did a deep cleaning, read books, and I'm sure a ton of other things that I'm forgetting.

The actual birth went smoothly. We had already been a few days prior: my wife had contractions so we went to the hospital. They told us that she was having contractions but she wasn't ready yet.

The day before the birth, my wife experienced discomfort and pain all day. She insisted up and down that she was not having contractions. Finally around 11pm, she was in pretty constant pain. I set up a Google Form with a single button, "I'm feeling it now," and I had her click it whenever she felt the sensation. I looked through a few rows of the spreadsheet and saw that she was having contractions every 3-5 minutes and we called a car to take us to the hospital.

Birth went smoothly. Doctors were great. I'm embarrassed to admit that when I saw her little head for the first time, I thought to myself "Holy shit! There's a PERSON in there." Obviously I knew that! I saw all the scans. I saw my wife's belly. But the reality of seeing a new human being screaming and crying on your wife's chest in bewilderment really drives the point home.

And then they plopped her on my wife's chest and the baby started screaming. I remember reaching my hand down and resting my hand against her little back to comfort her. She was so upset from the birth. I knew so little about her experience that I didn't know what would help.

The beginning was a struggle. Feeding was a struggle, swaddling was a struggle. The sleep deprivation was abominable. She'd sleep soundly all day and then scream for 6 hours in a row. But it was my daughter, so I just loved her and rolled with it.

Recovery care is absolutely baffling to me. They encourage you to get as much sleep as possible. But your baby wants to be fed every 1 to 3 hours around the clock. She doesn't know what day and night are. You also haven't worked out feeding yet with your baby, so she's angry and screaming around the clock because she's hungry. So your sleep is already ruined. On top of that, a nonstop parade of nurses and doctors come into your room with no coordination, robbing you of what little sleep you might otherwise get. I've had problems with insomnia my whole life. I'm an extremely light sleeper and I have trouble getting back to sleep when I'm awoken. However I literally fell asleep in the middle of a conversation with a nurse.

At one point, I wanted my wife to get 3 consecutive hours of sleep for the first time in 3 days, so I coordinated with the nurses to put our child in the nursey for the first time and don't send anyone into the room. Then I went for a walk and thought to myself, "I'll just get coffee at the first place that I see." And then I walked past a Blank Coffee and thought to myself, "I'll just get coffee at the second place that I see."

I do want to credit the nursing staff with showing us the fundamentals of taking care of a baby. Their tips on feeding were helpful, and walking through swaddling and dealing with diapers with nurses was really helpful. I just wish they either (a) cared whether you got sleep, or (b) stop suggesting that rest was important. Telling us that we should sleep and then preventing us from sleeping was infuriating.

My wife's mother stayed at an AirBNB for over a month to help us, and her help was crucial. She arrived fresh between 6am and 7am and held the baby, which allowed us to get an extra hour or two of sleep a day that we otherwise would not have. This made a huge difference in our morale and effectiveness. Having healthy home-cooked meals every day was a tremendous help. My wife and I each got 2ish nights in the AirBNB so that we could try to catch up on sleep (but our sleep schedule was so obliterated by that point that we still didn't sleep that well).

I took 6 weeks off in the beginning. I'm using the remainder of my parental leave now. I'm so grateful that I have the time to appropriately bond with my child. It's wild that our laws don't ensure some minimum time of parental leave. 6 weeks barely felt like enough, I can't imagine the women that have to return after a few days (or even a few weeks) still healing from literal physical trauma of birth or c-section delivery.

And I love my child so much. She's so smiley and loves babbling with me and my wife. Her laugh heals me. Seeing her develop small new skills and capabilities makes me so proud of her. Sure there are bad parts. She cries sometimes, she gets sick sometimes, she sleeps badly sometimes, she's destructive sometimes. But she calms down, gets better, learns how to sleep again, and things are just things. She's wonderful. I'm truly in a new phase of life.

Learning how to interview and finding a new job

When I found out my wife was pregnant last year, I was at the end of a 2 year period of working for myself. I was having fun and the business had some income, but even without the baby I probably would have cut it off at that point. It was a no-brainer with the kid: I needed to find a real job again.

So at the end of the year I hit Leetcode, polished my interview skills, updated my resume, started applying for jobs, and found WOW THIS IS A REALLY BAD TIME TO APPLY FOR JOBS! It was at the same time that all of the FAANG companies were laying people off. So every company was flooded with more high-quality leads than they've had for a while. Or maybe ever had!

I also discovered that if you tell a recruiter that you have a child on the way, they don't reply to your emails anymore. I wanted to be up-front about this, but quickly learned that I needed to wait until I had an offer letter in hand before mentioning it for the first time.

I still managed to get some interviews, and bombed a few interviews before I realized that my interview skills were out of date.

For a very long time, many companies copied how Google interviewed. Google likes hiring generalists (and when they say "generalist" they mean "people who know the specific skills that are taught in a 4 year undergrad computer science program"), so they set algorithmic coding challenges that you can complete in any language. I mainlined coding challenges when I was in college and got pretty good at them. Plus, I worked at Google for 4 years, and asked hundreds of interview questions in this style. So I've always interviewed on the assumption that the coding challenges were enough. This served me well from 2007 until 2016, when was the last time I had interviewed.

I was dismayed to discover that smaller companies in 2023 hire specialists! Maybe many did before this too. But most of the small companies I interviewed at before 2016 did the Google-style interview questions. They don't want you to ramp up on their tech stack as a strong generalist. They want you to know their stack and hit the ground running as an expert. This is probably what they should have been doing all along (and again, I'm sure many companies did this all along). But I never ran into it, even interviewing for startups previously.

I had a few failed interviews. One was for a tech reason: I interviewed for an editor startup and did well on their generalist problems, but bombed the React coding exercise. I've never worked professionally with React in any meaningful way. Google Docs' stack predates React and they wouldn't have used it anyway, and Etsy forbade React on their buyer frontend until around 2020 because of the performance hit. I made some progress on the problem but didn't get far enough, and they wanted their tech lead to come in as a React frontend expert. Fair enough!

I interviewed with Notion, and the guy asked me to design the database schema for a calendar app. Historically, I design database schemas using my patented 3 step process: first, I draw a few schemas that feel wrong. Then, I put the work aside for a bit and help teammates or go for a walk or go to lunch. Then, I come back to the problem a few hours later or the next day and discover that my subconscious made some progress on the problem. Maybe I need to iterate again but I'm much closer than I was a few hours ago.

This is an insanely bad approach for an interview, where you need to bang out a plausible schema within 45 minutes. Usually it took me at least 4 hours, sometimes over a day! I had some additional communication problems with this guy; to shortcut the discovery I asked if the app was like Google Calendar. I then probably burned 10 minutes of the interview designing with Google Calendar in mind only for the guy to keep telling me, "no, it's simpler than that" until by the end of the interview I was ready to scream, "why didn't you just say <<no, it's not like Google Calendar, you're basically designing a digital wall calendar with shareable meetings>>?" But I wouldn't have gotten a good database design by the end of that interview anyways, so it's not like the time made the difference.

After these 2 interviews, I regrouped and realized that I would need to pick the set of skills I wanted to work with and double down on them. I focused on polishing my interview skills for different types of technologies: pub/sub frameworks, different database technologies and their common design techniques and their tradeoffs, microservices vs monoliths, etc. For the previous few years I had mostly worked with Golang and cloud-managed Kubernetes, and was very API-heavy. So I looked for roles that satisfied that. When I got an interview with Hinge, I had no problem clearing their bar because I knew their stack and could talk comfortably about all layers of it.

Working for Hinge has been pretty great. It's a growing company under Match Group, which is a little weird sometimes (I'm not always sure what to respond when I talk to vendors or insurers and they ask, "what company do you work for?" because the correct answer can be either). But my immediate team is full of sharp hard-working people. Our manager is really thoughtful about constructing good meetings, and he has warmed even my Grinch-like "we don't need any meetings" heart. And they seem happy with my work; I'm going to be a tech lead next year even though I spent a good chunk of this year on parental leave.

And no time for anything else

Work and family take up almost all my time now! Sometimes I find some time to play video games, but not as much as I would like. I'm often too tired to read at the end of the day. My wife and I took like a 4 month break from watching any TV series together because the logistics and timing were just too complicated.

Part of that is the complications of living in a 1 bedroom apartment. Whenever the baby sleeps, we basically need to stop moving and be quiet. I bought it 7 years ago, so moving isn't as easy as just renting a new place. Our building is getting heat pumps installed soon ("probably by November," we were promised last year), and whenever that project is finished we will sell this place and buy a larger place. We thought about moving earlier, but babies don't make a lot of space and I didn't want to sell with a large construction project looming. Plus so few things are on the market right now because of interest rates. So this year, we will be going through the hell of selling this apartment, buying a new apartment, and moving into a larger space.

And that's about all! For 2024 obviously parenting will continue to be my primary project. I want to shake off this dad bod that I've accumulated, and we will be moving into a larger space.