RSSAmplifier

Blog

Ben Borgers

Ben Borgers’ personal website.

ben.pageRSS feed ↗242 posts

Latest posts

just surf

people are trying to codify coding agents into best practices "opus plan, codex execute" "spend tons of time planning" (update: no one cares, agents got better at understanding intent) "learn context management" (update: no one cares, compaction is good now and context windows are abundant) "learn to leverage skills!" "learn to leverage MCPs!" "don't touch MCPs, they bloat the context window!"…

Without feedback loops, you’re the feedback loop

When coding with agents, if you don't add a feedback loop, you're the feedback loop. You become QA, and telling the agent that something still doesn't work is extremely frustrating. So take yourself out of the loop. After all, the way we (used to?) program is to "write a little, test a little." Give your agent the power to iterate and correct its own mistakes before it comes back to you. For…

Building a DIY OpenClaw

Two months ago, I bought a Mac Mini and spent the weekend furiously building a small clone of OpenClaw so I could text with Claude over iMessage. I've kept updating it since, and I use it every day, for: Reminders Coding in the background Running extensive QA of web apps overnight Tracking calories Uploading photos of the day Recording and untangling ideas via voice messages Calendaring Getting…

Does coding with LLMs mean more microservices?

Recently, at work, I've seen the beginnings of a proliferation of microservices. It seems that LLM-assisted coding naturally flows towards small microservices, which the big backend uses for specific tasks. For example, a microservice that handles image and video generation AI models. A microservice has a very well-defined surface area. Everything that flows into the service (requests) and out…

An underbaked GPT-Codex-5.3-Spark review

Two days ago, OpenAI released GPT-5.3-Codex-Spark . I excitedly subscribed to ChatGPT Pro to try it, and now that I've been using it for two days, I have a fully comprehensive understanding of the model and am ready to pass judgement. The speed of the model is incredible . Watching tokens fly by at breakneck speed, especially when it's purely outputting tokens (as opposed to searching or using…

Fall 2025

Previously: Summer 2025 I feel pretty settled in Boston with my post-grad job . My apartment has been made a bit cozier, and the routines feel comfortable. I am pretty good at seeing my friends, but not as much at making new ones. Work is great , actually. I really enjoy working at Owner , talking to customers (restaurant owners) frequently, and building out this website builder in the Owner…

Coding agents write 90% of my code now

I recently realized that 90% of the code I write for work is written by coding agents like Claude Code or Amp . I wouldn't describe it as "vibe coding" — I'm guiding the implementation of everything that goes in pretty closely, and ask for all sorts of pedantic tweaks — but the actual typing of the code is largely something that I no longer do. I think the switch happened at some point in the last…

Don’t standardize your company’s coding agents yet

Companies have a natural urge to get things under control, and standardize . Resist that urge for AI coding agents. It's a huge pain that everyone is using different coding agents. Cursor, Codex, Claude Code, Amp, etc, use different rules files, modes, prompting techniques, and sandboxing models. And yet: it's too early to pick one for the whole company. You think that, through standardization,…

I’ve been loving Claude Code on the Web

This week, I've been voraciously using Claude Code on the web . It's very much a "v1" product. You type a prompt to start a new thread, it launches a little container for your agent to work in, and you can keep talking to it. It produces a branch, which you can open a PR for (that's the only way to see a diff of the changes Claude Code made, for now). Or if you want to keep working locally, you…

My coding agent has ads now

One of my favorite coding agents, Amp, released a free ad-supported version of their product today . Amp Free is funded by ads from dev and infra companies we all love, including Axiom, Baseten, Buildkite, Chainguard, Graphite, Parallel, PlanetScale, Prisma, Roboflow, Tailwind Labs, Turbo and WorkOS. The ads are targeted based on your codebase, and you can even ask Amp to help you try the…

We put the lying machine into the correct answer website

The other day, I saw a colleague ask a specific question about the inner workings of the app that my team works on. They had also put their question into Google. And Google had diligently answered — or more specifically, the AI Overview had spat out a confident answer. The answer was not correct — how could it be? Google has no idea about the inner workings of my team's software. It actually knew…

You should be able to run your dev server against your production database

I've always loved the ability to run a local web app you're developing against production infrastructure. At Buttondown , I can pull down the production .env file from Heroku and run the Django server using those variables. At Notion , we had notion run --env staging or notion run --env dev (counterintuitively, at Notion, dev refers not to local development but to the internal instance of Notion…

Don’t forget to set a minimum app version for your feature flags

Here's an important tidbit I learned at Locket : Let's say you're building a mobile app. You've got a new feature that you're incrementally shipping behind a feature flag. (This is the right way to do it! No one huge PR with your entire feature in it that will result in merge conflict hell.) While you're building it, versions of your app will go out with your half-finished work in it. But it's…

How Notion sees itself

Last summer, when I was working at Notion , I felt really viscerally that Notion sees itself as a tool for making software . It's something that they rarely articulate. Their marketing often puts it in more enterprise-y terms: "the AI workspace where teams and AI agents get more done together." Notion started its life as a web app builder , but Ivan realized over time that his vision had to be…

Should Cursor be taught in college?

"I was at a college campus… last semester, and I asked the students in the CS program, 'What do they ask you about agentic coding? What do they teach you about AI code completion?' Nothing, nothing, nothing. Not even a one day class on it." — Andrew Mayne (former Science Communicator at OpenAI), speaking with Lee Robinson (VP of DX at Cursor) on the OpenAI Podcast I don't think it makes sense to…

Calculating related posts on my blog using vector embeddings

You might notice that, somewhere on this page (depending on the redesign I'm not sure where) there should be a list of "related posts." I built it a few months ago, and it's surprisingly good at surfacing further posts to read from my archive of blog posts. It uses the @huggingface/transformers package and a local embeddings model (I chose Xenova/gte-small ) to vector embed every blog post. That…

How I would have picked my classes, in retrospect

In retrospect, I would have taken different classes. I graduated from Tufts University this May with two majors, Computer Science and Engineering Psychology, and one minor, in German. I also kept a catalog of all the classes that I took. Tufts' majors are small — you could complete the Computer Science major in 3 semesters, if you really wanted to. So what do you do with the other 5 semesters? In…

Summer 2025

"talk to you next month!" — me, in my June 2025 newsletter It turns out that I am bad at regularly writing updates. But since it's fall now (!!) I will write an update for the summer: In early July, I moved into an apartment in Fenway in Boston. It's a one bedroom apartment; my first time living without roommates or housemates. I somewhat miss the feeling of living with other people, but having…

The stickiest parking permits known to man

Somerville, Massachusetts (where Tufts University is located) has some of the stickiest resident parking permits down to man. They are virtually impossible to remove from a windshield. (This is well documented on Reddit .) When walking around Somerville, you may start to notice the resulting carnage. And once you see it, you can't un-see it. Here are some examples from this past year: The "gave it…

Goodbye, Tufts

3.5 years ago, I wrote The Beginning of College Sucks . I was one semester into college, and was starting to realize that perhaps the initial loneliness wouldn't be permanent . I wrote: ...it did remind me to slow down and give things time. Something will probably have changed in a month, and you won’t even have to force yourself to go to marginally interesting club meetings or strike up tedious…

Automatically graphing how busy office hours are

This past year at Tufts, I was a TA for CS 40 : Machine Structure and Assembly Language Programming . CS 40 is a somewhat-infamous class in the Tufts sequence, consisting of eight pair-programming projects that take quite a lot of time. On the bright side, the CS department runs office hours for CS 40 every weekday from 10am until 11pm, plus slightly more limited hours on the weekends. Students…

The morning of graduation

I graduated three days ago from Tufts . On the morning of graduation, at 6:40am, I felt compelled to take a walk around campus with my camera. I found: The main stage being set up The cannon, usually painted by students, being covered with a thick coat of black paint Each of the thousands of chairs being meticulously wiped to get rid of the small puddle of rainwater that collected on each chair…

Make sure your university events are actually interesting

One of the biggest things I've learned from running JumboCode this year is to stop lying to yourself about how interesting your events actually are . University clubs often host boring events Many university clubs organize events that sound good on paper but aren't genuinely compelling. Student organizers know deep down they probably wouldn't attend these events themselves if they weren't…

Parking Tickets Wrapped 2024

Embarrassingly, I got enough parking tickets in 2024 to warrant a Parking Tickets Wrapped. April 25 Amount: $30 Reason: Parking facing the wrong direction near Davis Square in Somerville. My Defense: The street is so narrow that you can't even fit more than 1 car at a time. It's ridiculous that it's a 2-way street in the first place. How was I to know that you can't just pull onto the left side if…

Website redesign, December 2024

I seem to redesign my website 2-3 times per year. I do it at all times of the year, but I always seem to be redesigning around Christmas: in 2021, 2022 , 2023, and now. December 2021 December 2022 December 2023 December 2024 There's more versions in between these screenshots too, but I consistently seem to be tinkering on winter break . And this winter break is no different! I started in the…

Winter break project list [2024]

A year ago, I wrote a list of the projects I wanted to get done over winter break. Now that we've reached my final winter break ever (!!), I have made another list. For myself: A first version of War Room v2 Planning how we'll build JumboSmash 2025 in the spring semester Planning JumboCode 's spring events schedule (started, didn't finish) For others: Rebuilding a JumboCode project for a team that…

FileCopy

One of my favorite assignments this semester—of my entire college career, in fact—was a recent one in CS 117: Internet-scale Distributed Systems . It was called FileCopy , and the objective was to copy a folder of files from one computer to another. You could design any protocol you wanted, but the copying had to be done over a potentially-faulty network and with a potentially-faulty filesystem.…

How ChatGPT spoiled my semester

Every semester, I see a bit more ChatGPT being used in classes. This semester, the most obvious occurrences are in my Engineering Psychology classes. Engineering Psychology is a second major that I'm doing — it's the study of how humans interact with technology; a bit like UX design. In one of those classes, we're doing a group project for a real industry client. In writing the initial proposal…

AI is an impediment to learning web development

Some thoughts on AI and LLMs, based on being Head of Engineering for JumboCode , a club of 180 students at Tufts University that builds software for non-profits. For context, almost all of our developers are learning web development (TypeScript, React, etc) from scratch, and have little prior experience with programming. Use of LLMs in JumboCode is ubiquitous LLMs excel at writing code for web…

Donating forks to the dining hall

A year and a half ago, the dining hall would run out of forks every evening. My roommates and I would inevitably have to eat with spoons. Finally, I decided to do something about it: I bought 180 forks. But I had to make sure that my altruism would be commemorated. So I bought metal letter stamps on Amazon, and my roommate and I stamped our initials onto the back of every fork: a "B" for Ben, or…

Trip to Germany, spring 2024

My parents and I traveled to Germany and the Netherlands from May 10th, 2024 to May 17th, 2024. The primary purpose of our trip was to go to a family reunion, which had been organized by one of my aunts and uncles, but we made a longer trip out of it. May 11th We flew in to Amsterdam, picked up a rental car (a stick shift, which only my dad could drive), and drove two hours from Amsterdam to…

Tufts Meal Plan Wrapped

Two weeks ago, Jerome and I won Tufts' first hackathon in 5 years ! We built Tufts Meal Plan Wrapped, a Spotify Wrapped for your meal plan (that also demonstrates that meal plans are a scam), and got over 500 students to use it. The final product First, here's an example of the personalized reports we built: Almost everybody would be better off paying "JumboCash" for meals instead of buying a meal…

Building an e-ink picture frame that displays an iCloud photo album

For Christmas, I gave my parents this e-ink picture frame (built from an old e-reader) that cycles through photos from a shared iCloud photo album: It's a re-worked version of a gift that I gave to my girlfriend in October, except that one was in a smaller frame that fell apart pretty quickly: I rebuilt hers to be more solid, and built one for my parents at the same time. Here's how I did it: The…

2023 in review

This is the first time I've done a year in review. I've really never thought to do it, but I figure it may be interesting to look back on — here goes: Work In January, Justin asked if I'd like to go from irregular/flexible freelancing for Buttondown to a steady 10 hours/week as a support engineer — in practice, technical customer support questions, fixing bugs, and working on bigger projects when…

5% of things go wrong

Of the things you do in life, 5% are guaranteed to go wrong. I don't know if it's 5%. Maybe more, maybe less. But some percentage of things will go wrong. Sometimes you step out of the house and slip on a patch of ice and rip your pants. Sometimes you clip a car on the way to work and scrape the paint. Sometimes your friends are late to an important thing you bought the tickets for. Sometime your…

Winter break project list

I finished my semester yesterday! After a busy whirlwind of a semester, I'm excited to throw myself into some projects over winter break. While I was supposed to be studying for my finals, I put together a list of projects I want to ship over this break. It's quite ambitious, but I was in an ambitious mood. Building a Christmas present for Trisha, Christian , Jerome , and my parents Rebuilding…

How I got scammed on Facebook Marketplace

A few weeks ago, I got scammed buying a camera on Facebook Marketplace. I bought the camera from a profile that was created in 2017. They had some other things for sale, too. The account looked legit — lots of family photos and comments from family members. I paid $1,030 using PayPal, selecting “Goods and Services” because I knew I’d be protected by PayPal in case of a scam. They didn’t ship out…

Ben Forms

I wanted to build an ask-for-help form into an app that my JumboCode team built, in case the client had questions after we handed it off: But in true fashion, I decided to over engineer it. I thought, What if I had a little site that I could use to generate forms for anything? , and forms.ben.page was born. I just configure a bit of JSON, and it spits out another page that I can use. Currently the…

Prototyping an AI-powered note-taking app

Greetings from Croatia! I’m on vacation here with my parents. But in the airport, in the car, and in the evenings, I’ve been tinkering with building a note-taking app. The idea was for a note-taking app where you can ask an AI assistant questions based on your notes: How I built it Laravel , React (via Inertia ) A background job periodically extracts new paragraphs from your notes and “embeds”…

JumboCode+

This is an idea for JumboCode ( What is JumboCode? ) that is not a particularly good idea, and JumboCode should probably not do it, but I thought it’s interesting nonetheless. JumboCode builds these free apps for non-profits each school year, but then the club doesn’t maintain them. If clients want improvements or bug-fixes, we don’t do them. It feels like there might be an idea here, but I’ll…

What is JumboCode?

JumboCode is a club at Tufts that builds apps for non-profits. They’re letting me be the Head of Engineering for it next year! So I figured I’d write one short blog post about what it is, so every time I write about it I can link back here. The club forms ~9-12 teams of developers who work on teams with 1 project manager, 1 tech lead, and 1 designer. They’re assigned to a non-profit that wants an…

Stickies: Spatial note-taking

For the past few days, I’ve been building an app for myself called Stickies . It’s highly inspired by macOS’ own Stickies app, which allows you to place sticky notes physically around your desktop. I’ve always really loved the idea of being able to take notes in macOS’ Stickies and place them in physical space. It feels like the notes sit in a predictable spot, and you can organize them to match…

JumboCode plans for Head of Engineering

JumboCode is a club at Tufts that I’ve written about before . They form about a dozen teams of 10ish developers, and spend the year building an app for a non-profit. Most of the developers don’t have a lot of experience building apps (mostly for the web, but some mobile), but people learn fast. A few days ago, I was accepted to be JumboCode’s Head of Engineering for next year! I have some ideas…

The real reason for my multiple majors

A few months ago, I wrote a blog post about my recent decision to: Major in Computer Science (this was not a recent decision) Major in Engineering Psychology Minor in German The main reasons I gave were: Lots of free space in my schedule (Computer Science is not a very big major, by number of classes) It would be a shame to waste a college education with easy-ish classes to fill up space I also…

Learnings from JumboCode

This year, I’m involved in a club called JumboCode at Tufts. It’s a club that spends the year building a web or mobile app for a non-profit for free, and at the end hands it off to them. I’m a tech lead for a team that consists of: 1 project manager 1 tech lead 1 designer 11 developers How I got to be a tech lead without having previously been a developer in JumboCode is mostly luck, and a story…

War Room: Expansion features

My favorite features that I’ve added to War Room over the past year are expansion features , features that’ve allowed people (and me) to use War Room more . Dividers You used to have one continuous list of tasks. I was “limited” to about 20 tasks, before the list got overwhelming and hard to rearrange. At the end of last summer, I added a dividers feature, which allows you to put tasks into…

War Room “Bib”

It’s been a long-standing request in War Room to be able to add a task directly into a “divider,” instead of creating it and then dragging it into the right divider. I was thinking of ways to do it without cluttering up the interface and adding buttons around the task input. Then, Jerome gave me the idea of having a menu of options that slides out under the input when you’re typing in it. I built…

War Room — using the native date picker

A couple months ago, I finally added the ability to set due dates for tasks in War Room . I built my own modal with a calendar-style date picker when I did that, but recently I decided to replace it with a nicer implementation that felt more lightweight. I decided to rely on the native browser date picker for the new version — why build a date picker when you can use a nice one that’s built-in…

Planning my week

Last semester, when things were getting stressful with schoolwork and freelance work, my girlfriend Trisha took my computer and made a note for planning out my tasks for the upcoming week. It was just seven headings, one for each day of the week, and 2-3 things that I was going to get done on each day. Just the big things. Doing that was kinda transformative — I felt less stress, and found…

Majoring in more

This past semester at Tufts, I added a second major: Engineering Psychology. So the current plan is to major in Computer Science and Engineering Psychology, with a minor in German. Up until this semester, my plan was to major in Computer Science and minor in German. The major was only 9 CS classes and 2 math classes, and I had done 2 CS classes and 2 math classes in the first year, so I had…