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
Sport

The Best Road Rides in the Bay Area 🚴‍♂️

The Bay Area (San Jose to San Francisco) is a dream playground for road cyclists: ocean views, towering redwoods, lung-busting climbs, and rewarding descents all within a few pedal strokes. Whether you’re training for a big event or just out to explore, the Peninsula and Santa Cruz Mountains offer some of the most iconic rides in California.

Below are six of my favorite road rides in the Bay Area, complete with Strava route links, ride highlights, coffee stop suggestions, and a few bathroom tips to make your day in the saddle smoother.


Continue reading →
Standard
Chrome, JavaScript

Effortlessly Compare Strava Activities with This New Tool

If you’re a cyclist, runner, or triathlete, chances are you’ve spent more time than you’d like clicking back and forth between Strava tabs to figure out where you gained or lost time on a ride. I’ve been there — juggling two activity pages, scrolling, mentally matching segments, and trying to keep my eyes from glazing over.

That’s exactly why I built the Strava Segment Comparator Extension.

It’s a lightweight, privacy-friendly tool that runs entirely in your browser, lets you quickly compare any two Strava activities, and shows segment-by-segment differences in both time and speed. Whether you’re racing a friend, analyzing your improvement, or just curious how different routes stack up, this extension saves you time and keeps your focus where it matters — the data.

You can also see all the TL;DR here.

Continue reading →
Standard
cloud

Monitor Your Linux Servers Like a Pro – Now Open Source! 🎉

In both of my last startups, we relied heavily on Ubuntu EC2 instances running critical infrastructure. But there was always a missing piece:
A lightweight, self-hosted, dead-simple way to keep an eye on system health without setting up a full Prometheus stack or paying for yet another SaaS.

So we built our own.
And now we’re sharing it with you — excited to announce that Linux System Health Monitor is now open-source under the MIT license.

Whether you’re managing one Linux box or a fleet of servers, this Node.js-based suite has you covered with real-time monitoring, intelligent alerts, and easy deployment.

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
JavaScript, webdev

The Future of Coding: LLMs as Collaborators

The rise of large language models (LLMs) has been one of the most transformative developments in software engineering in decades. Tools like GPT4.1, Gemini 2.5 Pro, Claude Opus 4, and various AI-powered code editors such as Cursor (or CoPilot) promise to change the way we build software.

But as these tools evolve and mature, the real question isn’t if we should use LLMs—it’s how.

There’s an emerging split in philosophy between two approaches: full automation through AI agents and IDE integrations, or human-led development using LLMs as intelligent partners.

Based on real-world experiences and a critical review of LLM-based coding tools, the most effective path today is clear:

LLMs are best used as powerful amplifiers of developer productivity—not as autonomous builders.

Let’s break down why.

Continue reading →
Standard
Business

How to Issue SSL Certificates on AWS with Certbot

SSL/TLS certificates are essential for any web application’s security, credibility, and functionality in today’s digital landscape.

Security is the primary reason certificates matter. They encrypt all data transmitted between users’ browsers and your server, protecting sensitive information like passwords, personal data, and payment details from interception by malicious actors. Without encryption, this data travels in plain text, making it vulnerable to man-in-the-middle attacks and eavesdropping.

Trust and credibility are immediately visible to users. Browsers display clear security indicators for HTTPS sites—a padlock icon and “Secure” label—while flagging HTTP sites as “Not Secure.” This visual cue significantly impacts user confidence and can directly affect conversion rates and user engagement.

Search engine optimization benefits are substantial. Google explicitly uses HTTPS as a ranking factor, meaning certificated sites receive preferential treatment in search results. This can significantly impact your site’s visibility and organic traffic.

Browser compatibility increasingly requires certificates. Modern browsers are progressively restricting features for non-HTTPS sites, including geolocation, camera access, and push notifications. Some browsers even block mixed content or display prominent warnings for HTTP sites.

Compliance requirements often mandate encryption. Many industry standards (PCI DSS, HIPAA, GDPR) require encrypted connections when handling sensitive data. Professional applications simply cannot operate legally without proper certificates in many regulated industries.

Ok, so we got the point that’s important (=critical) – If you’re a DevOps engineer working on an AWS-based setup and need to issue SSL certificates for a domain and its subdomains — like espressolabs.com and *.espressolabs.com — this guide is for you.

In this tutorial, we’ll use:

  • Let’s Encrypt for free SSL certificates
  • Certbot to automate the issuance
  • Route 53 for DNS-01 validation
  • Ubuntu EC2 instance
  • AWS Console
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
webdev

Mastering Clean Code: 15 Key Lessons for Software Developers

Years ago (when Java was ‘new’), I got a recommendation from a good friend to check out “Ah, Clean Code by Robert C. Martin”. He told me, “It’s not just a book; it’s a must-read to anyone who wishes to be a professional software developer.”

He was right. This is still one of the top five books that I recommend developers read. It focuses on some simple but important concepts that will make your Code better, simpler, and easier to debug.

More than aesthetics, clean Code is about clarity, maintainability, and efficiency. Investing in writing clean Code might seem time-consuming, but it pays off exponentially in debugging, collaboration, and scaling efforts.

Think of messy Code as a tangled web: complex to navigate and easy to get stuck in. Clean Code teaches you to weave a well-structured tapestry instead—clear, elegant, and easy to extend.

Here are 15 powerful lessons every developer should carry from this book, with practical examples:

Continue reading →
Standard
Business

Leveraging AI for Efficient Code Reviews

In today’s fast-paced development environment, leveraging AI tools for code reviews can significantly enhance productivity and code quality. As developers, we often work in isolation or wait hours (sometimes days) for our colleagues to review our pull requests. Large Language Models (LLMs) like GPT-4, Claude, and others can provide immediate feedback, spot potential issues, and suggest improvements within your favorite IDE.

This blog post explores how to craft effective prompts for LLMs when reviewing your code in VSCode, with specific examples for backend Node.js/Express developers and React frontend developers.

Continue reading →
Standard