Alessandro Bahgat

VP Software at Quilt. Professional coach for Eng leaders. 12y @ Google. Building with AI, LLMs & open source. Still building side projects at night. More at abahgat.com

10 followers7 following61 stories

Longform Stories

The nearest hospital to every place on Earth, in a single S2 range query

For every locality on Earth, how far is the nearest hospital? Naively, that's 437 billion great-circle distances. S2 cell indexing reduces it to a single integer range-join: build the index once, and …

3d ago·30 min read·5999 words

Same Agent, Different Score: The Problem With Testing Non-Deterministic AI

Before building tools for my Zork-playing agents, I needed a benchmark I could trust. I ran five local models through fifty playthroughs and discovered that the same model can score 40 or 0 on the sam…

Apr 16·14 min read·2617 words

Stuck in the Maze: Why AI Agents Can't Hold the Map

I had local AI models play Zork, the 1981 text adventure, to study why agents struggle to navigate connected systems. One started responding in Thai. Most scored zero. All got hopelessly stuck in the …

Apr 7·8 min read·1544 words

Permission Structure

AI tools are trained on extreme goal fulfillment: you ask "build X" and they build X. I've learned that prompting against that grain gets even better results: asking the model to stress-test ideas, no…

Mar 31·8 min read·1593 words

Fortresses, Pipes, and Brains

Workday's CEO called AI agent startups "parasites." Linear shipped a native AI agent that understands software development workflows. These are two ends of a spectrum, with most of the industry stuck …

Mar 26·6 min read·1025 words

Visualizing Ukkonen's Suffix Tree Algorithm

I learned algorithms from textbooks and papers, building mental models from pseudocode and hand-drawn sketches. The hardest part was never reading the algorithm: it was seeing what it was actually doi…

Mar 9·9 min read·1634 words

The Velocity Paradox

AI agents can generate code 100x faster, but for companies stuck in the "Unhappy Middle" — with legacy debt, bespoke frameworks, and zero slack — the bottleneck has shifted from writing code to verify…

Feb 23·19 min read·3716 words

The Ghost in the Training Set

LLMs have statistical momentum: even when they know a new standard like Streamable HTTP exists, they often revert to the legacy patterns they saw most in training. Here is how to use "strong anchors" …

Feb 14·5 min read·953 words

Receiving Feedback Is A Skill

Delivering feedback is a critical part of my day job as a manager at Google. However, it took me a while to realize that receiving feedback is one of the skills that helped me grow the most in my care…

Aug 25·6 min read·1123 words

Programming Machine Learning

A book written with developers in mind, covering Machine Learning with a hands-on approach. Each new topic is introduced by laying out a real world problem, guiding readers through implementing a work…

May 4·2 min read·345 words

The programming puzzle that landed me my job

And how solving it required a truly full-stack solution, covering web development, data structures and memory optimization

Oct 1·15 min read·2963 words

What to look for when hiring

A while ago, I found myself in the enviable position of having to rapidly grow my team. Here a list of the most important characteristics I learned to value in anyone I work with, regardless of job fu…

Aug 26·9 min read·1632 words

Visual and HTML Testing for Static Sites

I set up a CI/CD pipeline to test my website for markup and rendering issues. It proved to be so useful that I can not imagine going back.

Aug 6·14 min read·2736 words

Zing LED Smart Night Light

I liked these WiFi enabled, motion-sensing night lights so far, I only wish they had 3 more features.

Feb 18·4 min read·782 words

Migrating From Wordpress to Hugo

After many years of running my site on Wordpress, I just migrated this site to Hugo. The migration was quite simple, this post outlines the main steps and offers a few helpful resources.

Mar 15·4 min read·695 words

What’s wrong with Milan’s Open Data initiative

I spent some time playing with the Open Data published by the City of Milan, aiming to visualize public transport coverage. While I managed to create a heatmap, I was left unsatisfied by the data pres…

Sep 12·3 min read·597 words

Appsterdam Guru Session: Google App Engine for beginners

One of the things I was not expecting when I moved to Amsterdam was its active and vibrant tech community. Appsterdam, a non-profit organization focused around aggregating people with a passion for te…

Jul 6·2 min read·324 words

Presenting Professional Invaders

The story of Professional Invaders, the game we built during TNW Conference's Hack Battle.

Jun 6·3 min read·493 words

What Van Gogh can teach us about persistence

I visited the Van Gogh museum in Amsterdam recently and, to my surprise, I left the exposition having learned something that matters beyond art.

Mar 4·2 min read·366 words

Prettier source code on WordPress.com

Posting source code on WordPress.com is quite simple: the platform already provides an extremely easy to use shortcode called sourcecode, based on a fairly flexible syntax highlighter plugin. By looki…

Jan 21·5 min read·802 words

User authentication with webapp2 on Google App Engine

Google App Engine for Python ships with the capability to manage user accounts without the need of any additional library. This functionality is, however, insufficiently documented. This post is a ste…

Jan 7·14 min read·2603 words

Beyond keyboard shortcuts

In the age of touch devices, some days it seems like a day will come when we will not have to use a keyboard to interact with computers. A significant part of our relationship with technology passes t…

Dec 19·4 min read·761 words

Story of a hack: Bring Your Own Music!

This post is a summary of the weekend we spent at the Kings of Code 2012 Hack Battle in Amsterdam. What started as an occasion to get to know smart people doing cool things in Amsterdam (something I l…

Dec 3·6 min read·1082 words

What you should know before moving to Amsterdam

A practical guide covering everything I had to figure out when I relovated to the Netherlands, covering topics such as the 30% ruling for Highly Skilled Migrants, finding where to live, registering as…

Nov 20·18 min read·3470 words

On desire paths… and software

Desire paths are a common pattern in landscape design: born as simple footpaths when someone takes a more direct, shorter way to their destination, they often evolve to proper paths and roads after a …

Jul 23·4 min read·625 words

Can we get rid of unknown phone numbers?

For many people like me, the phone system is broken. And it is not all about costs or devices: as Andreas Klinger once said, telephone numbers are a disgrace to our generation. His main point, one I a…

Apr 30·5 min read·868 words

Preventing (some) duplicate bug reports in Redmine

A while ago I wrote about a few problems we were having with the way our issue tracker was misused and concluded that the tools we use have a crucial role in directing our behavior towards good or bad…

Apr 20·2 min read·397 words

Do languages shape IDEs or IDEs shape languages?

I spend most of my days at work on powerful IDEs like Eclipse or Netbeans, tools so advanced in functionalities that their feature lists span over several pages. Their power, however, has its own draw…

Mar 26·7 min read·1256 words

Building a culture of objection

Summary: accepting objections is one of the most valuable skills a manager can learn, and yet the role models we get fail to highlight this As many other geeks, I have always been fascinated by aviati…

Mar 12·4 min read·730 words

Hiring: you are doing it wrong

Looking for a job in the tech sector is a challenge. A lot has been written about the process itself and its quirks, ranging from programming puzzles to whiteboard interviews. However, there are still…

Feb 22·8 min read·1595 words

Design horror: same command, different meanings

As I already had the chance to write in a previous post, I really appreciate distributed version control systems; I consistently use them at work and for many of my side projects. I typically switch b…

Feb 6·3 min read·445 words

How achievements can improve software quality

Last Friday, a blog post on Channel 9 announced Achievements for Visual Studio, an extension for the Microsoft IDE that tracks the actions of programmers as they write code and unlocks badges based on…

Jan 22·6 min read·1061 words

We need smarter issue trackers

While issue trackers originate as tools to manage projects more effectively, during the last years of work I have been through some situations where their misuse backfired. Tools originally conceived …

Jan 9·9 min read·1727 words

Want to get better at your job? Spend time with children

I still remember one of the most interesting questions I have been asked last year when I was interviewing for a Software Engineering position: How would you explain to a 12 years old what an API is? …

Dec 21·5 min read·845 words

Tip: serve local files over HTTP with one console command

This weekend I was playing with Facebook’s JavaScript SDK and I needed a quick way to serve over HTTP the files I was working on, so that I could access them in a browser window at http://localhost. I…

Dec 13·2 min read·205 words

The ultimate impulse purchase

There is one thing that often frustrates me and yet it happens quite often: I am driving and listening to the radio, and at some point they play a song I like. I would love to buy it, but I don’t know…

Sep 6·2 min read·351 words

What I love about the Kindle…

…is not the device itself, but it is the whole ecosystem that surrounds it.

Aug 1·3 min read·407 words

There is no such thing as Internet Security

During the course of the last months, we have seen frequent news of security breaches, with many websites falling victims of malicious attacks. While this by itself is not a news, the frequency and sc…

Jun 13·3 min read·507 words

Authors ≠ Committers: why most Open Source projects should switch to distributed revision control

I had been thinking about the idea behind this post for a while now, but reading this post about getting newbies involved in open source just convinced me to write it down. Being a concept developed i…

May 25·3 min read·565 words

Failure is an option

As Software Engineers, we often tend to be overly optimistic about software. In particular, it often happens that we underestimate the probability of systems and components failures and the impact thi…

May 12·3 min read·469 words

What I learnt from coding offline

During the last weeks, I’ve been writing a lot of code while commuting. Since I was working on an application that uses Facebook’s and Amazon’s APIs and I was working offline, I often found myself una…

Apr 29·3 min read·564 words

A bit of confusion around Google Bookmarks?

Let’s start with two quick facts: 1. Google recently refurbished Google Bookmarks (after neglecting them for a couple of years), giving them more importance in search and allowing us to share them wit…

Apr 6·1 min read·155 words

Machinarium

Knowing how much I enjoy indie games, a dear friend of mine bought me a new treat for Christmas. It’s called Machinarium, from Czech-based Amanita Design. We just finished it today, and although it wa…

Jan 5·1 min read·131 words

Wrong direction

In Milan, like in many other cities, public transport tickets have a magnetic strip on the side that is used to check their validity by means of electronic readers. Even now, some years after the intr…

Oct 28·2 min read·235 words

Better not to forget it: Nielsen on users

Here’s an insightful excerpt from Jakob Nielsen’s Alertbox, September 21, 2009: Users don’t care about design for its own sake; they just want to get things done and get out. Normal people don’t love …

Oct 22·1 min read·104 words

Are our passwords safe?

I can’t tell how many times I registered on a website since I started surfing the Internet, and I bet it’s the same for you. We’ve been through countless registration forms, and we had to choose a use…

Oct 19·2 min read·215 words

The importance of packaging

Your experience with some products starts as soon as start you tearing the shrink wrap around them. This is what happened to me last week. I just bought a MacBook and I had been second guessing my cho…

Jun 15·2 min read·310 words

Bittorrent video streaming on Bitlet

We recently updated bitlet.org to add support for video streaming via bittorrent. The applet allows you to watch videos while you are downloading them and doesn’t require the installation of any third…

May 6·1 min read·87 words

Maps for public transport users

Even if modern trains are getting more and more friendly to passengers, many of them are still terribly lacking if we consider this aspect, at least in Italy. As I’m writing this post I’m travelling t…

Jan 25·2 min read·220 words

A new use for margins

While I still read books on my way to work, I recently started reading online articles and blog posts using my phone as well. This morning, while I was reading a column on Alertbox on iPhone, I notice…

Jan 19·2 min read·226 words

Pagination directions

Although pagination is a widely diffused pattern, some times it can still be a bit confusing, when it comes to blogs. Most blogs (and many news sites) have a couple of links at the bottom of the page,…

Dec 21·2 min read·296 words

Itsme: is the desktop metaphor really over?

Last week a friend of mine, knowing my increasing interest in interaction design, forwarded me the poster of a talk held in University of Milano-Bicocca about a new project named itsme. Since I always…

Dec 15·3 min read·474 words

Augmenting cityscape

I had the inspiration for the subject of this post this summer, while having a walk in Milan with a friend. As we passed in front of the XIV century Sforza Castle (italian: Castello Sforzesco), we not…

Dec 1·2 min read·351 words

Why Mac menus are on the top

Disclaimer: despite the title, this is not a post about fast food. 🙂 I always wondered why Apple decided to place their menu bar on top on the screen, rather than inside the window it belongs to. I c…

Nov 27·2 min read·305 words

Business cards v. 2

I used to consider business cards pretty much of a nuisance. Collecting tiny pieces of paper just to copy the same data to a mobile phone or contact manager didn’t seem to be practical to me. But rece…

Nov 23·2 min read·337 words

Informed choice

I’m spending the biggest part of the day in one of those luxury hotels, the ones that are so expensive that no detail is left to chance. One significant detail: if you wash your hands in the restrooms…

Nov 20·2 min read·322 words

How long will it take?

When talking about user experience, predictability is good. Some of the things we interact with in our daily life, though, are lacking from this perspective. Consider traffic lights: they are among th…

Nov 18·2 min read·309 words

Outsource your features!

A new trend is rising: applications which are not designed to fulfill some user’s needs but, rather, to provide some service to other web apps. Until some time ago, if you were to design your own web …

Nov 10·3 min read·524 words

Connecting people

Conferences are great. Not just because you can (hopefully) learn a lot by attending, but also because they give you the chance to meet great people who share your interests and work on the same issue…

Nov 3·2 min read·271 words

Web application platforms?

The everyday life of the average Internet citizen is filled with dozens of impressive web applications, which help to perform any sort of task. Ranging from planning your next trip to Holland to shari…

Oct 30·4 min read·719 words

Hello world!

Any of you who own a WordPress blog should recognize this post title as the one that comes out by default when you create a new blog. The post itself is an encouragement, an example and, possibly, a c…

Oct 25·2 min read·252 words