The Strays


Some Links and Stuff (2026-05-26)

May 26, 2026

It’s been awhile so I’ve got a bunch of fresh, new links plus some updates

  1. Fun blog posts
  2. Live reload for local development
  3. Changing jobs!

Some fun blog posts from my favorite bloggers

https://www.drcathicks.com/post/on-craft

https://piechowski.io/post/how-i-audit-a-legacy-rails-codebase/

https://blainsmith.com/essays/humanities-in-the-machine/

https://evanhahn.com/all-tests-pass-a-short-story/

https://belderbos.dev/blog/rust-made-me-a-better-python-developer/

I added a live reload feature to mysite!

Since I moved away from Hugo earlier this year, I lost my live reload feature. So when I’m adding something to my site or writing my blog, I have to manually run the make build command to refresh the files. Not a huge burden, honestly, but I wanted to track a crack at setting this up myself.

Naturally, there are numerous approaches since we are using Python here. A couple months ago I used one of the Copilot models with OpenCode to make me some options for adding live reload to my local development server. One of the options was FastAPI, which is a popular Python library I’ve never used so I asked it to build me a first attempt. It…did not work.

After coming back to my branch after a couple months, the dev_server.py file it made just seemed way too heavyweight to me. I went back to the drawing board and came across the livereload package, which seemed a much better fit. After hacking away at it and a couple other miscellaneous things for an hour or so, I had a working live reload. The code below is the entire dev_server.py file.

import logging

from livereload import Server, shell

logging.basicConfig(
    level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s"
)
logger = logging.getLogger(__name__)


if __name__ == "__main__":
    server = Server()

    server.watch("src/", shell('make build'))

    server.serve(port=8000, liveport=8001, root="public")

I could make it a little smarter if I really wanted to. It’s very greedy and watches everything in src. Right now, it just builds the entire site anytime something changes. But since my site is small and takes about 2 or 3 seconds to build, I’m not too worried about it. The changes won’t be difficult if I ever decide to make them (or have an LLM do it). Don’t overengineer!

New job!

My last day at 2U was May 22. I’ve got a little time before I start my next gig, which I’m using to blog and make site enhancements as you can see! I’ve been at 2U almost 4 years and it was first time programming with a team of fellow programmers. I met and worked with incredible people who helped me develop into a competent engineer (and manager)!

Over last 12 months, I went from being a first time manager of less than 10 people to managing nearly 30 across 3 different teams. I received a lot of great feedback from my colleagues and higher-ups about my performance and the experience helped me realize that I do like managing and supporting developers. Ultimately, I decided to pursue other jobs because my remit continued to grow and I felt I wanted to be more hands-on for the current stage of my career, rather than a mile wide and an inch deep. While I’m sad to be saying goodbye to some great people, I’m excited to work in a new org with new challenges.

If you’ve made it this far, thanks for reading!