Jamie Matthews (@j4mie) header
Jamie Matthews (@j4mie) profile picture

Web engineer. Python, Django. Sustainability, clean tech, fuzz pedals and dynamic languages. Co-Founder @dabapps, opinions my own

Ringmer, East Sussex
Joined January 2007
Photo by Jamie Matthews (@j4mie)Photo by Jamie Matthews (@j4mie)Photo by Jamie Matthews (@j4mie)Photo by Jamie Matthews (@j4mie)Photo by Jamie Matthews (@j4mie)Photo by Jamie Matthews (@j4mie)Photo by Jamie Matthews (@j4mie)Photo by Jamie Matthews (@j4mie)Photo by Jamie Matthews (@j4mie)Photo by Jamie Matthews (@j4mie)
So here it is: introducing Django RAPID architecture, the guidebook I've been writing (on and off) for a year or so, and thinking about for my entire career. django-rapid-architecture.or… It's a free, opinionated guide to structuring real‑world Django codebases so they stay understandable and malleable as they grow. It’s not a new framework, and it doesn’t try to hide Django. Instead, it leans into Django’s strengths and focuses on a few simple ideas: - Keep models thin: data definitions, not “god objects”. - Organise code by responsibility (readers, actions, interfaces, data) rather than by app. - Put most business logic in plain functions, not in fat models or deep class hierarchies. - Keep views thin: treat GET as "read some data" and POST as "do an action". - Design endpoints around real frontend use cases (Backend For Frontend) instead of idealised resources. - Control queries carefully to avoid performance traps. I’d love you to take a look and let me know what you think!
1
5
219
Jamie Matthews retweeted
Now in preview: The ChatGPT desktop app for Linux. Use ChatGPT, ChatGPT Work, and Codex where you already work and build, with your projects and browser workflows on supported Linux systems.
795
981
604
11,663
2,455,441
Jamie Matthews retweeted
Narrative violation: "The type safety we gave up hasn’t been noticeable in any concrete way yet, especially considering our test coverage has never been better." But exactly what we see with Rails and LLMs. They're a beautiful and effective combination. avi.press/posts/2026-07-10-a…
19
7
3
204
45,894
Jamie Matthews retweeted
1/ I was deeply saddened to hear that Inman Harvey has died. He was a wonderful and generous person, and an unparalleled intellect (his schoolfriend Geoff Hinton said that "he was always smarter than me"). This heartfelt obituary is by Phil Husbands: users.sussex.ac.uk/~philh/pu…
1
12
45
5,574
I wrote this after going down a rabbit hole of frustration while trying to add an MCP interface to a Django app. hypermediaagentprotocol.io/ The MCP spec has become a towering edifice of up-front complexity. The API/CLI route is better, but felt hostile to non-technical users. It's deliberately a bit playfully mock-grandiose, a gentle dig in the ribs at how seriously MCP takes itself, but I think it makes a substantive and hopefully useful point about keeping complexity out of agent harnesses. Feedback very much appreciated.
2
1
241
Jamie Matthews retweeted
Setting up a consistent, up front, type model requires insight into the long term structure of the system. AIs have only short term horizons. So I have my doubts about any statically typed language as an AI lubricant. Dynamically typed languages are more token efficient, and allow the programmer to evolve and enforce type constraints expressed in test suites as the project matures. That’s my hypothesis and I’m sticking with it (for now). ;-)
13
1
70
9,265
Why don’t any other browsers support container tabs like Firefox? Seems like the only sensible primitive for working with multiple sets of cookies for the same site. And no other browser supports it. How do people who don’t use Firefox get anything done? support.mozilla.org/en-US/kb…
1
2
54
Jamie Matthews retweeted
Replying to @1st1
can i submit a pep to delete the type system
1
1
18
2,523
“We are at an inflection point where a simpler approach is now the best approach.” Spend your entire career following these inflection points.
Replying to @mattpocockuk
To be fair, I wouldn't have trusted a Ralph approach before Opus 4.5. I also hear GPT 5.2 is good enough. We are at an inflection point where a simpler approach is now the best approach.
1
58
Don’t agree with DHH on everything, but this post nails it, and I will always be firmly in camp dynamic. As an aside: to everyone arguing “LLMs work better with statically typed languages”. First, I haven’t found this to be remotely true, but furthermore I think we’re approaching the point where LLMs will actually make static typing entirely irrelevant. They’ll be able to reason about how values move through running code without actually running it (similar to how a human reads code that was written for readability, but thousands of times better). Type annotations become nothing more than wasted tokens. The pendulum swings again.
One of the longest running schisms in programming is that of static vs dynamic typing. I've heard a million arguments from both sides throughout my entire career, but seen very few of them ever convinced anyone of anything. As rationalizations masquerading as reason rarely do in matters of faith. The rider will always justify the way of the elephant. That's not to say there aren't people who've switched camps. In fact, such individuals usually shout the loudest rationalizations of all. Often with the charm of a livelong omnivore suddenly turning vegan or a traditional banker who caught a lucky ride on crypto. The shorter the faith, the brighter the flame. Personally, I'm unashamedly a dynamic typing kind of guy. That's why I love Ruby so very much. It takes full advantage of dynamic typing to allow the poetic syntax that results in such beautiful code. To me, Ruby with explicit, static typing would be like a salad with a scoop of ice cream. They just don't go together. I'll also confess to having embraced the evangelical position for dynamic typing in the past. To the point of suffering from a One True Proposition affliction. Seeing the lack of enthusiasm for dynamic typing as a reflection of missing education, experience, or perhaps even competence. Oh what folly. Like trying to convince an introvert that they'd really like parties if they'd just loosen up a bit. That actually it's really fun to be in crowded rooms, for hours on end, shouting to communicate, because how about that VIBE! These days, I've come to appreciate the magnificence of multiplicity. Programming would be an awful endeavor if we were all confined to the same paradigm. Human nature is much too varied to accept such constraint on its creativity. Could you imagine if all visual art had to be rendered in the style of cubism? Or realism? Or all novels written in the short, direct flavor of Hemmingway? What a bore it would all quickly be! It would ruin the magic of programming. This unique fusion of art and engineering. But it took a while for me to come to these conclusions. I'm a recovering solutionist. So when I see folks cross their heart in disbelief that anyone, anywhere might fancy JavaScript over TypeScript, I smile, and I remember the days when I'd recognize their zeal in the mirror. That's not to say all matters of programming approaches boil down to equal but different mindsets. There are limits to this relativism. But dynamic vs static typing is certain within its confines. So too is functional vs object-oriented programming. Poles on both these axes have shown to deliver excellent software over the decades (and awful stuff too!). Now people are blessed with a capacity to express themselves equally well from either end. Such ambidextrous nature seems rare, though, as evidenced by the utter disbelief so frequently expressed by either side that the other might hold a reasonable position. I am not ambidextrous. I do not enjoy static typing, and objects animate my mind's eye. But I have come to appreciate the fact that others illuminate their creativity with just as much intensity as I do mine, using functional programming constraints and explicitly spelled out types. As long as I never have to soil my Ruby with type hints or write all front-end code in TypeScript, I can so happily coexist with those who adore Go or can't stand JavaScript. Vive la différence!
5
4
103
ChatGPT needs “voice note mode”. I don’t use them at all with actual humans but the asynchronous nature of seamlessly sending some audio and then getting a reply (also audio) sometime later feels like it would work perfectly for LLMs. Like advanced voice mode but without the awkwardness. You’re welcome @OpenAI @sama
138
Jamie Matthews retweeted
When you use local models, you realize even more how bizarre and magical it all is. My GPU is thinking about how to code doodle jump using human thoughts. That would literally have been like black magic just a few years ago.
8
7
147
7,012
One benefit of the unseasonably windy weather is that the UK grid is nice and green. 🍃 If you added 100 miles of range to your EV tonight, the electricity you used could result in only 1.5 kg of CO₂ emissions. 🧵
1
1
64
Apple Intelligence’s notification summary LLM must be having a hard day.
99
Great Britain achieved a new maximum solar record on 8 July between 12:00 – 12.30pm. During this time, solar generated 14GW, which was nearly 40% of the electricity mix. ⚡ Download our app to see real time generation data and records. 👇

16
25
3
88
6,718
Twitter: the population is crashing! Everyone must have lots of kids! Also Twitter: the most important thing everyone can do to live to 500 is minimise stress and get plenty of sleep
1
58