RSSAmplifier

Blog

Monsur Hossain - Blog

Blog posts by Monsur Hossain

monsur.hossa.inRSS feed ↗20 posts

Latest posts

Revisiting Plai Ball for the new season

With the start of baseball season, I revisited https://www.plai-ball.com/ for the new year. It was my first AI coding project, and it’s amazing how far things have come in a year. The first version had a narrow AI integration: I wrote most of the code myself, using AI to learn specific tasks like how to structure API calls. A year later, I’ve ceded much of that control. Outcome-based programming…

LoopTimer

My newest vibe-coded project: LoopTimer LoopTimer is a simple timer that automatically restarts after each interval. I built it to track rest intervals between workout sets without having to touch my phone. The app is super simple, but it was my most ambitious vibe-coding experience yet. I built a functional app without knowing anything about iOS development, all while piloting a new workflow.…

enable-cors.org

I recently updated https://enable-cors.org with the help of Claude Code. AI is simultaneously perfect for updating a site like enable-cors.org and completely eliminates the need for a site like enable-cors.org. Michael Hausenblas started enable-cors.org and handed it to me shortly after publishing CORS in Action . Setting up CORS was a major challenge back then with few available examples. The…

Do you want me to...?

AI assistants are often eager to jump to the finish line. You’ll iterate once on a design, and it immediately offers to “implement the whole thing.” While it sounds efficient, the output is usually a mess. Vibecoding benefits from small, intentional steps, not one giant leap. This “rush to the finish” sets a false expectation for beginners. Engineers familiar with AI know how to break complex…

Kids Rarely Read Whole Books Anymore. Even in English Class.

A new NYT article details why reading is declining: schools assign fewer full books, test scores are historically low, and students struggle with complex texts. My lifelong love of reading started early: some of my earliest memories are regular trips to the library with my mom. To this day, I still love going to the library and reading print books. I think reading full books is valuable for a few…

Why Speed Matters

When I think of moving quickly this Simpsons scene comes to mind. Daniel Lemire’s post does a better job of articulating why speed matters. Its not about moving quickly just to get more done, its what that speed unlocks.

Replai Review Newsletter

My latest vibe-coding project: a weekly automated newsletter that recaps NFL games. More than just a scoreboard, this was an end-to-end exercise in building an automated pipeline from data scraping to delivery: https://monsur.hossa.in/replai-review/ A few things I learned along the way: I enjoy building tools to simplify a busy world. This same motivation fueled projects like plai-ball.com and…

AI Interview Success at Canva

I wrote earlier about Canva embracing AI in their interview process. Recently they posted a followup with dos and don’ts. My key takeaway: the importance of thinking strategically. When AI handles the “how”, you need to understand the “why”, and own the output.

Using AI to uncover security bugs

Using AI to uncover security bugs is a hot topic right now . I decided to try this myself on Echo Server, a 14-year old project I recently modernized with AI. I found this interesting because much of prompting is telling AI what you want. Solving security issues is asking AI to imagine what could be. The starting prompt was broad: “any potential security issues in this project?” I was worried it…

Claude Code & Checkpoints

Claude Code released an update , and one of the new features is checkpoints. Checkpoints “automatically saves your code state before each change, and you can instantly rewind to previous versions by tapping Esc twice or using the /rewind command.” “Checkpoints let you pursue more ambitious and wide-scale tasks knowing you can always return to a prior code state.” This is similar to some of my…

Codex prompting guide from OpenAI

This Codex prompting guide has some great tips, and echos some things I’ve shared here before, in particular: split large tasks and Leverage Codex for debugging Split large tasks: Like a human engineer, Codex handles really complex work better when it’s broken into smaller, focused steps. Smaller tasks are easier for Codex to test and for you to review. You can even ask Codex to help break tasks…

Source Control & Vibecoding

Source control is such a useful companion for vibecoding. Code commits offer a deterministic checkpoint for progress. The determinism is important; I don’t trust AI to do the right thing when I ask it to undo a change. Knowing I have a checkpoint makes me comfortable with giving AI more leeway. I know I can always return to a last known good state. This is important because you never know if your…

Threadweaver: My Latest Pet Project

My latest pet project: Threadweaver I like to think of my BlueSky as blog posts split into bite-sized chunks. Threadweaver helps compose these posts by giving visual feedback on chunk sizes. Threadweaver is a single HTML page with a text box. As the user types, an indicator on the left numbers each BlueSky post. Clicking the indicator copies the post to the clipboard. The text turns red if it goes…

Being good isn’t enough

Simple and spot-on career advice from https://joshs.bearblog.dev/being-good-isnt-enough/ A few nuggets that resonated with me: Feedback & humility are key, and support each other: “Feedback shows you what to work on, and humility lets you actually hear it.” Progress over perfection: “Don’t wait for the perfect plan, doing something is almost always better than doing nothing.” Above all, just get…

Leadership lessons from developing new QBs

I found this Athletic article on NFL quarterbacks fascinating, not only because I’m a Bears fan, but also because it embodies some good lessons in organizational leadership. It starts with the pressure teams feel to build around a solid QB. QBs are drafted young and expected to make an immediate impact. Teams may have a development plan that’s quickly abandoned. How can a team justify benching a…

Vibedebugging

I had an interesting use case where vibecoding just wasn’t fixing a pesky bug. So I tried “vibedebugging” instead, and used the root cause to build the correct solution. Context: I was messing with a React app that wasn’t persisting scroll position on the page. I asked Claude to fix it but the code wouldn’t work, even after multiple iterations. So I tried a different approach. Rather than asking…

My experience on 9/11

These 13 photos are all I have left from 9/11, out of maybe 200+ I took that day. These photos remain because I posted them and some thoughts to my Xanga site. The other 200+ photos lived on a hard drive that crashed a few years later. A useful reminder to always have backups. We think less about that kind of stuff these days. Our cameras are with us all the time, seamlessly backing up to the…

Prompt injection and early 2000s blogging

“A weakness in OpenAI’s Connectors allowed sensitive information to be extracted from a Google Drive account using an indirect prompt injection attack.” ( source ) These prompt injection attacks remind me of Javascript injection attacks on blogging sites from the early 2000s Early social media sites like Xanga and MySpace allowed users to add Javascript directly to their page. I worked at Xanga in…

Day 2 of my latest project

A few updates from Day 2 of my latest project: mirroring my BlueSky posts to a static Jekyll blog . First, I liked it so much I made it the landing page for https://monsur.hossa.in Second, and more interestingly, I wanted to refresh the UI to be cleaner. I started by looking into the al-folio theme , but Claude actually advised against it: “I can help you convert your site to use the al-folio…

Vibecoding on a Sunday afternoon

Another small vibecoding project from a Sunday afternoon: mirroring my BlueSky posts to a Jekyll blog http://monsur.hossa.in/blog . I’ve been posting here more (I can get into the why in the future), and I wanted to have my own archive of this content. Even though BlueSky captures bite-sized content, I envision a BlueSky thread as a single coherent blog post. This Python script concatenates a…