Author of O'Reilly books including Head First C#, Learning Agile, and Head First PMP.
Solving complexity with simplicity.
🚀 𝐓𝐡𝐞 𝐒𝐞𝐧𝐬-𝐀𝐈 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤 𝐬𝐭𝐚𝐫𝐭𝐞𝐝 𝐚𝐬 𝐨𝐧𝐞 𝐢𝐝𝐞𝐚. 𝐍𝐨𝐰 𝐢𝐭’𝐬 𝐚 𝐜𝐨𝐦𝐩𝐥𝐞𝐭𝐞 𝐫𝐨𝐚𝐝𝐦𝐚𝐩 𝐟𝐨𝐫 𝐜𝐨𝐝𝐢𝐧𝐠 𝐰𝐢𝐭𝐡 𝐀𝐈. 🚀
I’m really excited to share that my full @oreilly.bsky.social Radar 𝐒𝐞𝐧𝐬-𝐀𝐈 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤 series is now complete, along with the new O’Reilly report, 𝑪𝒓𝒊𝒕𝒊𝒄𝒂𝒍 𝑻𝒉𝒊𝒏𝒌𝒊𝒏𝒈 𝑯𝒂𝒃𝒊𝒕𝒔 𝒇𝒐𝒓 𝑪𝒐𝒅𝒊𝒏𝒈 𝒘𝒊𝒕𝒉 𝑨𝑰.
🚀 𝐓𝐡𝐞 𝐒𝐞𝐧𝐬-𝐀𝐈 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤 𝐬𝐭𝐚𝐫𝐭𝐞𝐝 𝐚𝐬 𝐨𝐧𝐞 𝐢𝐝𝐞𝐚. 𝐍𝐨𝐰 𝐢𝐭’𝐬 𝐚 𝐜𝐨𝐦𝐩𝐥𝐞𝐭𝐞 𝐫𝐨𝐚𝐝𝐦𝐚𝐩 𝐟𝐨𝐫 𝐜𝐨𝐝𝐢𝐧𝐠 𝐰𝐢𝐭𝐡 𝐀𝐈. 🚀
I’m really excited to share that my full @oreilly.bsky.social Radar 𝐒𝐞𝐧𝐬-𝐀𝐈 𝐅𝐫𝐚𝐦𝐞𝐰𝐨𝐫𝐤 series is now complete, along with the new O’Reilly report, 𝑪𝒓𝒊𝒕𝒊𝒄𝒂𝒍 𝑻𝒉𝒊𝒏𝒌𝒊𝒏𝒈 𝑯𝒂𝒃𝒊𝒕𝒔 𝒇𝒐𝒓 𝑪𝒐𝒅𝒊𝒏𝒈 𝒘𝒊𝒕𝒉 𝑨𝑰.
I’m really excited about this one. It’s the culmination of months of research, writing, and hands-on testing with real developers.
I’m really excited about this one. It’s the culmination of months of research, writing, and hands-on testing with real developers.
This one wraps up the Sens-AI series — and it’s about something I’ve been seeing more and more in the real world: how AI is reshaping what it means to be a developer.
This one wraps up the Sens-AI series — and it’s about something I’ve been seeing more and more in the real world: how AI is reshaping what it means to be a developer.
When teams talk about “AI adoption,” they usually mean installing Copilot or tracking metrics. That’s only the surface layer.
When teams talk about “AI adoption,” they usually mean installing Copilot or tracking metrics. That’s only the surface layer.
AI tools help us move faster, but sometimes that speed means we stop noticing why our code works. The real danger isn’t just writing a weak prompt. It’s drifting so far from the code that we forget how it fits together.
AI tools help us move faster, but sometimes that speed means we stop noticing why our code works. The real danger isn’t just writing a weak prompt. It’s drifting so far from the code that we forget how it fits together.
AI-assisted coding isn’t new anymore—most developers use Copilot or ChatGPT every day. But what we haven’t figured out yet is how to keep our engineering skills sharp while we do it.
AI-assisted coding isn’t new anymore—most developers use Copilot or ChatGPT every day. But what we haven’t figured out yet is how to keep our engineering skills sharp while we do it.
I got a thoughtful reply on one of my posts: we’re in a transition phase where LLMs cover 80% of the work, and once the last 20% is solved, we’ll just be writing apps in natural language instead of code.
It’s a smart take—and it’s also something I hear a lot.
I got a thoughtful reply on one of my posts: we’re in a transition phase where LLMs cover 80% of the work, and once the last 20% is solved, we’ll just be writing apps in natural language instead of code.
It’s a smart take—and it’s also something I hear a lot.
Evidence is emerging that AI chatbots boost productivity for experienced developers—but have little measurable impact on skill growth for beginners.
That’s the heart of what I call the 𝗰𝗼𝗴𝗻𝗶𝘁𝗶𝘃𝗲 𝘀𝗵𝗼𝗿𝘁𝗰𝘂𝘁 𝗽𝗮𝗿𝗮𝗱𝗼𝘅.
Evidence is emerging that AI chatbots boost productivity for experienced developers—but have little measurable impact on skill growth for beginners.
That’s the heart of what I call the 𝗰𝗼𝗴𝗻𝗶𝘁𝗶𝘃𝗲 𝘀𝗵𝗼𝗿𝘁𝗰𝘂𝘁 𝗽𝗮𝗿𝗮𝗱𝗼𝘅.
I’m really excited to share my latest Radar piece: “The Cognitive Shortcut Paradox.”
AI gives developers the ability to skip the slow, messy parts of coding. That feels great…
I’m really excited to share my latest Radar piece: “The Cognitive Shortcut Paradox.”
AI gives developers the ability to skip the slow, messy parts of coding. That feels great…
Here’s a trick: after Copilot or ChatGPT generates code, ask it to review that same code for problems. Because the model shifts context, it often surfaces issues it “missed” the first time: contradictory feedback, nitpicky warnings, or edge cases.
Here’s a trick: after Copilot or ChatGPT generates code, ask it to review that same code for problems. Because the model shifts context, it often surfaces issues it “missed” the first time: contradictory feedback, nitpicky warnings, or edge cases.
How do you know when to stop vibe coding and start verifying? Watch for the signals:
🔄 𝗥𝗲𝗵𝗮𝘀𝗵 𝗹𝗼𝗼𝗽𝘀: prompting slight variations over and over without progress
💥 𝗦𝗵𝗼𝘁𝗴𝘂𝗻 𝘀𝘂𝗿𝗴𝗲𝗿𝘆: one small change triggers cascading edits everywhere
How do you know when to stop vibe coding and start verifying? Watch for the signals:
🔄 𝗥𝗲𝗵𝗮𝘀𝗵 𝗹𝗼𝗼𝗽𝘀: prompting slight variations over and over without progress
💥 𝗦𝗵𝗼𝘁𝗴𝘂𝗻 𝘀𝘂𝗿𝗴𝗲𝗿𝘆: one small change triggers cascading edits everywhere
AI-generated code looks right a lot of the time—but it’s not guaranteed. It’s stitching patterns together, not reasoning about your architecture or long-term design.
That’s why I argue the mindset has to be 𝘁𝗿𝘂𝘀𝘁 𝗯𝘂𝘁 𝘃𝗲𝗿𝗶𝗳𝘆.
AI-generated code looks right a lot of the time—but it’s not guaranteed. It’s stitching patterns together, not reasoning about your architecture or long-term design.
That’s why I argue the mindset has to be 𝘁𝗿𝘂𝘀𝘁 𝗯𝘂𝘁 𝘃𝗲𝗿𝗶𝗳𝘆.
I’m really excited about this one. It’s called “Trust but Verify” and it digs into how we should be using AI coding tools.
AI can speed up development in amazing ways, but that doesn’t mean you can switch off your brain.
I’m really excited about this one. It’s called “Trust but Verify” and it digs into how we should be using AI coding tools.
AI can speed up development in amazing ways, but that doesn’t mean you can switch off your brain.
Here’s something subtle but dangerous: 𝐜𝐨𝐧𝐭𝐞𝐱𝐭 𝐝𝐫𝐢𝐟𝐭. With humans, misunderstandings show up in meetings. With AI, the answers keep sounding confident until suddenly it suggests a fix that makes no sense. 🧵
Here’s something subtle but dangerous: 𝐜𝐨𝐧𝐭𝐞𝐱𝐭 𝐝𝐫𝐢𝐟𝐭. With humans, misunderstandings show up in meetings. With AI, the answers keep sounding confident until suddenly it suggests a fix that makes no sense. 🧵
In the 1990s, companies built massive templates and forms for requirements documents, hoping the right format would guarantee the right system. It didn’t. That didn’t work, and it often made things worse… 🧵
In the 1990s, companies built massive templates and forms for requirements documents, hoping the right format would guarantee the right system. It didn’t. That didn’t work, and it often made things worse… 🧵
In the late 1960s, the NATO Software Engineering Conference kicked off what became known as the “software crisis.” The problem wasn’t a lack of technical skill… 🧵
In the late 1960s, the NATO Software Engineering Conference kicked off what became known as the “software crisis.” The problem wasn’t a lack of technical skill… 🧵
This surprised me. I’ve always cared a lot about architecture, separation of concerns, and keeping classes decoupled. Normally that takes a ton of focus, because it’s so easy to get pulled down into the weeds of the implementation . 🧵
This surprised me. I’ve always cared a lot about architecture, separation of concerns, and keeping classes decoupled. Normally that takes a ton of focus, because it’s so easy to get pulled down into the weeds of the implementation . 🧵