The Internship

A short satirical play about startups, recruitment, artificial intelligence, and the continuing scientific investigation into what exactly an "intern" is.
Insights on software craftsmanship, coding principles, and development wisdom
View All Tags
A short satirical play about startups, recruitment, artificial intelligence, and the continuing scientific investigation into what exactly an "intern" is.
There is a sentence in the Bible that sounds suspiciously like something you would hear during a Monday morning status meeting: “While your servant was busy here and there ...”
It appears in 1 Kings 20:35–43. A prophet, disguised as a wounded soldier, approaches King Ahab with a story. During battle, he says, someone entrusted a prisoner to him with very clear instructions: guard this man. If the prisoner escapes, your life will answer for his life. Unfortunately, while the soldier was “busy here and there,” the prisoner disappeared. King Ahab hears the case and gives his judgment without hesitation: “So shall your judgment be; you yourself have decided it.”
Then comes the awkward part.
The prophet removes his disguise and reveals that the story was about Ahab himself. God had entrusted King Ben-Hadad to Ahab's judgment, and Ahab had released him. Ahab had just pronounced judgment on his own behavior without realizing it.
It is one of those wonderfully uncomfortable moments in Scripture where a man discovers that the sermon is, unfortunately, about him.
But hidden inside the story is a principle that reaches far beyond ancient kings and prisoners: when you accept responsibility for something, you also accept responsibility for navigating the difficulties attached to it. Circumstances may explain why you failed. They do not automatically remove your responsibility for whatever was genuinely within your charge.
That applies whether you are a CEO responsible for a company, a pastor responsible for a congregation, a father or mother responsible for children, a husband or wife responsible for a covenant, a manager responsible for a team, or an intern responsible for updating the spreadsheet without somehow deleting Q3.
Welcome to adulthood. We have responsibilities.
I recently came upon a job posting and had to pause.
Not because the responsibilities were strange.
Not because the role was fake.
But because the gap between the expectations and the compensation was loud enough to start speaking in King James English.
The company wanted a Technical Project Manager for a fintech and crypto product. Remote. Full-time. Reporting directly to the Founder and CEO.
Somewhere in a startup office, a meeting is happening that should have been an email. Deadlines are discussed with confidence, priorities are “aligned” in real time, and words like velocity, ownership, and urgency move freely across the room. Everyone nods. Everyone agrees. And yet, if you pause long enough, a strange realization settles in. No one is entirely sure what is actually happening. The team is busy, but not effective. The company is moving, but not progressing.
Beginners ask, "What endpoint should I create?"
Production engineers ask, "What workflow am I protecting?"
That difference is everything. I've seen plenty of APIs start clean — a neat server.ts, a handful of routes, maybe some validation. Then features pile on. Users multiply. Errors get awkward. The database starts choking. Before long, that tidy API is a ball of mud held together by desperation and TODO comments.
This article is about building it right from the start. Not with over-engineering, but with deliberate structure. We'll build an Order Management API as we go — because every production engineer has dealt with orders, payments, and status transitions.
Because copying and pasting the same database configuration for the 47th time isn't "being productive" — it's being stubborn.
🌌 You’re Entering… Development Hell. 🌌
🎙 "Picture this: A team of brilliant creators, armed with keyboards, kanban boards, and caffeine. Their mission? To build a digital masterpiece—a sprawling world of innovation, imagination, and interactivity. There’s just one catch... they’ve only got 12 weeks, half the budget, and a dev team running on fumes. Welcome... to Code War Stories."
If I had to distill the #1 reason for troubled software productions, it's this:
🎙 "You unlock this door with the key of miscommunication. Beyond it lies another dimension... a dimension of frustration, a dimension of pressure, a dimension of burnout. You’re moving into a land of both shadow and substance, of overloaded engineers and missing leadership. You’ve just crossed over... into Code War Stories."
Today’s tale comes courtesy of Jeff—a hardworking backend/DevOps engineer caught in a three-developer team, balancing API endpoints, Swagger docs, AI agents, and maybe the entire weight of the server room.
But Jeff’s not just coding. He’s also managing expectations. Not from a fellow engineer, but from a Tech Lead who leads not with architecture or insight, but with one eternal question:
"When is Feature A ready?"
🕵️♂️ Let’s investigate the curious case of The Disappearing Technical Lead.
🎙 "You find yourself standing at the helm of a digital vessel. The compass is steady, the map is clear, the crew is aligned. But just over the horizon, a tempest brews—a storm of emails, client feedback, and executive urgency. Welcome... to Code War Stories."
Today’s article comes from the edge of a burning sprint backlog. A reader Amarachi asks:
"A lot of times we know what to do, but in the heat of the moment, leadership and PMs just capitulate to pressure from stakeholders. How can we stop this from happening?"
Ah, dear Amarachi, you’ve struck the nerve of digital product development's chaos. It's not lack of knowledge that derails teams. It's what happens under pressure that defines the outcome.
Let’s unpack the shields and anchors you need when the winds of feature frenzy start to howl.
Ever wondered what makes technical writing truly engaging? It's not just about the content—it's about the experience. Let me show you how we can make tech blogs more interactive and fun using the power of React and MDX.
Just as Nintendo made gaming magical with limited resources, we can make technical content magical with simple interactive elements.