MCP OAuth looks like alphabet soup until you watch one client actually connect. Follow a single connection to my private MCP server, from the first anonymous request to the first authorized tool call, and the whole spec collapses into three primitives that fire exactly once, in order. Plus the three hacks the current libraries forced on me, which no documentation will warn you about.
MCP has three primitives, not one. Most servers cram everything into Tools, then blame the protocol for bloated context. The fix is one question per call: who pulls the trigger, the model, the app, or the user. Get it wrong on read-only data and you have handed the model a decision it should never have been making, and you cannot see the bad ones on a token counter.
People burn the better part of a day picking an MCP transport for a question that was already settled by where their server runs. Here is the ten-second rule, the SSE migration you keep putting off, and the one stdio gotcha that looks like a dead server and has nothing to do with your code.
The MCP-is-dead wave is real, and every complaint under it is worth answering. But the death calls measure the wrong axis. The live fight is delivery and update control, and on that axis MCP holds a structural advantage skills and CLIs do not have yet. Part 2 of a series on who controls the update button.
The narrative says mobile won the platform war and the web lost. For most of the 2010s that was simply correct. The lens that emerged later is the load-bearing one: mobile won on distribution and store lock-in, not on capability, and the deciding axis the whole time was update friction. A platform-war retrospective from someone who shipped Android apps for a decade.
I promised to show you how Plan-Execute-Verify actually works. Here’s the three-command workflow that replaced my 13-document nightmare-and why complexity scoring is the gate that keeps everything sane.
I spent $10 and generated 13 documents to change a label. Here’s the brilliant workflow that got me there-and why you should absolutely not replicate it.
I ran a blind A/B test between Gemini 3 Pro and GPT 5.2 on my slash command converter. Same prompt, same input. One gave me 60 lines I could use. The other gave me 250 lines I had to rewrite. The difference wasn’t the prompt-it was the training.
We’ve evolved from slash commands to MCP servers to skills, but our configs haven’t. That prompt from the Claude 3.7 era? It’s still running. That’s not legacy-it’s debt.
I tested three AI coding agents on writing analysis-Claude, Gemini, and Codex. After fixing a configuration bug, the results changed dramatically. Here’s what happened.
How I have delivered sophisticated AI automation solutions for Shopify and WooCommerce using advanced Cloudflare architecture and strategic AI safety controls. Executive Summary This case study details how I engineered a sophisticated AI automation engine, transforming e-commerce management for Shopify and WooCommerce into a seamless conversational experience. The project involved delivering two…
Leveraged LLMs to rebuild our invoice system in 48 hours. Explores AI-driven development, prompt engineering, and lessons learned from this rapid migration.
This is a good read from Steves String. I discovered this blog from a youtube channel called Internet of Bugs . The post completely changes the way we think about productivity and work, especially when your are at the other end of your 30s.
Jest, ESM, and the Meta Tech Conundrum: A Cautionary Tale You know that moment when you’re deep in your TypeScript project, everything’s going smooth, and then you import a simple CSV parsing library? Yeah, that’s when Jest decides to remind you about Facebook’s - sorry, Meta’s - opinions on JavaScript modules. Here’s what happened in my project today: A simple…
For long, AI Coding tools have naturally split into specialized roles to solve different developer needs, Inline assistants for real-time suggestions and Multi-file editors for broader changes. Today, these approaches are converging, making our development workflows more efficient than ever. I see two distinct categories of AI code assistants in our development landscape. The inline assistance…
Recreating Tim Kitchen’s RAG application using GitHub Copilot and exploring how it compares to other AI coding assistants like Aider, Cursor, and Windsurf.
Kent Beck has shared some good insights in his substack . If I have to start with something, this is probably it. This post takes a short and stingy look around real “aglileness” of software development. Short but quick deployments and closer feedback loops instead of long and drawn out processes. Because at the end of the day, there is one bug lingering only in production enviorment…
Let’s say every company gets about three innovation tokens. You can spend these however you want, but the supply is fixed for a long while. You might get a few more after you achieve a certain level of stability and maturity, but the general tendency is to overestimate the contents of your wallet. Clearly this model is approximate, but I think it helps. You can replenish the tokens if you can to…
This is an interesting paper I read last month. The notes on this paper gave me an idea of having linkblogs… Original Paper link Some quotes Under 4: Parting comments ORMs are a vital tool for rapid prototyping. But they often sacrifice the ability to push logic into the DBMS in exchange for interoperability with multiple DBMSs . Developers fall back to writing explicit database queries to…
(via) It’s not their fault. They enrolled in a master’s program to get a job in tech. Why? Let’s be candid: tech has promised job security and agreeable (sometimes borderline perverse) financial returns for a couple of decades. Many tech employers also spin a yarn about “saving the world” and coast on the reputational allure of “if you work here, you’re a genius.” Sounds great, doesn’t it? Except,…
A developer’s journey through LLM-powered development tools. Shares favorite tools, reasons for skipping others, and 8 battle-tested tips for LLM coding.
Discusses the importance of sharing API specifications (Swagger/OpenAPI) over execution details (Postman collections) for better collaboration and avoiding issues.
SourceSailor is a CLI that helps anyone understand a codebase with the help of LLMs. This post introduces the tool, the features and tells the story how it came to be.
After toying with GPT based models. I have also explored how we can use these models locally, without internet, having full control. This post describes my process and learnings about my explorations…
Generative AI, LLMs and OpenAI have swept accross many aspects of our lifestyle since they are released to General Public. People are taking it across the spectrum. Some of them love it, some of them don’t like it and some of them are waiting for the dust to settle. I am one of those who love it and using it in many aspect of my life. In this post, I will tell you how I am using it and what…
The age of AI and LLMs are upon us already. And it’s changing many aspects of life. Making most of the things easy, while making some things obsolate. But one thing is sure, things are not going to be same moving forward. In the age of AI and large language models like ChatGPT, the way we conduct interviews is changing. Traditional theoretical knowledge-based questions may not be as…
Many teams start with ORM/ODM for various reason. But ORM/ODM don’t scale because of a reason. And to perserve sanity, all ORM/ODM must be avoided unless it’s provided by the team who built the database
At the time of writing this, my career is more than 13 years old. Starting programming professionally in 2009, and doing some bits and pieces of learning back when I was studying, I have been playing with computers around the start of this century. In all these years, I have worked with 4-5 different tech stacks and worked in corporations with 400+ employees, software shops and startups as well.…
AWS Cognito is very powerful system of managing users, connecting AWS Cognito with our own database is easy and very important task. This post describes how we leverage best of both Cognito and Our database to our advantage
Firebase is the base behind YAC’s many functionalities, remote config is one of them. In this post I have described how remote config solves some of the problems I have.
In this series, I will be talking about some desicions I have taken during the development of my new app YAC. This first part is about why I decided to develop the app.
Databinding is a powerful tool. It not only reduces boilerplate coding but it also helps us to deliver testable code very fast. I gave a talk to my team regarding to databinding tool. Here is the slideshow and talk excerpt.
After trying and playing some new stuffs(except M preview) released in Google I/O, I have found some trivial things to take care of. In concluding part of series we will see what are some issues with Google’s Databinding plugin and how we can get around it
After trying and playing some new stuffs(except M preview) released in Google I/O, I have found some trivial things to take care of. In this part, we will see how GCM 3.0 gives advantage to server team to send notifications and how implementing it affects Android Development.
After trying and playing some new stuffs(except M preview) released in Google I/O, I have found some trivial things to take care of. In this part, we will see how should we take care if we add iOS details in our google cloud console and how it can affect android development.
After trying and playing some new stuffs(except M preview) released in Google I/O, I have found some trivial things to take care of. In the first part of the series I will talk about Snackbars.