Author Archives: Lou Franco

Evening Pages

I have been doing Morning Pages on and off for a few years. If you are new to them, it’s the practice of writing handwritten, non-stop, stream of consciousness, non-edited text for three pages. It takes about 20-30 minutes once you get going. The benefit to me is that it proves that I can force myself to write. It trained me to push past whatever it was that held be back from writing more.

I started doing them again as an exercise in The First 13 Weeks of 2026. It’s part of how I am Making Happiness a Priority. It’s a small boost to the day when I’m finished.

But, for a couple of days this week, I didn’t find time in the morning and decided to do them at night instead—close to bedtime. In these sessions, I treated it more like a shutdown than a boot up.

In the morning, I search for ideas to write about later in the day. At night, though, I have been unloading my thoughts. The things that might occupy my mind as I try to drift to sleep get their final say.

Re-Onboarding Via Tech Debt Payments

I just opened a project I haven’t looked at in a few weeks because “holidays”. First thing I did was run tests, which didn’t run because I didn’t run them correctly. I looked at the README and it had no documentation for running tests.

In my book, Swimming in Tech Debt, I talk about this in the opening of “Chapter 8: Start with Tech Debt”. You can read this sample chapter and others by signing up to my list:

It opens:

You know the feeling. You sit down at your computer, ready to work on a feature story that you think will be fun. You sort of know what to do, and you know the area of code you need to change. You’re confident in your estimate that you can get it done today, and you’re looking forward to doing it.

You bring up the file, start reading … and then your heart sinks. “I don’t get how this works” or “this looks risky to change,” you think. You worry that if you make the changes that you think will work, you’ll break something else.

What you are feeling is resistance, which triggers you to procrastinate. You might do something semi-productive, like reading more code. Or you might ask for help (which is fine, but now you’ll need to wait). Maybe you reflexively go check Slack or email. Or worse, you might be so frustrated that you seek out an even less productive distraction.

The chapter is about immediately addressing this debt because you know it is affecting your productivity. It’s essentially free to do something now rather than working with the resistance.

So, following my own advice:

  1. I added text to the README explaining the project dev environment and how to run tests and get coverage data.
  2. Seeing the coverage data, I saw a file with 0 coverage and immediately prompted Copilot to write a test for one of the functions in it.

And that was enough to get warmed up to start doing what I was originally trying to do.

Making Happiness a Priority

My running coach, Holly Johnson, wrote a book a few years ago called How To Make Feeling Good Your Priority [ad] (my review). In it, she wrote about how she applies her running mindset to everyday life. Specifically, when feeling bad during a run (tired, hurt, etc), she would find a way to feel good right now. She’d seek one small adjustment that could make an immediate difference. Her aim was to stop a bad moment from becoming a bad day.

Related to that, I once got some advice to maintain a list of small things you could do to make you happy. They could be quick, or more involved. Perhaps some are situational and some could be done whenever. The idea is that you could use them to substitute out a bad habit or for a pick-me-up. Like, instead of doom scrolling, you listen to a song you like.

In that spirit, I have developed a list of small things that make me happy (or will make me feel like I had a good day). I am not trying to get all of them every day. They’re meant as a way to fill time with things that lift me up instead of doing things I would prefer to do less of. A lot of them are tied to my 2026 theme of Fuerte y Suerte, but not all.

  1. Work towards 10,000 steps
  2. Hang on a pull up bar (there’s one in my office)
  3. Sit in a deep squat for 5 minutes
  4. Go for a walk outside
  5. Work towards my daily protein goal
  6. Read a book
  7. Do Morning Pages
  8. Journal
  9. Selfie Video (5 min) to practice extemporaneous speaking
  10. Call, text, or meet with a friend
  11. Listen to Spanish (Podcast, Music)
  12. Fill a page with Spanish writing
  13. Code on a side project
  14. Tidy
  15. Meditate
  16. Quality time with my wife
  17. Listen to music
  18. Sketch

One nice thing is many of them can be combined. I can go for a walk outside, get steps, and listen to Spanish Music. Or go for walk outside with my wife. Read a book on the elliptical. I did my morning pages in Spanish yesterday. Many take just a few minutes. A hang is less than a minute right now. I can do it while waiting for a compile (jk, I use Python).

And, if I do want to just watch some YouTube, I can sit in a squat or find something in Spanish to watch. Or find some music videos (and dance).

If you are looking to find a way to break a bad habit, a list like this is useful to implement a substitution strategy. If January 1st makes you motivated to make change, then Use Motivation To Program Your Environment—make the list and put it somewhere you can see it.

2025 Blog Roundup

In 2025, I published 112 posts. Here’s what was on my mind.

My biggest accomplishment in 2025 was publishing my book, Swimming in Tech Debt. Here are some posts about the process:

If you want to read sample chapters from the book, sign up here:

I wrote a lot about code reviews.

I completely changed my dev stack from Node/React to Django/HTMX

These were some of my favorites

The most popular post from this year (mostly because of search hits) is Supernote Manta: Review at Eight Weeks. I updated it with my current thinking in How Digital Journaling is Better Than Paper.

Vibe Coding vs. Vibe Engineering

I try to use Vibe Coding in Andrej Karpathy’s original sense:

There’s a new kind of coding I call “vibe coding”, where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.

Which makes it hard to describe what I do, which is not that. I have been calling it AI-Assisted Programming, but that’s too long. Simon Willison proposed Vibe Engineering:

I feel like vibe coding is pretty well established now as covering the fast, loose and irresponsible way of building software with AI—entirely prompt-driven, and with no attention paid to how the code actually works. This leaves us with a terminology gap: what should we call the other end of the spectrum, where seasoned professionals accelerate their work with LLMs while staying proudly and confidently accountable for the software they produce?

I propose we call this vibe engineering, with my tongue only partially in my cheek.

He wrote this in October, but it only started to sink in with me recently when he wrote about JustHTML and how it was created. Read the author, Emil Stenström’s, account of how he wrote it with coding agents. This is not vibe coding. He is very much in the loop. I think his method will produce well-architected code with minimal tech debt. Like I said in my book: “The amount of tech debt the AI introduces into my project is up to me.” I think this is true for Emil too.

My personal workflow is to go commit by commit, because it’s the amount of code I can review. But, I see the benefit of Emil’s approach and will try it soon.

Fuerte Y Suerte

Instead of New Year’s Resolutions, I pick a yearly theme to help me make progress on my goals.

In 2023, it was to Make Art with Friends, which led to me joining Toastmasters and a sketch group. I also started a meetup for local software developers. In early 2024, I extended it by joining The Useful Authors group. Then, in 2024, I chose the theme of “Heavy Lifting” to encompass my fitness program and the work it would take to write a book. Last year, it was Just Keep Swimming, which meant to keep working on my book, Swimming in Tech Debt, and get it done.

This year is about strength training, learning Spanish, and marketing my book. I chose to represent that with the theme “Fuerte Y Suerte”, which means “Strong and Lucky” in Spanish. EDIT: Get the t-shirt.

The Strong and Spanish part are clear. By lucky, I mean in the sense of writing a bunch of content on this blog, my podcast, my email list, LinkedIn, and other places and hoping that one of those things takes off (as I described in Blog Posts, Randomness, and Optionality). I think of each post as a lottery ticket with a low fixed cost and huge upside potential. Randomness is the Great Creator.

In the past, this led to My Guest Article on Tech Debt for the Pragmatic Engineer and making the front-page of HN, which I described here: My “Show HN” Follow-Up for “Swimming in Tech Debt”. In my life, it has led to writing a book for Manning, being invited to conferences, jobs, etc.

A couple of days ago, I revived my podcast, and the next episode will be about getting lucky.

Perfection Is Not An Accident

I took the Seven train into Manhattan often as a teenager. At Queensboro Plaza, I could see the billboard for Eagle Electric with their motto: “Perfection Is Not An Accident”. I think about it a lot. But, I probably have not seen it in person since the nineties. It’s gone now.

Until recently, I didn’t even remember the name of the company, just the motto. I wrote a little bit about this in my book, discussing the power of pithy, memorable value statements.

A year ago, I was at the New York Historical Society, and I saw a painting of it by Pamela Talese (you can see it on her collection of signs).

The feeling of nostalgia was overwhelming. I was instantly sent back to a conversation I had with my high school friends about the sign and its motto.

Luckily, she sells archival quality, Giclée prints of the nighttime one. I bought one and put it right over my monitor so I can see it when I work.

From Art & Fear [amazon affiliate link], I learned to use my personal imperfect work as a jumping off point to a new work. This painting, which shows a company striving for perfection, but coming up short with an imperfect sign, reminds me to keep trying.

It’s one example of Environment Hacking, and what I wrote about a few days ago in Use Motivation To Program Your Environment.

22nd Blogaversary

I started this blog on December 23, 2003. I was about to quit my job and my plan was to do some consulting.

The first post I wrote was an Automated Software Process Checklist. My plan was to help people automate engineering processes. At the time, daily builds with automated tests and deployment was not common, but I had been doing it for a few years at Droplets (inspired by eXtreme Programming Explained [affiliate] and similar books).

I posted fairly regularly for a few months, but then got a new full-time job. There were ebbs and flow over the next 17 years or so. I posted more when I was consulting/job hunting because more people were checking it out. When I went independent full time in 2021, I started posting a lot more. Seventy percent of the posts on this site were written since then.

Over the last 22 years, this blog has helped me get work, find a publisher, get invited to conferences and podcasts, and it’s a resource for me to know myself better. It doesn’t make money directly, but it’s been a force multiplier for my career.

Use Motivation To Program Your Environment

The end of the year, for me, is a time of very high motivation. My intention is to run through the new year with whatever goals I was planning. I adjust and figure out what I can actually do.

I also put in permanent (or hard to change) environmental changes. I believe in Environment Hacking, where I put things in my environment that trigger my behavior or remove things that are triggering behavior I don’t want. For example, to get off of nearly all social media, I removed the apps and blocked the sites in my /etc/hosts file.

My motivation goes up and down throughout the year. I am personally highly motivated from January through my birthday in early April, which happens to coincide with the first thirteen weeks of the year. I use this time to plan for when my motivation will crater. I do things that will make it easy to keep on track. For me this means not having to plan, just execute.

Here are some examples of what I have done when my motivation is high:

  1. When I feel like cooking, I cook something healthy in bulk. I’ll have something good to eat later when I don’t feel like cooking. I buy tempeh in bulk and freeze it.
  2. I use widgets on my phone homepage to show me how I am doing with goals or help me do them (e.g. DuoLingo and Cronometer).
  3. I have a pull-up bar in my office to encourage me to dead hang more. There’s a dumbbell set next to my desk. I have a underdesk pedaler. I am generally trying to make my day less sedentary.
  4. I bought a print that I find inspiring and hung it above my monitor (more on this later).

The general idea is to put things in places where you can’t help to see them to make it easy to do the behavior later when your motivation drops.

2026 4DX: Fourth Discipline

This is the fourth and final post in series of how I am implementing The 4 Disciplines of Execution [affiliate] for 2026 towards one goal each in my business, fitness, and personal life. I discussed the first [1st DX], second [2nd DX], and third [3rd DX] disciplines in previous posts.

Personal Growth: [1st DX] Get to CEFR level TBD in Spanish. [2nd DX] Focussed and repeat listening to beginner Spanish podcasts. [3rd DX] Count of podcast listens per week (at least 5 is my preliminary goal)

Business: [1st DX] Make Amazon Ads for my book break even. [2nd DX] Find readers, ask for reviews. [3rd DX] Review count per month (goal is 3 per month)

Fitness: [1st DX] Improve 5 lifts by TBD. [2nd DX] Lift 3x/week. [3rd DX] Pounds added to lifts.

The final discipline is accountability. For my business goal, I already am a member of a writer’s accountability group. For my personal growth goal, I want to get good enough to attend the local Spanish learning meetup by the middle of the year.

And finally, for fitness, I decided to rejoin Crossfit. I need access to barbells and racks (and small increment plates). It’s across the street from my apartment, and there’s a chance it could become a third space.

To add another layer, I will post monthly on this blog as well with just an update and my assessment of whether this plan is working or not.