Stratagems #10: Lena Watched a Team Adopt Her AI Template. Leo Didn't Know the Knife Was in the Contract.
"Show a smile, hide the blade." — The 36 Stratagems, Conceal a Dagger in a Smile Previously on...
找到 201 篇相关文章
"Show a smile, hide the blade." — The 36 Stratagems, Conceal a Dagger in a Smile Previously on...
I asked AI to help me write this article. Then I sat there for a second, thinking about how ironic...
For a long time, education and work rewarded one thing above all else: the ability to produce correct answers. School exams were built around it. Technical interviews were built around it. Even many engineering jobs were built around it. The person who could respond faster, explain better, and deliver the right output was often seen as the most valuable person in the room. But AI is changing that. Today, answers are becoming cheap. With modern AI tools, anyone can generate code, summaries, documentation, architecture drafts, and even product ideas in seconds. The scarcity is no longer in producing answers. The scarcity is in defining the right problem. That is why, in the AI era, learning how to ask better questions matters more than learning how to write better answers. The Bottleneck Has Moved The biggest shift is not that AI can answer questions. The bigger shift is that answering is no longer the hardest part. When answers can be generated instantly, the real bottleneck becomes: What exactly should be asked? What is the real problem behind the surface request? What constraints actually matter? What outcome is considered good enough? AI can generate many possible answers. But it still depends heavily on the quality of the question. A vague prompt creates vague output. A precise question creates leverage. In that sense, the person who defines the problem is now more important than the person who simply responds to it. The Problem Setter Is More Valuable Than the Problem Solver This idea may sound exaggerated at first, but it becomes obvious in practice. Suppose someone says: Optimize this system. That sounds like a reasonable task, but it is actually too weak to produce a strong result. Optimize for what? Cost? Latency? Reliability? Simplicity? Team productivity? Now compare it with this: We have a Node.js API running on AWS ECS. Under burst traffic, CPU throttling causes latency spikes. How can we reduce p95 latency without increasing infrastructure cost by more
Some of you may have noticed I disappeared a bit from the community over the last couple of weeks....
Eleven exhibits, last time. A career that kept refusing to fit inside a single box — trainer,...
I have been building software for sixteen years. I have four ambassador titles I earned honestly. And last week I sat at my desk at eleven at night, certain that everyone else my age was further ahead than me. You know that feeling. The one where you scroll past someone's launch, someone's promotion, someone's clean little success, and a cold voice says you should be there by now. It does not care what you have done. It only points at what you have not. For most of my career I treated that voice as a problem to solve. If I could learn one more tool, ship one more thing, earn one more title, it would finally go quiet. So I did. I learned the tools. I shipped the things. I earned the titles. The voice did not go quiet. It moved the finish line and waited for me there. Here is the opinion I wish someone had handed me a decade ago. Feeling behind is not a bug in you. It is the tax you pay for caring about the work. The people who feel the most behind are almost never the ones who are actually behind. They are the ones paying attention. They see the gap between what they made and what they meant to make, and that gap never closes, because the moment you get better, your taste gets better too. The gap is not evidence that you are failing. The gap is proof that you still have standards. I know engineers with twenty years and a wall of real accomplishments who quietly feel like frauds. I know brilliant people five years in, staring at a job market that feels brutal, convinced everyone else got a memo they missed. None of them are behind. All of them are exhausted from running a race that has no finish line, on a track only they can see. The comparison is rigged, and it is worth saying why. You compare your inside to everyone else's outside. You know your own doubt, your own half-finished drafts, your own two in the morning. You see their launch, their title, their highlight. You are matching your bloopers against their trailer, and then calling yourself slow. So what change
Nice to meet you! I'm Andrew It's been a year since I joined the community. I started developing a bit earlier, and changing my career just by learning and practicing is far from what I had planned. I cannot help but be thankful for each course and tutorial, and each developer and tutor who has shared some knowledge and wisdom with me. It is still too early to know exactly what I will fix, build, or vibe to improve the world, but I will do my best... print ( " Hola mundo, aquí vamos! " ) Follow my journey on GitHub "I'm curious to hear from others—what was the biggest challenge you faced during your first year of coding? Or, if you're just starting, what's one thing you're excited to build?"
Quick note before we dive in — I know I've been off track from the iOS/Swift series lately. I just...
Abertura Eu sempre participei de comunidades de tecnologia: grupos de estudo do Google,...
Watch the fires burning on the far shore. Don't cross until they've burned themselves out. — The 36...
A few days ago, I was talking to a junior developer who was literally sweating bullets. He had just pushed a feature for a staging website that barely gets 500 users a month. But looking at his senior developer’s reaction? You’d think the guy was managing the infrastructure for Amazon’s Prime Day Sale. “Scale check kiya? What if 10,000 users hit this exact API at 3 AM? Refactor this logic.” The code was perfectly fine for their current requirement. But the senior dev had to find a flaw to justify his hierarchy. This is where the tragedy of modern software engineering begins, and a brilliant, toxic survival hack takes over: The Placebo Bug. What is a Placebo Bug? (The Strategic Distraction) When experienced developers realize that their managers or seniors have a habit of “kami nikalna” (finding faults just for the sake of it), they stop giving them perfect code. Instead, they intentionally leave a very small, harmless, and obvious mistake in the front-end or the script. Maybe an unaligned button. Maybe a funny typo in an error message (like writing “Succesfully” instead of “Successfully”). Maybe a massive padding that makes the UI look slightly weird. When the senior reviews the code, their eyes immediately light up. “Arey! Look at this alignment. Everything else is fine, but fix this button first.” The junior says, “Sorry, my bad. Fixing it right away.” Two minutes later, a new commit is pushed. The senior feels proud that they added value, the junior’s core complex architecture passes without unnecessary refactoring, and everyone goes home happy. It’s not good engineering; it’s human management. This is actually a very old trick in the tech world, famously known as “The Corporate Duck” story. Years ago, a game designer noticed that his manager always forced changes on every project just to prove he was the boss. So, the designer tried a hack: he put a totally random, funny Duck on the main character’s head. The manager reviewed it and said, “Everything looks perfe
The therapy unit at the hospital I work for had six treatment rooms. Room 1, Room 2, Room 3, and so on, each split by the kind of therapy it handled. And each room kept its own document to record patients. The problem wasn't that the documents existed. The problem was that no two of them looked alike. Same patient. Same information. But every room ordered the columns differently and named things differently. One put the date in the first column. Another put it last. One wrote "treatment time." The room next door wrote "minutes used." On their own, each form worked fine. Looked at one at a time, there was nothing wrong. The trouble showed up the moment anyone tried to combine them. The work that never ended Every so often, a request would come down from above: Can we see the overall numbers? That was when the real work began. I would open all six documents side by side. I would line up columns that didn't match, by eye, and move each value into one master table by hand. Days of this would get me a single sheet of statistics. Then the next quarter, the same request came down again. And I started over. The table I'd built last time was useless if the format had shifted even slightly. So I rebuilt it from scratch. Every time. I couldn't stand it. This was obviously a job you do right once and never touch again. We just weren't doing it right. So instead, we kept feeding people's evenings into it. The obvious answer The fix was simple. Make all six rooms use one form. Same columns. Same names. Same order, everywhere. Then there's nothing to move when you combine them. The statistics become a matter of stacking, not translating. The answer was so obvious I wondered why nobody had done it years ago. So I built a unified form in Excel and sent it around. And that's where I learned Excel has walls of its own. Where Excel broke down Once a file gets passed around, you lose track of which copy is the real one. The versions pile up. "Final." "Actually final." "Final, revised."
Quantum mechanics gave us the transistor before we understood it. The same pattern is happening with AI right now — and the builders who recognize this will define what comes next. The argument that never ended — and the lab that didn't care In 1927, the greatest minds in physics gathered in Brussels for the Solvay Conference. Albert Einstein, Niels Bohr, Werner Heisenberg, Erwin Schrödinger, Max Planck, Marie Curie — twenty-nine of the most brilliant humans who ever lived, in one room. They were arguing about quantum mechanics. Specifically: what does it mean for a particle to exist in multiple states simultaneously until observed? Does reality require an observer? Is the universe fundamentally probabilistic? Is God playing dice? Einstein said no. Bohr said yes. Neither convinced the other. That argument never fully resolved. Nearly a century later, physicists still debate the interpretation of quantum mechanics — the Copenhagen Interpretation, Many Worlds, Pilot Wave theory. We have not settled it. Meanwhile, in 1947 — twenty years after the Solvay Conference — three engineers at Bell Labs in New Jersey quietly invented the transistor. William Shockley, John Bardeen, and Walter Brattain did not wait for the philosophical debate to conclude. They did not need to understand why quantum tunneling worked at a fundamental level. They understood it well enough to build something with it. That transistor became the foundation of every computer, every smartphone, every server, every piece of digital infrastructure that exists today. We built the entire digital civilization on something we still don't fully understand. Not despite the uncertainty. With it. The pattern repeating right now Across the internet in 2025 and 2026, a remarkably similar argument is happening. Will AI take all the jobs? Is it conscious? Does it hallucinate too much to be trusted? Are we building something we cannot control? Should we slow down? Should we stop? These are not trivial questions. The r
Last week I sat in my parked car for fifteen minutes before going inside. Not because of...
Deceive the enemy with an obvious approach that will take a very long time, while ambushing them...
"Show nothing, hold everything." — The Thirty-Six Stratagems, Create Something Out of Nothing Previously on this series: #4: P Walked Into an AI Monitoring POC. P Didn't Run a Single Test. — P found an ACL business card in an abandoned POC archive. P didn't tell anyone. P just pocketed it. White walls. Fluorescent hum. A FortDefender quarterly report sat open on the table, the cover printed in bold: Zero missed detections. 99.97% detection rate. The CTO slid it across. "The day the leak happened," he said quietly, "this system said everything was fine." "Which client?" " MedTech . Medical data breach. Their internal AI monitoring didn't catch it either. The quarterly report called it 'client-side issue.' I don't buy it." P didn't look at the report first. P looked at the CTO's eyes first. "You didn't bring me here to validate his numbers." The CTO didn't deny it. " FortDefender won't give you production access," he said. "Read-only logs. Sandbox. Public docs. You signed the NDA." "What do you want me to do?" "Find what's hiding inside 'everything was fine.'" P nodded. P didn't ask "what if I find it" — P knew the answer. "One condition: full internal penetration test access. No advance notice to anyone." The CTO was quiet for three seconds. "Done." P stood up. The CTO added one more thing as P turned: "I've heard about the FirmCore thing. That's why I called you." P didn't look back. Week One FortDefender 's public documentation was beautiful. Architecture diagrams. Whitelist rules. Alert thresholds. Response times. All in a technical whitepaper so polished you'd think it was written to raise funding. P spent three days reading every page. In the sandbox, P ran three rounds of tests. FortDefender 's detection system hit every single one. The 99.97% wasn't a lie — at least not inside the sandbox. But P noticed something. FortDefender 's whitelist rules were too complete. They covered everything — down to "penetration tests with valid internal certificates" being pre-
For years, developers have faced the same dilemma when implementing complex search APIs: GET is the correct semantic choice for read-only operations, but query parameters can become extremely long and difficult to manage. POST allows sending a request body, but it's intended for operations that may change server state, making it a poor semantic fit for searches. To bridge this gap, the IETF has introduced a new HTTP method: QUERY (RFC 10008). Why was QUERY introduced? Modern APIs often require complex filtering: nested JSON filters GraphQL-like requests advanced search criteria large lists of IDs geospatial or analytical queries Encoding all of this into a URL is cumbersome and can exceed practical URI length limits. Developers have traditionally worked around this by using "POST" for read-only searches. The problem is that "POST" doesn't express the intent of the request very well. The new QUERY method solves this by allowing clients to send a request body while keeping the operation explicitly safe and idempotent. Key benefits ✅ Request body support Unlike "GET", "QUERY" allows sending structured request data in the message body, making complex searches much easier to model. ✅ Safe by design Like "GET", a "QUERY" request must not modify server state. It clearly communicates that the request is read-only. ✅ Idempotent Repeating the same "QUERY" request produces the same result without additional side effects, allowing clients and intermediaries to safely retry requests after transient failures. ✅ Cache-friendly Unlike the common "POST"-for-search pattern, "QUERY" is designed to work with HTTP caching, enabling better performance and more efficient network usage. ✅ Better API semantics Instead of overloading "POST" for read operations, APIs can now express their intent more accurately: "GET" → simple resource retrieval "QUERY" → complex read operations with a request body "POST" → operations that create or modify state Example Instead of forcing everything into a lo
I didn't go to a university for computer science. I have a B.Tech in Geophysics. What I know about...
So, a few months ago I got curious about dropshipping — not as a "get rich quick" scheme, but as a real engineering problem. Inventory syncing, pricing algorithms, order routing, supplier APIs... turns out there's a surprising amount of code you can write in this space. Here's my honest breakdown. The Setup I built a small pipeline using Node.js + PostgreSQL that: Pulls product data from multiple suppliers via their APIs Applies dynamic pricing rules (cost-based, competitor-based, and margin-based) Syncs inventory levels every 15 minutes Auto-generates product descriptions using a simple template engine Routes incoming orders to the correct supplier Nothing fancy. Nothing magical. Just plumbing. What Went Right Automation saves real hours. Manually updating 200+ SKUs is soul-crushing. A cron job and a few API calls replaced about 3 hours of daily work. Template-based descriptions at scale. I used a mix of structured product attributes and Handlebars templates to generate descriptions. Not ChatGPT-level prose, but consistent and fast. Price monitoring was the real MVP. A simple scraper that checked competitor prices every 6 hours let me stay competitive without guessing. What Went Wrong Supplier APIs are... inconsistent. Some return JSON. Some return XML. One returned a CSV inside a JSON field. Parsing supplier data became 60% of the project. Race conditions in inventory sync. I sold an item that was out of stock. Twice. Lesson learned: add a buffer threshold and use proper locking. I underestimated customer support automation. Tracking numbers, returns, delays — this is where the "boring" engineering work actually matters the most. The Creative Part Here's where it got fun. I experimented with: A/B testing product images — randomly serving different hero images and tracking conversion rates Seasonal keyword injection — appending trending search terms to product titles based on Google Trends data A "dead stock" detector — flagging products with zero views in 30 days
Let's be honest, you can't scroll through your feed, listen to a podcast, or even make coffee without someone, somewhere, mentioning the impending AI apocalypse. It is usually framed as: "AI is coming for your job, your keyboard, and your favorite coffee mug." But isn't that incredibly ironic? We are the software developers. We are literally the architects building the AI, writing the code, and then using that AI to build even more tools. Are we truly creating our own replacements, or are we just very efficiently automating the boring parts of our day? It feels a bit like a baker building a robot to knead the dough, only to worry the robot will eventually want to run the whole bakery. I've always wanted to weigh in on this discussion and share my perspective, but I was always hesitant because I am not an "AI expert" and didn't want to get ratioed by researchers. However, I read something truly interesting recently that gave me a new perspective, and I had to share it. The Computer Era Paradigm We have all heard the stories of how we moved from papers to digital, and how computers were coming into the picture and they will take the job of the workers who were writing them everything in the registers. The wave that we are experiencing right now is kind of similar to that wave. At that time, people who were doing everything on the papers would have felt terrified and didn't wanna lose to a computer. But as the computers were new, they were quite fast and were efficient in doing the jobs and storing each and everything in the memory to be kept for later use. This tension is perfectly depicted in a movie I watched (Hidden Figures, if you're looking for it). Initially, teams of human "computers" did complex space research calculations and re-evaluated all the answers so the spacecraft wouldn't deviate from its path. Then, electronic computers were introduced, creating the same panic that we experience these days: "All these people doing calculations will be let off!" But