[ ] Tag

Software Development

A database with no way in: connecting a serverless app to a private RDS with no public access
A database with no way in: connecting a serverless app to a private RDS with no public access

Private means no route, not just a closed door When a client's security requirements say the database may not be reachable from the internet, the interesting work isn't securing the database, it's reaching it. We were building a serverless application: a Next.js front end rendered on AWS Amplify, with its data in a Postgres database on RDS. The requirement was that the database have no public endpoint at all. Those two facts don't obviously fit together, because the part of our stack that ne…

The same result twice: Debugging an infinite scroll that duplicated, skipped, and died
The same result twice: Debugging an infinite scroll that duplicated, skipped, and died

Three sentences, three bugs The bug report was three sentences long and, as it turned out, described three different bugs. Users on a filterable result list were occasionally seeing the same entry twice as they scrolled. Support had also noticed the total count didn't always match what you could actually scroll through. And once in a while, scrolling simply stopped loading anything, no spinner, no error, no network request, until the page was refreshed. None of it threw. Nothing appeared i…

Deploying a Next.js App to AWS Elastic Beanstalk
Deploying a Next.js App to AWS Elastic Beanstalk

Why Elastic Beanstalk for a Next.js app Elastic Beanstalk is one of the more pragmatic ways to run a server-rendered Next.js app on AWS. It provisions EC2 instances behind an Application Load Balancer, handles scaling and health checks, and still leaves room to drop in custom nginx config, ALB rules, and CloudWatch monitoring through `.ebextensions` and `.platform`, without having to hand-build all of that from scratch. This isn't the only way to run Next.js on AWS, and it's worth saying th…

Off the Edge: How AWS costs were cut by ~63% by moving off serverless
Off the Edge: How AWS costs were cut by ~63% by moving off serverless

Understanding why serverless stopped paying off Serverless is an easy sell at the start of a project. No servers to patch, automatic scaling, and pricing that's billed per request instead of per hour. But as one of our client's Next.js applications grew, that same pricing model quietly turned into its biggest cost driver. Moving the project off serverless cut AWS costs by roughly 63% — with the same traffic and the same codebase. Recognizing when a serverless architecture stops fitting a…

7 signs you need a code audit
7 signs you need a code audit

Most people who commission software have no direct way to check what they actually received. You can open the app, click through the screens, and see that it does roughly what it was supposed to do. What you cannot see is how it was put together underneath, whether anyone other than the original team could work on it, or what happens the first time it comes under real load. The people best placed to answer those questions are usually the same people who built it, which becomes awkward the moment…

Speed is not urgency, it is never wasting someone's day
Speed is not urgency, it is never wasting someone's day

The sentence that stayed with me I asked a client once why he chose us over an agency twice our size. He told me something I still think about today: "You answered in four hours. The other agency needed four meetings just to answer anything at all." That sentence stuck with me the way a good story sticks with you, the kind you replay in your head weeks later because it captures something true about how the world actually works. The customer service line we all know too well Think ab…

From 912 Second Timeouts to Sub-Second Pages: A Web Performance Case Study
From 912 Second Timeouts to Sub-Second Pages: A Web Performance Case Study

The symptom A content platform, a directory-style site with thousands of dynamically filtered listing pages, was showing serious performance problems in a routine site audit. A full crawl of roughly 6,000 pages, combined with PageSpeed Insights (PSI) API data, turned up two things that looked unrelated at first glance: - Server response times were bad, and occasionally catastrophic. Median time-to-first-byte (TTFB) sat around 0.7 seconds, with over 1,500 pages taking longer than a s…

Rethinking the lecture
Rethinking the lecture

Inside Showslide’s new Faculty Partner Program There is a precise moment that every university lecturer knows by heart, you are mid-slide, mid-thought and mid-sentence when you glance up at the room. Some students are locked in, while many others are somewhere else entirely. Their phones are face-up on their desks, or their laptops are open to a browser tab that has absolutely nothing to do with your course material. This is happening because the traditional, one-way lecture format gives th…

Why your tech team is moving at 1990s speed with 2026 AI
Why your tech team is moving at 1990s speed with 2026 AI

Just saw a funny video pointing out this $Billion paradox: companies pay YouTube to show you ads, and users pay YouTube Premium to block those ads. It sounds ridiculous, but isn't the exact same thing happening in tech teams right now? We are aggressively deploying 2026-level AI coding capabilities to write software instantly and then, we drag that lightning-fast code through clunky, disruptive screen-sharing sessions and 1990-style meeting overhead. We are funding maximum velocity, then choking…