Ben Barbersmith


— Last updated on Mar 1, 2021

This page hosts a slowly growing collection of products, projects, tools and toys I’ve created over the years.

SQL for Humans

I’m building a course on SQL for developers who write JavaScript, Python, Java, C#, PHP, Ruby, Go, etc. and who are uncomfortable with SQL.

Stop me if this sounds like you:

  • Uses a database.
  • Wants to ship fast.
  • Doesn’t like writing SQL.
  • Uses an ORM.
  • Fears poor database performance.
  • Doesn’t know what their database can do.

Yeah — me too, 7 years ago.

…then I learned all about SQL at Google and by building my own database-heavy products. Now I want to teach developers everything they need to use SQL and database technology with confidence.

Check out the course and curriculum and let me know what you think.


Observant finds and prioritises missed revenue opportunities for YouTube content owners. It processes gigabytes of YouTube reports on a weekly basis and figures out how much money is being left on the table. It tells content owners which actions they can take to grow revenue, and prioritises action based on the estimated upside.

(If that elevator pitch doesn’t mean anything to you, don’t worry — I’m targeting a super niche B2B audience.)

This product was born out of two things:

  1. Noticing that the same problem came up repeatedly in several YouTube consulting gigs.
  2. Realizing that I had spent several years solving almost exactly the same problem while I worked at Google.

I was able to I build the MVP and sell my first licenses in under 6 weeks.

The frontend uses Svelte and Tailwind CSS. The backend uses Sapper on top of Express and Firebase (Firestore and Storage). The actual data processing happens in a Dart executable.

I’m currently in the process of rebuilding the product, scrapping much of the MVP code. My motivations are:

  • Improving testability and maintainability now that this is a five-figure product, rapidly heading towards becoming a six-figure product.
  • Improving scalability of the data pipeline as I move from <10 customers with <10GB of weekly data to over 100 customers with up to 1TB of weekly data.
  • Making data analysis easier as I improve the quality of recommendations and refine revenue estimates.
  • Improving UX as I learn more about how my customers will fit the product into their daily workflows.

The new version will use TypeScript instead of JavaScript and will lean heavily on Postgres for data storage and processing — no more Firestore, no more Dart. Nothing else in the stack will change until Sveltekit (Sapper’s spiritual successor) is ready.

Exam Copilot

Exam Copilot helps cadets training to become commercial airline pilots ace their ATPL exams in the UK and Europe.

Virtually everyone who takes the exams to become an airline pilot uses a “question bank” to prepare. By and large these are overpriced websites designed at least a decade ago that serve up:

  1. Leaked exam questions which are reproduced without permission, and
  2. Half-remembered exam questions that students posted to Facebook after their exams.

They’re out-of-date, incomplete, and inaccurate. And probably violating copyright.

Exam Copilot does things differently. Every question is devised by experienced ATPL theoretical knowledge instructors with years of ground school experience. Our questions cover every aspect of the syllabus. They mimic real-life exam questions. And they have accurate and carefully constructed answers, trying to trip you up — just like the real exams.

On top of that, Exam Copilot has intelligent randomization algorithms that can generate literally millions of unique questions for every calculation-based topic on the syllabus. Cadets need never see the same question twice.

I built the site in about 3 months. The frontend uses Svelte and Tailwind CSS. The backend uses Sapper on top of Express and MongoDB. The actual smart stuff happens in a Dart library transpiled to JavaScript with dart2js.

Spell Tracker for Pathfinder 1e

Spell Tracker for Pathfinder 1e is an app to track spell casting and spell preparation for magic-wielding characters in Pathfinder RPG. It was built to scratch my own itch — after a few years of playing a wizard in Pathfinder, I got seriously fed up of trying to plan my spell-casting each day and keep track of what I’d prepared and cast.

It turns out that the wonderful folk at /r/Pathfinder_RPG loved it and provided amazing feedback and feature requests. The software grew from a personal web-app used by three people to a cross-platform Flutter app that runs on Android and iOS, syncs to a backend server written in Dart on Aqueduct, and has thousands of active monthly users.

In 2018, I launched Spell Tracker Pro — a monthly subscription that adds a ton of features. It was also the first paid product I launched. Today it has around 150 customers and pays about 15% of our family’s monthly bills. Not bad.


Sundial is a telephone number to timezone conversion tool. Give it a telephone number (in any old format) and it’ll tell you the timezone to which the number corresponds. Very handy when you need to call another country or state and you don’t know what the local time is.

Sundial is available under the MIT licence and you can fork the source code on Github.


We’re all seen the classic “LOVE / HATE” tattoos where each letter is tattooed onto a different knuckle. In 2010 I saw a tweet from Twitter comedian and voiceover performer Scott Fletcher joking about how awesome a random knuckle tattoo generator would be.

It’s a simple idea: pick two random four letter words, and tattoo them onto a pair of fists. Hilarity is bound to ensue, so I built one. Now you can generate a random knuckle tattoo of your very own.

Fistbump is available under the MIT licence and you can fork the source code on Github.

Mar 1, 2021 @benbarbersmith