Build an AI Code Review Bot with Semantic Kernel in C#
Code review is one of those things every team knows they should do consistently but rarely manages to do well. Time pressure, reviewer fatigue, inconsistent standards -- the result is that bugs slip through, security issues go unnoticed, and code quality erodes slowly over time. After spending the last few weeks writing about Semantic Kernel in C#, I wanted to put everything together into something real and useful. So I built an AI code review bot with Semantic Kernel in C# that takes a file or ...
Take me to this post.
March 12, 2026
Copy the current line in VS Code
In VS Code you can copy the current line without first selecting it. Cmd-C without selection defaults to whole line....
Take me to this post.
March 12, 2026
Windows stack limit checking retrospective: x86-32, also known as i386
One of the weirdest calling conventions you'll see.
The post Windows stack limit checking retrospective: x86-32, also known as i386 appeared first on The Old New Thing....
Take me to this post.
March 12, 2026
What Happens When You Can’t Stop Creating: Huy Nguyen’s Story of Starting His Own Studio
How I went from having no idea what to do with my life to dropping out of university and building a design studio in my twenties....
Take me to this post.
March 12, 2026
Strategy Pattern Real-World Example in C#: Complete Implementation
Strategy Pattern Real-World Example in C#: Complete Implementation
This article presents a complete real-world example of the Strategy pattern in C#: an e-commerce discount system that handles multiple discount types. This Strategy pattern real-world example in C# demonstrates how to implement the pattern in a production-ready application with proper error handling, testing, and maintainability.
The Strategy pattern real-world example in C# we'll build shows how different discount calculation al...
Take me to this post.
March 12, 2026
Learnings from the PyAI conference
I recently spoke at the PyAI conference, put on by the good folks at Prefect and Pydantic, and I learnt so much from the talks I attended. Here are my top takeaways from the sessions that I watched:
AI Evals Pitfalls
Hamel Husain
View slides
Hamel cautioned against blindly using automated evaluation frameworks and built-in evaluators (like helpfulness and coherence).
Instead, we should adopt a data science approach to evaluation: explore the data, discover what's actually breaking, iden...
Take me to this post.
March 12, 2026
CodeSOD: Awaiting A Reaction
Today's Anonymous submitter sends us some React code. We'll look at the code and then talk about the WTF:
// inside a function for updating checkboxes on a page
if (!e.target.checked) {
const removeIndex = await checkedlist.findIndex(
(sel) => sel.Id == selected.Id,
)
const removeRowIndex = await RowValue.findIndex(
(sel) => sel == Index,
)
// checkedlist and RowValue are both useState instances.... they should never be modified directly
await checkedlist.splice(removeIndex, 1...
Take me to this post.
March 12, 2026
Public Environment Variables For Your Tests Using cypress-expose Plugin
Recently Cypress announced a change in how it will handle environment variables. Variables were always public and accessible to the appli...
Take me to this post.
March 12, 2026
AI Slop: A Slack API Rate Limiting Disaster
Yesterday I described AI-generated code as “plausible-looking, locally coherent, globally wrong.” Here’s a concrete example from my own codebase.
I needed a cleanup job to close old Slack group DM conversations in my slack-sup2 app. The AI-generated solution looked perfectly reasonable:
def close_old_sups!
return 0 unless sup_close
old_sups = sups.where(conditions)
old_sups.each(&:close!)
old_sups.count
end
def close!
return unless conversation_id
return if closed_at
logge...
Take me to this post.
March 12, 2026
How I use generative AI on this blog
Inspired by others, I’m publishing how I use generative AI to write this little blog.
General feelings on generative AI
Generative AI, like any technology, has tradeoffs. I think the cons far outweigh the pros. In other words, the world would be better off without generative AI.
Despite this belief, I use it. I’m effectively forced at work, but I also use LLMs to help write this personal blog. I think they can produce better writing if used correctly.
Also: I want to be critical of this technolo...
Take me to this post.
March 12, 2026
Automated Accessible Text with contrast-color()
Let the browser pick the most readable text color for any background with this new CSS function....
Take me to this post.
March 12, 2026