Chrome, JavaScript, webdev

Building a Real-Time Pull-Up Tracker: How I Taught The Browser to Count Our Pain

It started as a simple idea my son brought up: Can we make a web app that counts our pull-ups during our pull-up games?

Turns out, teaching a machine to recognize human suffering is both hilarious and complicated.
What began as a “let’s make a quick pull-ups app” spiraled into an intense journey through computer vision, browser quirks, and a few accidental infinite loops that made our laptop sound like a jet engine.

The “Simple” Goal

I wanted to automatically count pull-ups using a web camera.

Easy, right?

Just detect a human, see when they go up and down, and count.

Continue reading
Standard
Business, life

Nine Mental Models to Stop You from Making Dumb Decisions

We all think we’re rational.

We’re not.

Most of the time, most of the people are just apes with phones making pattern-matching errors at scale. If you aren’t sure, just look around.

Shane Parrish’s The Great Mental Models, is a antidote — a toolkit for thinking clearly and making fewer stupid decisions. Hopefully.

Btw, I wrote about it in the past as I ‘took’ ideas from the great Charlie Munger:

Below are nine models I keep coming back to, rephrased for the real world (and with fewer academic eyebrows raised).

Continue reading
Standard
Business

10 Startup Lessons from David Deutsch’s The Beginning of Infinity

David Deutsch’s The Beginning of Infinity isn’t a business book. It’s a bold meditation on science, philosophy, and human progress. But buried in its pages are principles that can reshape how startup leaders think about building companies, products, and cultures.

Startups are problem-solving machines.
Problems never stop coming; solutions never stop creating new challenges. That cycle is the essence of growth. Deutsch gives us a framework for seeing this not as a burden, but as the path to infinity.

Here are ten core lessons from the book, translated into practical guidance for startup leadership, with examples of how a CTO might put them into action.

Continue reading
Standard
Business, webdev

Scaling Engineering Teams: Lessons from Google, Facebook, and Netflix

After spending over a decade in engineering leadership roles at some of the world’s most chaotic innovation factories—Google, Facebook, and Netflix—I’ve learned one universal truth: scaling engineering teams is like raising teenagers. They grow fast, develop personalities of their own, and if you don’t set boundaries, suddenly they’re setting the house on fire at 3am.

The difference between teams that thrive at scale and those that collapse into Slack-thread anarchy typically comes down to three key factors:

  • Structured goal-setting
  • A ruthless focus on code quality
  • Intentional culture building

Let me share some lessons I learned from scaling teams at Google, Facebook, and Netflix. Here are a few frameworks, metrics, and tools that actually work when you’re trying to scale from 10 to 100 to 1,000+ engineers—without losing your mind or your best people.

Continue reading
Standard
Business, JavaScript, webdev

Craft Exceptional Web Experiences as a Full-Stack Engineer

At EspressoLabs.com, we’re on a mission to redefine the future of IT/Security management through exceptional user experiences and cutting-edge technology.
We believe that enterprise software should not only be powerful and scalable but also intuitive, elegant, and a joy to use.

We’re building a platform that merges AI-intelligence with seamless design—and we’re looking for a Full-Stack Developer who shares our passion for creating meaningful, impactful technology.


Continue reading
Standard
Design, webdev

Essential System Design Tips for Startups

You’re launching your first startup… Well, Congrats!

Whether it’s a SaaS invoicing tool, an e-commerce shop for handmade goods, or a new social app, you’ll quickly hit a truth: system design is your blueprint.

Done right, it makes your app boringly reliable. Done wrong, you’ll spend more time firefighting than building features.

This post is based on Sean Goedecke’s excellent piece on system design, reshaped with a founder’s lens: lean, practical, and ready for bootstrapped growth.


Continue reading
Standard
life, Sport

Weather 4 Bike: From Forecasts to Ride Decisions

Why

Most weather apps just tell you the numbers—temperature, wind, UV, etc.—but as cyclists, we need to know what those numbers mean for the ride.

Weather 4 Bike bridges that gap: it translates raw weather forecasts into clear, activity-aware guidance for road, gravel, and MTB. With one glance, you know whether to head out, wait, or change routes.

Continue reading
Standard
JavaScript, webdev

EspressoLabs Coding Challenge: Build a Real-Time Chat App

At EspressoLabs, we’re always on the lookout for talented engineers who can move fast, think clearly, and build scalable systems. Our home assignment is designed to evaluate just that — and we keep it focused and time-boxed.

“Talk is cheap. Show me the code.”
– Linus Torvalds

Continue reading
Standard
cloud, webdev

How to Use ngrok and LocalTunnel: Expose Your Local APIs to the World

Intro

As developers, we often face the challenge of testing our local applications with external services, webhooks, or mobile devices. Whether you’re developing APIs that need to communicate with AWS/GCP/Azure services, testing webhook integrations, or simply want to demo your work from different devices, exposing your localhost to the internet becomes essential.

This guide will walk you through two popular solutions: ngrok and LocalTunnel, showing you how to securely expose your local development server to the world.

What Are Tunneling Services?

Tunneling services create a secure tunnel from a public endpoint to your local machine, allowing external services to reach your development server without complex network configuration or deployment.

Common Use Cases

  • Testing webhooks from third-party services (Stripe, GitHub, etc.) — You can connect your local code directly and debug it more efficiently.
  • Sharing your work-in-progress with clients or team members — Instead of pushing it to some remote server. Useful in all the cases, where you are still ‘not ready’.
  • Testing mobile applications that need to connect to your local API — A must have in almost all cases.
  • Integrating with AWS services that require publicly accessible endpoints
  • Cross-device testing and debugging
Continue reading
Standard