How orphaned BigQuery storage, Delta retention, DMS right-sizing, and Databricks System Tables became our biggest cloud cost wins.The biggest cloud cost optimization we made wasn’t shrinking clusters.It was deleting data we’d forgotten we were paying for.Like most teams, our first instinct was to tune infrastructure first. Instead, we discovered a treasure trove of hidden costs: orphaned BigQuery datasets, 90-day Delta retention, 24-hour jobs no one monitored, and DMS infrastructure that no longer matched business needs.We stopped treating cloud bills as a finance problem and started treating…
A neighbor’s bulk job drained every ephemeral port on a shared box. Twice. Here’s the one kernel setting that would have stopped it — and the architecture that makes it a non-issue.At 1:38 AM, one of our background-job services started failing. Scheduled jobs — the nudges and reminders we send users overnight — began throwing an error most engineers rarely see:Errno::EADDRNOTAVAIL — Cannot assign requested addressNot “connection refused.” Not “timeout.” Cannot assign requested address. The machine wasn’t saying the other end was down. It was saying it had run out of addresses to call…
Every engineer has a story about the “harmless” change that wasn’t. This is mine.Ours didn’t start with a bad deploy. No risky feature flag, no sketchy migration, no Friday-evening hotfix. It started with a change every ops playbook calls safe:We gave a struggling service more CPU.We went from 1.5 cores to 2.5 cores. That’s it. And within minutes, our lead-creation API — the thing that turns a visitor tapping “Contact” into an actual business lead — stopped creating leads. Entirely across web and app.The twist that cost us hours: the more CPU we threw at it, the worse it got. This is the…
“We have multiple dashboards showing different numbers. Which one is correct?”If you’ve worked in data long enough, you’ve probably heard this question more times than you’d like.Sales reports one revenue figure.Finance reports another.Product Analytics has a third.Executives spend more time debating whose dashboard is correct than discussing what action to take.The natural response is often:“Let’s build a Single Source of Truth.”Sounds simple.Build a few centralized tables.Move everyone onto the same dashboards.Problem solved.Except…it rarely is.After leading an enterprise-wide Single Source…
Photo by Microsoft Copilot on UnsplashAt Housing.com, running product experiments is a continuous cycle. A/B tests go live, collect data, and eventually reach a conclusion. That’s the exciting part. Then comes the mundane reality where someone has to clean up the code .i.e. remove a feature flag, promote a winning variant or revert the loser variant and finally raise a change request.Sounds simple? MaybeIs it tedious and quietly expensive? Yes!lifecycle of a taskThe Problem Worth SolvingAn experiment conclusion ticket typically lands on an engineer’s desk looking something like…
In production environments, debugging alerts can sometimes feel like finding a needle in a haystack. Over the years, I’ve found the OSI (Open Systems Interconnection) model to be a reliable guide during Root Cause Analysis (RCA) of production issues.What is the OSI Model? The OSI model is a conceptual framework that standardizes the functions of a telecommunication or computing system into seven layers:Physical Layer — Hardware, cables, switchesData Link Layer — MAC addresses, switches, network topologyNetwork Layer — IP addressing, routingTransport Layer — TCP/UDP, ports, session…
Optimistic locking is a concurrency control mechanism where we assume that multiple transactions can safely access data without conflict, allowing them to proceed without locking the data upfront. Unlike pessimistic locking, where resources are locked to avoid conflicts, optimistic locking allows transactions to proceed without locks and checks for conflicts only when updating the data. If a conflict is detected (e.g., another transaction has already modified the data), the operation fails, and you can retry it.When Should You Use Optimistic Locking?Optimistic locking is ideal for use in…
IntroductionIn today’s world, effective communication plays an important role in the success of businesses and organizations. With the rise of mobile devices and messaging, businesses continue to find new ways to connect and interact with customers. Gupshup is an interactive platform that provides a powerful API that allows businesses to connect resources in their applications, websites or systems. In this blog, we will explore the advantages and steps of integrating the Gupshup API to better communicate with our customers.What is Gupshup API?The Gupshup API is a set of tools and resources…
What is Socket.io ?Socket.IO is a server-side library for nodejs that enables low-latency, bidirectional and event-based communication between a client and a server using client-server architecture while it is a wrapper around WebSockets For Node.js, it is super easy and simple to use especially when dealing with chat messages or Real-time data.Socket Client-Server ArchitectureHow persistent bi-directional connection is established between client(s) and server ?The connection process between a Socket.IO client and server involves several steps. Below is a detailed breakdown of the key…
In the dynamic world of web development, where user experience reigns supreme, having a web application that functions seamlessly even in offline mode is no longer a luxury but a necessity. Enter service workers — the unsung heroes behind the scenes, making this magic possible. In this blog post, we’ll delve into the world of service workers, exploring what they are, how they work, and how you can harness their power to supercharge your web applications.What is a service worker ?At its core, a service worker is a script that runs in the background of a web application, separate from the main…
2D image (left), 3D rendered image (right)Are you looking to breathe life into your 2D floorplans and visualise them in immersive 3D? With the power of Blender and our innovative process, you can seamlessly convert flat blueprints into dynamic 3D models. Follow along as we unveil the secrets behind this transformative journey.Step 1: Manual TracingThe journey begins with a meticulous manual tracing process. We meticulously outline key elements of the floorplan such as walls, doors, and windows, capturing every detail with precision.Step 2: Blender IntegrationOnce the 2D floorplan data is…
Read at the source
Your visit, your choice.
Optional Google Analytics helps us understand visits. Microsoft Clarity records masked interactions to improve the site. Optional tools stay off unless you choose them. Privacy details.