The Future of Vibe Coding: Building with AI, Live and Unfiltered(opens in new tab)
I demonstrate 'vibe coding' - a new approach to software development with AI, building two apps from scratch in a 3-hour live workshop.
Curated river of news
Latest posts from blogs I follow
I demonstrate 'vibe coding' - a new approach to software development with AI, building two apps from scratch in a 3-hour live workshop.
My comprehensive guide outlining best practices for building reliable, user-friendly Model Context Protocol (MCP) tools with proper configuration, testing, and release management.
I reflect on my post-exit journey from emptiness to rediscovering my passion for building, sparked by AI's transformative potential.
A wrap up of all the things that happened in Terminal Trove in May 2025.
Quoting for modules.
Why streaming isn't enough.
One does not simply serialize a module.
In the world of web infrastructure, what starts as a simple goal can often lead you down a fascinating rabbit hole of history, philosophy, and clever engineering. This is the story of our journey to build a simple, single-purpose, open-source ...
Iām hosting a regular afternoon edition tomorrow (Friday, May 30) to wrap up the month of May. After that, Iāll be away on vacation, so Iām skipping the first two Fridays in June and the first Friday in July. Hereās ...
A while back I posted about fixing an error installing the charlock_holmes gem on MacOS, well the error has returned. Hereās the newest fix. If you get an error that looks something like this: Gem::Ext::BuildError: ERROR: Failed to build gem ...
What do HTML, GraphQL, and RSC have in common?
This isn't progress.
š¤ I struggle with most research papers, but the Vending-Bench: A Benchmark for Long-Term Coherence of Autonomous Agents was an easy read. The paper follows a fascinating study where researchers simulate various LLM models running a vending machine business over ...
Want a dose of dry wit and hard-earned lessons at your event or in your codebase? I speak and consult on legacy systems, privacy, burnout, and fixing things that actually matter.
At WorkOS's AI onsite and MCP Night, I experimented with vibe coding. What started as a two-hour experiment with 5,000 lines of unseen TypeScript became a glimpse into programming's future.
Quick disclaimer before we start. This is well-trod ground. Nothing here is new or revolutionary, nothing about this implementation hasnāt already been done by smarter folks than I :) This is just my blog post about it. Weāll use webmention.io ...
Come find Justin in-person and get FAFOFM stickers!Devopsdays - Portland, OR - September 8-10. Get 20% off tickets with FAFOFMEdgecase - Gooiland Hilversum, NL - September 24Taloscon - Amsterdam, NL - October 15-16KCD UK - Edinburgh - October 19Kubecon NA ...
I made an expensive technical decision on Phoenix Liveview for the Smol Talk webapp about a year ago that I now regret, and am jotting down some notes to self for why.
Today I learned about pdftoppm, a simple CLI tool that can convert each page of a PDF into separate image files. My use case was to chop up a few big PDF reports to make OCR and data analysis easier, ...
A cynical developer's guide to why OKRs often fail, how they sometimes help, and what to do when you're assigned 15 of them.
Scrum helped us escape the waterfall. But itās become more ceremony than substanceāand the real work is happening in the cracks between stand-ups.
The Cynical Developer is a blog for tired engineers, reflective skeptics, and anyone whoās seen too many āNext Big Thingsā end up as tomorrowās tech debt. This site is maintained by a seasoned developer with a mild aversion to buzzwords ...
Want to reach out? Iām happy to hear from fellow devs, writers, or the hopelessly over-engineered. Email: [email protected] Please donāt send cold sales pitches. Iām not that kind of cynical. Got something to say? Use the form below. Please, no ...
Because @Stateless shouldnāt require 3 XML files and a blood sacrifice.
Anyone online has seen over the past years how the frequency of Palestinian accounts on Bluesky and other platforms has increased, two- and four-fold, folks asking for help and linking to GoFundMes. They share their stories and plea for help, ...
Agile was never supposed to be a checklist. Somewhere between the ceremonies and the certifications, we forgot what it was for.
PEP 750 introduced t-strings for Python 3.14. In fact, they are so new that as of Python 3.14.0b1 there still isn't any documentation yet for t-strings. š As such, this blog post will hopefully help explain what exactly t-strings are ...
Ever had this weird gut feeling that something is off in your code, but couldnāt put the finger on why? Are you starting your projects with the best intentions, following all best practices, and still feel like your architecture turns ...
Weāve all noticed that software never seems to get any faster no matter how much faster the hardware gets. This easily-observable fact is usually explained in one of two ways: Software devs are lazy, and refuse to optimize more than ...
I turned a birthday recently and it was so busy (DataCouncil + sg flight) that i never really got the chance to sit and reflect. a lot of things are going well, lots more couldā¦
Getting from command-and-control to trust and autonomyāand why most teams never quite make it.
The startup origin story you've lived through at least onceāand what usually comes next.
In this post Iāll show how to properly distribute a command line tool for macOS.
Some history on term ātechnical debtā and on better language to use when communicating about it.
I found my tribe at a conference.
I miss Visual Basic. I could build something meaningful with it in 15 to 30 minutes in a way that I have never seen anything since then, even come close to. āFor example, I personally believe that Visual Basic did ...
ā[...] baseline HTML that gets progressively enhanced into something better when JS is available⦠1. Gives people a more usable experience earlier in the process. 2. Ensures that on slow connections your site doesnāt seem like trash. 3. Means that ...
And we still can't get it right in 2025.
This Friday, Iām hosting a morning edition of my office hours, and here is my schedule for the rest of May: Friday, May 9th, 2025, 8am to 10:30am - š Early edition (Time.is link for CT) Friday, May 16th, 2025: ...
pytest-metadata is described as a plugin for pytest that provides access to test session metadata. That is such a humble description for such a massively useful plugin. If you're already using pytest-html, you have pytest-metadata already installed, as pytest-metadata is ...
You wouldn't download a site.
Islands, but make it fractal.
pytest-check is a pytest plugin that allows multiple failures per test.Normally, a test function will fail and stop running with the first failed assert. That's totally fine for tons of kinds of software tests. However, there are times where you'd ...
Tags on both sides.