Posts

Long-form notes, system design sketches, and travel dispatches.

  1. #codex #productivity #automation

    Refactoring my site with Codex in hours instead of days

    Today I paired with OpenAI Codex to overhaul my personal website, and the entire refresh came together in a few focused sessions instead of the multi-day sprint I expected. We migrated the old notes page into a Markdown-driven posts timeline,...

    Read post

    Today I paired with OpenAI Codex to overhaul my personal website, and the entire refresh came together in a few focused sessions instead of the multi-day sprint I expected.

    We migrated the old notes page into a Markdown-driven posts timeline, complete with a React front end, archive browser, and automated word cloud. Codex handled the heavy lifting: wiring up new Flask APIs, designing the React components, tightening responsive styles, and even refining the deployment setup to keep Docker builds happy.

    The most surprising part was how quickly we iterated. I could drop new .md files into the posts/ directory and immediately see the updates. By the time we finished, the tests were passing, the docs were refreshed, and the site felt far more maintainable. Collaboration with Codex turned what would normally be a weekend project into a single productive day.

  2. #AI #travel #google-maps

    From Idea to Interactive Travel Map in Hours using AI assisted coding with Gemini 2.5

    Ever thought about visually mapping your travels on your personal website? I recently set out to create a travel map for my "About" page, similar to those you see on apps like TripAdvisor, though initially I wasn't sure how to...

    Read post

    Ever thought about visually mapping your travels on your personal website? I recently set out to create a travel map for my "About" page, similar to those you see on apps like TripAdvisor, though initially I wasn't sure how to approach it. Using Google's Code Assist plugin in PyCharm turned what seemed like a daunting task into a quick and enjoyable project. I'm genuinely impressed by how effective AI-assisted coding has become, especially with Gemini 2.5--it's an incredible accelerator.

    Instead of manually finding coordinates for each location, I simply listed the places I've lived and visited, and my backend handled the rest using Google's Geocoding API. The map itself features minimalist colored markers--red for places I've lived, blue for those I've visited--along with clickable details.

    The process, which I expected to be lengthy, took only a couple of hours, thanks to clear guidance and ready-to-use code snippets from Google's Code Assist. I achieved my desired outcome quickly, resulting in a simple, interactive map for my "About" page.

  3. #react #flask #content-workflow

    Rebuilding the notes page as a React-powered timeline

    I wanted to make updates to my notes page easier to publish. The new setup reads Markdown files directly from a `posts/` folder and renders them through a React timeline component. The Flask backend now parses front matter metadata for...

    Read post

    I wanted to make updates to my notes page easier to publish. The new setup reads Markdown files directly from a posts/ folder and renders them through a React timeline component.

    The Flask backend now parses front matter metadata for publish dates and tags, exposes an archive-friendly API, and ships a small word cloud dataset. With everything in Markdown, adding a new story is as simple as dropping a file into version control.

  4. #flask #streamlit #performance

    Streamlit to Flask migration using ChatGPT

    I recently migrated my personal site from Streamlit to Flask, guided by ChatGPT. Surprisingly, the whole migration took just about a day. An immediate benefit was seeing the memory load on my cheapest droplet significantly reduce--from roughly 30% down to...

    Read post

    I recently migrated my personal site from Streamlit to Flask, guided by ChatGPT. Surprisingly, the whole migration took just about a day. An immediate benefit was seeing the memory load on my cheapest droplet significantly reduce--from roughly 30% down to 15%.

    It is great to see tangible performance improvements from such a quick transition!