The Curious Programmer
77 articles on AI engineering, software architecture and the craft of building software.
2026
Questions without Answers
I recently became a parent, which has made me look backward as much as forward. I have been thinking about my own childhood, and about the lessons, habits, and struggles that shaped the person I became. I’m sure most parents do this. We…
Your Loop is your Leverage
The debate about AI and software engineering is focused on the wrong thing. One side says AI will make engineers far more productive. The other says it will fill codebases with AI slop. Both sides are right. AI is not good or bad by…
Engineering PracticeMar 17, 2026 · 7 min read
Stop Writing Solutions Disguised as Tickets
I keep having the same argument. Someone writes a ticket. "Add a dropdown for country selection on the signup form." Fine. An engineer builds it. Ships it. The stakeholder looks at it and goes "No, that’s not what I meant." Now everyone’s…
The AI Engineer Hiring Guide: Why Most Candidates Are Lying
A motley gang of venture capitalists, LinkedIn influencers, and recently-laid-off product managers have hijacked your company’s hiring pipeline and are threatening to sink it in 30 days with "AI strategy" unless their demands are met. The…
uv for Node and TypeScript Developers
If you come from Node/TypeScript, uv will feel familiar: it is basically npm + npx + pipx + pyenv + lockfile discipline, but for Python. uv is a single tool that covers project dependencies, virtual environments, Python version management,…
2025
A Journey into the Machine: The Evolution of Simulating Human Behavior
The Age-Old Quest for a "What-If Machine" Whether you are a business leader, a policymaker, or a team manager, you face a fundamental challenge: making decisions with incomplete information about how people will react. We launch new…
Why DeepSeek OCR Is Getting So Much Attention
Over the weekend, I was scrolling through Twitter to see what was happening in the AI community. Once again, DeepSeek was at the center of attention. But this time, it wasn’t just another OCR (optical character recognition) model. DeepSeek…
Demystifying CORS: It’s Just HTTP Headers (I Promise)
CORS looks intimidating. People see "Cross-Origin Resource Sharing" and think about domain policies, browser security models, and complex preflight negotiations. They see error messages like "No ‘Access-Control-Allow-Origin’ header is…
Demystifying MCP: How the LLM, Client, and Server Actually Work Together (It’s so simple)
Reading the MCP (Model Context Protocol) specification can be intimidating. People see “Protocol” and “Specification” and think you have to be a compiler developer or networking expert to understand it. You have to implement some complex…
Decision Velocity: The Insight That’s Reshaped How I Build and Lead
I’ve always been fascinated by how some teams seem to bend time—turning what should take years into mere months or even days—while others, including some I’ve been part of, grind to a halt under the weight of endless meetings and…
Introducing the “GO FAST 🔥 STACK”: The Best AI-First Tech Stack in 2025
Lately, I’ve been thinking a lot about how weird it feels to ship software the same way we did five years ago—especially when the tools we use today can practically read our minds. AI is here. Not in the “sci-fi overlords” sense. In the…
Web & SecurityJul 3, 2025 · 5 min read
What If You Could Walk Into a Bar and Prove You’re 21—Without sharing any personal information or identification?
Google just opened the doors to a new privacy superpower. The technique they’ve built on, and just released to the public, is known as a Zero-Knowledge-Proof. Here’s why it matters—and how it actually works—in plain English. 1. A Curious…
LLMs are the weather models for humanity
We stand at a peculiar moment in history. The rapid advancement of artificial intelligence has left us simultaneously exhilarated and anxious, caught between dreams of utopia and nightmares of obsolescence. But while much of the discourse…
Choosing the Right Tech Stack: Hard-Earned Lessons from the Field
I’ve spent years building software across industries—startups, enterprise, hardware, AI, and even cybersecurity. People often ask, “What’s the best tech stack?” My answer: it depends—but there are definitely strong contenders. This isn’t a…
Engineering PracticeJan 17, 2025 · 4 min read
Why Apple Didn’t Include Copy and Paste on the Original iPhone—and What It Teaches Us About Product Design
When Apple launched the iPhone in 2007, it was a groundbreaking device that redefined what a smartphone could be. Yet, one glaring omission caught the attention of early users: there was no copy-and-paste functionality. For many, this…
The Next Amazon Will Build on AI, Not Be AI
Every major tech shift follows a pattern: the initial excitement centers on the foundational infrastructure, but the enduring giants are those who apply that technology to solve real problems. Infrastructure vs. Applications: The Internet…
2024
2024 Reflection: What I Learned About Myself While Building AI Systems
Building AI systems that simulate human behavior is a technical challenge and an exploration of what drives us as people. As the head of engineering at Vurvey, my work centers on creating human behavior models that help us predict and…
The Command Line: Your Secret Weapon
Listen up, code monkeys! Today we’re going to talk about something that might make you squirm a little: the command line. You know, that scary black screen with the blinking cursor that makes you feel like you’ve time-traveled back to…
A Month with Cursor and Claude-Dev: My Thoughts
I’ve been using two new tools recently—Cursor and Claude-Dev—both of which have been getting a fair bit of attention in the developer community. They’re each built to make coding faster and more intuitive through AI-powered assistance, but…
Top 20 Machine Learning Metrics: A Practical Countdown to the Best Metric for Your Models
Let’s face it—choosing the right metric to evaluate your machine learning model can be just as tricky as building the model itself. We’ve all been there, running a model that claims 99% accuracy, only to realize it completely misses the…
The Ultimate Guide: RNNs vs. Transformers vs. Diffusion Models
(More of My Ultimate Guides) In the ever-evolving landscape of machine learning, the quest for the most efficient and powerful models is a continuous journey. As we delve into the intricate world of algorithms, we often find ourselves at a…
2023
How to Measure the Unmeasurable: Explorations into Quantum Computing Readouts
I haven’t written much lately about Quantum Computing, not because it’s less interesting, just because I’ve been so preoccupied with all of the breakthroughs in the Artificial Intelligence research, that frankly its consumed all of my time…
Super Powers with Puppeteer
Today you are going to aquire a new super power… the power to control your browser with your thoughts! Okay, well not exactly with your thoughts, but with these scripts that I will show you how to use with Puppetteer (the most popular and…
Vector Databases: What are they, and why have they gotten so much interest lately?
If you’re like me, you’ve started to see the term “Vector Database” start popping up all over your technology news feeds. However, is this actually something that is useful to understand, or is this just another hyped up technology trying…
The Top 100 “AI” Terms Every Developer Needs to Know
If you’re like me, you probably have a hard time keeping up with all the new buzzwords and acronyms that are popping up in the world of technology. Machine learning, artificial intelligence, deep learning, neural networks, natural language…
Web & SecurityMar 17, 2023 · 6 min read
🔮 Unveiling the Hidden Magic: How a URL Transforms into a Webpage 🧙
Hello, dear readers! Today I’m going to explain one of the most basic and fascinating concepts of the web world: what happens when you navigate to a URL in a browser and hit "Enter". You probably do this every day without thinking much…
2018
Quantum Computing and AI Tie the Knot
In 2018, quantum technicians and daring developers are using quantum algorithms to transform the field of artificial neural network optimization: the bees knees of machine learning and AI. So we can say with some confidence that thanks to…
Quantum ComputingFeb 27, 2018 · 11 min read
Demystifying Quantum Gates — One Qubit At A Time
(I’ve written an introduction to quantum computing found here. If you are brand new to the field, it will be a better place to start.) If you want to get into quantum computing, there’s no way around it: you will have to master the cloudy…
Quantum ComputingFeb 1, 2018 · 12 min read
The Need, Promise, and Reality of Quantum Computing
Despite giving us the most spectacular wave of technological innovation in human history, there are certain computational problems that the digital revolution still can’t seem to solve. Some of these problems could be holding back key…
2017
Why AlphaGo is a bigger game changer for Artificial Intelligence than many realize
What’s all this fuss about the AI AlphaGo’s recent victory against the masters? While it’s seemed like AI had hit a dead-end as much as a decade ago, if you’re like many of us sci-fi enthusiasts and have always wanted an AI best friend,…
Scala vs Kotlin: Practical Considerations for the Pragmatic Programmer
Java isn’t just a language; it’s an ecosystem. You can write code for the JVM without writing any Java. This gives you the option of using a more modern language. Some of the shortcomings of Java are obvious. It makes you write a lot of…
The Simply Deep, Yet Convoluted World of Supervised vs Unsupervised Learning
Artificial intelligence (AI) is a lot like life’s relationships. Sometimes what you put into it is pretty straightforward, leading to the output or outcome that you wanted. Other times, let’s just say, the process gets a bit more…
Understanding Recurrent Neural Networks: The Preferred Neural Network for Time-Series Data
Artificial intelligence has been in the background for decades, kicking up dust in the distance, but never quite arriving. Well that era is over. In 2017, AI has broken through the dust cloud and arrived in a big way. But why? What’s the…
Career & LeadershipJun 21, 2017 · 1 min read
12 Most Influential Books Every Software Engineer Needs to Read
How do Computers See?
(This is part 3 in a series of posts on artificial intelligence and deep learning/neural networks. You can check out part 1 and part 2 if you haven’t yet read them and are new to AI) There was a time when artificial intelligence was only…
From Fiction to Reality: A Beginner’s Guide to Artificial Neural Networks
Interest in artificial intelligence is reaching new heights. 2016 was a record year for AI startups and funding, and 2017 will certainly surpass it, if it hasn’t already. According to IDC, spending on cognitive systems and AI will rise…
The AI Winter is Over. Here’s Why.
Unless you’re living under a rock, you’ve probably noticed Artificial Intelligence (AI) is popping up more and more in technology talks and business strategies. I’ve even noticed among my friends an increased interest in “cognifying” their…
2016
RxJava: A Paradigm Shift
Grokking RxJava Disclaimer: RxJava is a beast. A beautiful beast, but a beast none the less. There is a lot to it and I can’t cover it all in this post. I tried to use the Pareto Principle to cover the 20% that will give you 80% of what…
A Simple Introduction To Data Structures: Part One – Linked Lists
The world of programming is always changing. And changing FAST at that. We are constantly finding better ways to do what it is that we do. That is a great thing. Iteration is a very powerful concept. However, there are a few ideas and…
Engineering PracticeApr 19, 2016 · 6 min read
MOCKS: What are they? When should you use them?
A couple weeks ago I wrote a post about unit testing and its importance in developing quality software. You can find that here. A topic that is seen a lot when discussing unit testing is the idea of “mocking” objects (I’ll explain this in…
Career & LeadershipMar 25, 2016 · 6 min read
What Makes A Great Teammate?
Throughout my career (and life) I’ve been on many different teams. Obviously, this implies that I’ve been a teammate to others and had many teammates of my own. I bring this up because yesterday I had an interaction with a current teammate…
Unit Testing. Is it Worth It?
SPOILER ALERT: Yes. Code without tests is such an old idea that in his book “Working Effectively with Legacy Code” (written in 2004!) Michael Feather defines “Legacy Code” as code that is not accompanied by unit tests. This should be…
Career & LeadershipMar 3, 2016 · 5 min read
The Books That Have Changed My Life (and will change yours)
If you know me personally, you know that I love to read. It started in grade school where the elementary school I attended offered points and prizes for those who read (and passed tests on) the most books every month. I remember I…
Engineering PracticeJan 15, 2016 · 7 min read
“The Cloud”: A Beginners Introduction To Cloud Providers
Not a day goes by anymore where you don’t hear someone mention “The Cloud” in some context. Cloud services and solutions are all the rage these days. Why though? What do these solutions offer to businesses that they don’t already have?What…
2015
Web & SecurityDec 29, 2015 · 9 min read
How I Explained REST to My Wife
This is one of my all time favorite dialogs between a developer and his wife over a subject (HTTP and REST) that is the backbone of the web. The truth of the matter is that many professional developers have had the same questions the wife…
Is Managed Code (.NET/Java) Slow?
Software applications are getting more and more complex and each platform for developing applications these days seems like its operating on a higher and higher level of abstraction to hide that complexity from the developer. In…
Career & LeadershipDec 2, 2015 · 5 min read
Tech Startups vs Large Enterprise: A Insider’s Perspective
I am currently (at the time this article was written anyway) working for a large (6,000+ people) Fortune 500 company. However, this was not always the case. Actually, I started my career (straight out of college) for a small biotech…
Career & LeadershipNov 18, 2015 · 3 min read
Tips for Twenty-Year-Olds
Sadly, I am coming to the end of my twenties (I plan to be a centenarian so it’s okay). I’ve learned more in my twenties than I ever thought would be possible. I am grateful for the people I have met and experiences I have had along the…
How to Develop the Right Solution to Any Problem
Whenever I interview candidates for a position (whether a developer position or not), I want to know one very important thing about them. Something that, for me, has been the number one key attribute that successful employees all have.…
The Decorator Pattern
Design patterns in software development have been around for a little while now. They were made famous in 1994 from the book Design Patters: Elements of Reusable Software and consequently made the authors so famous that they are often now…
Web & SecurityNov 2, 2015 · 8 min read
Top 3 Web Security Vulnerabilities and How To Fix Them
Web security doesn’t always get the attention that it deserves. That is unfortunate because it leaves companies and their customers vulnerable to an array of cyber attacks. I wrote an article about How and Why companies are Hacked last…
How and Why Companies are Hacked
Anthem, Sony, Home Depot, Dairy Queen, Kmart…What do all of these companies have in common? They were hacked and lost millions! It seems like not a day goes by anymore where you don’t hear about another company that has had its private…
How to Keep Your Skills Current as a Developer
Being a developer is a lot of fun. When people ask me why I love doing it so much, I usually don’t have just one answer for them. However, one answer I give often draws a few funny looks from the questioner. I love it because everyday I…
What Makes a Good Tech Lead?
Every team needs a great leader. That is especially true for software teams. Between fighting back bugs, developing awesome new features, and rushing to meet deadlines, team members need someone to turn to that they can count on. But who?…
Languages & FrameworksSep 24, 2015 · 5 min read
SQL Server Performance Debugging Tips
Earlier this week I was tasked with troubleshooting some SQL Server performance issues. I am developing a highly multi-threaded application that is calling updates and inserts asynchronously to my SQL Server instance. I was running into…
Engineering PracticeSep 16, 2015 · 8 min read
Make Me Think
Good software is typically developed with the idea that it should be easy and intuitive for the user to use. Don’t Make Me Think is a book written by Steve Krug about human-computer interaction and usability that stresses that this…
What I Learned From My Buddy’s Interview with Amazon
Amazon has been in the news a lot recently. If you have not heard, the New York Times released an article last week that shed some light on what it is like to work at the giant tech enterprise, and (spoiler alert) it didn’t make Amazon…
Use Software Metaphors to Your Advantage
Being a software developer, we’ve all experienced a time in which we had to explain a technical matter to a non technical co-worker, manager, or customer. This, as we know, is not always an easy task to say the least. Software development…
5 Essential Skills Every Developer Needs to Have
A month or two ago I wrote a post titled “Every Programmer Should Understand This”. I received a bunch of comments on the post, some of which were from people agreeing with the article and some which thought I should be hung for suggesting…
Career & LeadershipJul 10, 2015 · 5 min read
3 Rules to Successfully Manage Software Developers
I’ve had many managers throughout my career. I’ve seen some thrive, and some get fired. Some were loved by their teams, and some were despised. Some only cared about what time people arrived in the office and at what time they left (it had…
Every Programmer Should Understand This
I have worked with a large variety of programmers. Some were what the industry call “junior” developers (beginners) and some were “senior” developers (experts). While working with these people I started to notice that the better…
Career & LeadershipJun 30, 2015 · 9 min read
Learn Anything Faster and More Effectively
It used to be hard to find an abundance of information about a particular subject. You would have to go to the library and find books that were written by subject matter experts and then decide if that information was even up to date with…
Engineering PracticeJun 26, 2015 · 4 min read
Start Programming…Competitively!
I love programming. If you are reading this article then there is a good chance that you do too, or are at least interested in the idea. The problem with programming for a company these days though is that the problems we are solving just…
Engineering PracticeJun 1, 2015 · 7 min read
Know Your Big-O!
As a software developer (or someone involved in higher level mathematics) you’ve probably heard the term “Big-O” used a lot. I remember skimming through my Introduction to Algorithms book in college and wondering what the heck “Big-O” was…
My Framework will WHOOP your Language
Ever since programming languages have been invented and humans have been developing applications with these languages, we’ve had language wars over which language was faster, more powerful, more memory conscience, more concise, more…
Engineering PracticeApr 16, 2015 · 3 min read
GIF or JIF???
Along with whether or not Al Gore invented the Internet, figuring out the correct pronunciation of GIF is one of the earliest questions of the Internet. I grew up believing it was hard-G GIF. Most people I know pronounce it like that too.…
Career & LeadershipApr 3, 2015 · 5 min read
Conquer Procrastination with 5 Simple Techniques
Procrastination is something that many people struggle with including myself. For years, no matter what I tried, I would always catch myself procrastinating on tasks that could provide the biggest improvement in my life (apply to grad…
A Pragmatic View on Patterns
WARNING: Below contains strong opinions that you may not agree with! Read at your own risk…(and if you disagree, tell me why I’m wrong in the comments! I have an open mind 🙂 ) In my last post I wrote about 12 Influential Books Every…
12 Most Influential Books Every Software Engineer Needs to Read
This is a question that I get a lot, especially from co-workers or friends that are just beginning their journey as a software craftsman. What book should I read to become a better developer? Do I need to read books? I think it’s a great…
Web & SecurityMar 11, 2015 · 5 min read
How to, Once and for All, Remember when to use “\” or “/”
Does anyone else have a problem with this?? This seems to pop up for me ALL THE TIME! Whether it is in a web URL, a file path on Windows computers, a file path on Mac computers, switch charters in command line, or wherever else they are…
What to Expect in a Programmer Interview
The more and more I talk to developers and other software engineers, I noticed that reoccurring theme. They all wanted to know the key to doing well in technical interviews. This is a good topic to understand because if you don’t take…
Engineering PracticeMar 5, 2015 · 5 min read
BMPs, JPEGs, GIFs, and PNGs…Oh My!
I recently was developing a web application and needed to incorporate a company logo image on the site. When asking the marketing department to send me an image of the company’s logo so that I may put the image on the site, they responded…
Web & SecurityFeb 18, 2015 · 2 min read
HTTP over TCP/IP Simplified
So I was hanging out with my non-technical friend the other day and he asked something along the lines of “What is the ‘HTTP://’ part of the web URL for?” Being a web developer, I was fairly familiar with how HTTP is just a “protocol”…
Engineering PracticeJan 20, 2015 · 2 min read
Computer Science Geeks Rejoice!
As a computer science enthusiast, it has sometimes been hard for me to find other social, out going geeks that just want to kick back and debate data structures, algorithm designs in terms of time and space complexity, sorting techniques,…
Engineering PracticeJan 4, 2015 · 6 min read
Defensive Coding Techniques
We’ve all heard of defensive driving (and if you haven’t, you’re probably the one we are all defending against). However, as developers, we should also be familiar with defensive coding. Just as defensive driving can save you lots of money…
2014
Engineering PracticeDec 9, 2014 · 6 min read
Interfaces vs Abstract Classes – Which Should You Use?
C# is a wonderful language that has matured and evolved over the last 14 years. This is great for us developers because a mature language provides us with a plethora of language features that are at our disposal. However, with great power…
Engineering PracticeDec 7, 2014 · 1 min read
My First Post!
Hello! My name is Jason Roell. I am a software engineering consultant living in the great city of Cincinnati, Ohio. I am starting this blog as a site to write down some of my thoughts and experiences in software and technology. My hope is…