RSSAmplifier

Blog

(untitled)

Recent posts

joshghent.comRSS feed ↗148 posts

Latest posts

Is software ever done?

There's a comment on Hacker News about Netflix that I keep coming back to: Company starts Makes things better to get a larger market share Gets a mini-monopoly (large enough share that inertia and name recognition can preserve its market share) Slowly but deliberately gets worse to increase profit margins I agree with every line. But it left me chewing on something else. Is software ever "done"?…

How I build products with AI

LLMs have totally transformed the way I work and create new products. What used to take me months to get to an MVP now takes days, which means I can run experiments and actually look at the results instead of arguing about them in a doc. Building a few of these did surface some problems. Huge inconsistencies with tech. Sometimes Claude reached for static HTML pages, other times NextJS. Debugging…

Lessons learned from using GitHub Actions

Since going generally available in 2019, GitHub Actions has cemented itself in the development zeitgeist. It's the default now, about as ubiquitous a choice as Postgres or React was a few years back. I've been using Actions with teams for the past four years and lean on it heavily for personal projects, including a few nifty things built on edge cases in how it behaves. Like all technology it has…

Coffee roasters

I drink a lot of coffee and I keep forgetting which bags were worth reordering. So here's the list. I'll keep adding to it as I work through more roasters. Ratings are out of 10 and entirely my own taste. Blanks are ones I've tried but haven't written up properly yet. Brand Rating Price Bag size Notes Pharmacie 9 Moon Roast 9 Grind 8.5 Lost Sheep 8 Presto 7 Perky Blenders 7 Outpost Coffee 7 Exhale…

Claude migrated me off Authy

When MFA first arrived, Authy became my tool of choice for codes. Over time the quality of the app fell off a cliff, particularly after Twilio bought it. Managing it became a burden and the UI carried a strong sense that nobody involved cared. It also bugged me that my 2FA codes lived somewhere I couldn't get at from the desktop. I had over 50 codes in there. Moving them by hand was never going to…

Technical Project Discovery Checklist

Recently I've had to delve into a lot of legacy products to understand how we can migrate them to a newer, more modern stack. This is something I've done a number of times throughout my career under the broad banner of digital transformation. Systems are always getting older and harder to maintain. The technologies underpinning them fall out of favour or simply become unsupportable. Inspired by…

What's new with Repowarden

I launched Repowarden about three months ago. It started as "a dev in a box that does the boring jobs." It's grown teeth since then. Here's what's actually shipped and why some of it matters more than I thought it would. The thing that changed everything: positioning Originally I pitched it as "automated dependency updates and test generation." That's true, but it's also boring. Dependabot does…

One item purchased, Ten emails

Online shopping is fantastic. A few clicks and you've ordered almost anything from anywhere. But I've noticed a huge uptick in the volume of emails relating to an online order which makes it frustrating to order anything. I recently had a purchase which included the following chain Thanks for your order Create your account We've got your order We've shipped your order We're expecting your parcel…

Anti-Book Book club

The Anti-book book club started as an excuse to meet with friends every month or two. I wanted to document what the idea was and how it worked. Regular book clubs all chose a single book to talk about. There are a few disadvantages to this though: It doesn't cater to personal preferences on the book You all need to buy the same book By contrast, the anti-book book club is where we all chose a…

Supply Chain Irony

There is a certain irony that large organisations carry out a myriad of checks, due diligence, impact assessments, contract reviews and more for any and all business they themselves do business with. But, their team of developers npm, pip, or cargo install any and all dependencies built by a single person on the other side of the world. This is not to say open source projects are untrustworthy.…

Todoist Setup 2026

I’ve used Todoist for almost a decade and completed over 50,000 tasks on there. Over time my setup has changed quite a lot. Previously I used a standard GTD setup - one that Todoist itself lends itself to. If you haven’t read Getting things Done, one thing it defines that anything that requires 2 or more actions as a “Project”. So if you need to plan a holiday, you may have a holiday project and…

Power Puttering

You know those tiny jobs you never think to do until you’re sat on the loo with no paper? Yeah me too. To solve those tiny jobs that don’t deserve dedicated time, I decided to start bundling them together into a sort of power hour - hence Power Puttering. I schedule this power puttering time when I know I have some time free and I do the following (not every week) Refill all the toilet rolls in…

Launch: Repowarden - AI-powered repository maintenance

Today I am launching Repowarden , an AI-powered repository maintenance tool. The pitch is simple: Automated dependency updates Test generation for changed code Custom code tasks based on your rules Everything delivered as clean, reviewable pull requests Why I built it Most of the burden of maintaining my projects falls into a few categories: Death by dependabot PR's that stack up Test coverage…

Thoughts on LLMs and AI

Thou shalt not make a machine in the likeness of a human mind. - Dune LLMs have been with us for a while now, and the rate that they evolve continues to accelerate. As a developer, I was the prime market for these tools. Not just for programming, but for searching the web, technical questions and the occasional cooking recipe. These tools are incredible. Claude Code creates a website in minutes.…

Just launched, PlanPacer - The easiest way to add payment plans to your app using Stripe

I launched a new microsaas - PlanPacer ! PlanPacer offers payment plans for Stripe. Allowing you to create flexible instalment payments and boost your conversion rates. Now the elevator pitch is out the way, here is some more information about why and how I built it - as well as some musings on the advantages LLM’s can give solo founders. Why I built it Whilst in a meeting with some coworker's, we…

Book Notes - The Mezzanine

Nicholson Baker’s The Mezzanine is ostensibly about nothing. An account of a man who purchases shoelaces and milk during his lunch break. That’s it. But within that hour, Baker stretches the mundane into something strangely majestic. A 120-page meditation on escalators, office supplies, bathroom etiquette, and the fragile genius of product packaging. It’s one of the funniest books I’ve read in…

Event Driven Architecture Rules of Thumb

Event driven architectures are a fantastic mechanism for powering decoupled services. But they depend on the contract - the actual data points within each event. As with these sorts of things, there is always an "it depends" of what data should go within events. Therefore, this guide is not prescriptive and should be followed as a "rules of thumb" - guiding principles, not rules. 1. Think about…

ClickOps and IaC - which are Pets and Cattle?

Ancient history tells us that a peoples known as the "sysadmins" or "web masters" used to manually configure servers via the archaic command line. These people literally SSH'ed into machines and ran commands on them. Utter animals. And these peoples then needed to baby the servers. Nursing them as a young child to make sure they never broke, never went down or got tired. Then the cloud renaissance…

Learning to Type Fast

Typing is the conduit by which thoughts flow via the keyboard to the computer. Doing this quickly can massively improve not only your productivity but your flow. Remember when you had a phone that looked like this? Remember how slow it was? It took ages to write something - 'wic iz y we rote lyk this'. If you work as a software engineer, you'll be typing all day - whether programming or more…

Allgood - Instant healthcheck webpage and API for JS/TS projects

Over the weekend, I shipped a new open source project - allgood. It's an npm module designed to instantly add a /healthcheck page to your app. Out the box it supports Express, Fastify and Hono. It could be adapted to use Next as well (although I haven't tested this). After you set it up, you get a page like this: You can find the code on GitHub and the library published on NPM It was a fun project…

Vendor Lock-in is an Imaginary Problem

Vendor lock-in is often cited as a reason to chose on-premise hosting, or to be mindful of "avoiding" it when using the cloud (whatever that means). Whilst there are some compelling arguments to mitigate risks associated with vendor lock-in, I'd argue that this is a completely imaginary problem. 1. You're already locked-in - at every level Vendor lock-in is always discussed through the lens of the…

DynamoDB Considered Harmful

I think DynamoDB is quite a useful database. But, I'm here to tell you should pretty much never use it whether in a greenfield project or a mature product. Let me explain why. 1. It's inflexibility will slow you down. Initially, DynamoDB's speed and schema-less nature can make development fast. Although DynamoDB isn't modelled around schema's (like a traditional SQL database), it is modelled…

An engineers guide to the Solutions Architecture role

For the past couple of years, I've worked as a solutions architect. Originally I stumbled into the role after being offered a contract, but found I'd been doing something akin to it for years. Coming from an engineering background (rather than business), I found I had to make lots of changes with how I approached work. This article is centred around those who are coming from an engineering…

Should I learn to code if AI will replace me?

In the past few years, AI has gone from a nerdy pipe dream to reality. Its use has become commonplace amongst professionals and enthusiasts alike. Some are using it to create art, write tweets or improve their appearance. Although it was predicted that self-driving cars and menial work would be automated, instead it’s targeted a lot of creative pursuits. Already some sectors have seen layoffs as a…

Components of a Great Architecture Diagram

Info - key, author, legend, version history Flow diagrams VPC and markings Services wrapped up Understand the different scopes - overarching be more general "image service" but a more indepth diagram would include the components or even the classes of that service etc. Organise it from right to left or top to bottom Try to avoid the mess of arrows Use the C4 Model Mark clear domain and service…

Set your time zone manually when in the Canary Islands

On a recent vacation to the Canary Islands, I decided to book a romantic evening at a sea side restaurant for my wife and I. Dutifully, with plenty of time to spare, we leisurely strolled along the beach and arrived at this restaurant. But, on first glance it was quite empty. Too empty for a restaurant on a summers evening. When I asked to be seated, they told me they were closed and the table…

AWS Summit 2024

I was fortunate this year to attend the AWS Summit at London's ExCeL. In this post I wanted to outline what the event was like (for a first timer), what I learned and other tips I found. What it was like The conference itself is enormous. Over 25,000 people all flocked to the ExCeL in London to worship at the alter of Werner Vogals - I mean talk about all things AWS. It was good being surrounded…

Markdown for Slides

Working in tech, if you wanted to "share your knowledge" chances are you used Powerpoint to create a presentation. It's been around forever so can run on anything and, on the surface, is simple to use. But, Powerpoint sucks. It really does. The interface is incredibly cluttered, the snap to grid system is completely unhelpful in real world scenarios, and there are just too many options. All I need…

Cool Links from Around the Web

Despite web search providing an interface to a wealth of human knowledge, one thing that it can't crack is finding cool stuff. And that's mainly because cool is relative and hard to quantify. I've stumbled across a bunch of cool sites across the web that you might not have heard of. If you have suggestions, submit a pull request on this blog! Where possible, I've attempted to categorize them.…

Common phrases that probably aren't true

There are a litany of common phrases that are found on lots of packaging and in marketing materials. The problem is, that most of them aren't true. This is a collection of phrases I've come across that just aren't true and why you should be skeptical of them. "Sustainably sourced" - sustainable doesn't mean it's not harmful to the environment "Web scale" - ambiguous and lacks clear definition "We…

Tips for Battling Alert Fatigue

When your first outage happens, alerting and monitoring becomes top priority. You don't want to be woken up at 3am again. So you add alerting. Lots and lots of alerting. But soon enough, the alerts start returning false positives and everyone gets used to the alerts. They become background noise. Alert fatigue is a real problem. And one I've seen at almost every company I've worked with. But the…

What people mean when they say - we do TDD

Test-driven development is that - test-driven. Not test passenger. This means that tests come first. What people usually mean when they say “We do TDD” is that they believe that all the code shipped has tests against it. Rarely in my experience is this actually true. [^1] When the common understanding of a methodology is not true to its original meaning, it ceases all meaning. You then have people…

11ty or Bust

It’s been four years since I last did any major work to my site . But over those years, things have got a little chaotic. Personal websites are usually fairly low down on peoples priority lists. Test coverage, clean code and the like all get thrown out the window in favour of tinkering and writing new posts. At least that’s what happened to me. When I first ported to Gatsby it was fantastic .…

Lambda Warming is an Antipattern

At a certain stage during most monolith to microservice migrations, teams that choose to migrate to Lambda often encounter a classic problem: cold starts. Searching this issue on Google (or DuckDuckGo for those conscious of privacy) yields thousands of results. Strategies abound, from reducing cold start times to using Lambda warmers and other seemingly haphazard tactics. On the surface,…

How to buy a car

Recently, I purchased a new-to-me (used) car. Unfortunately, after I purchased it there was something wrong with it. It wasn't a costly repair but annoying nonetheless. And there are a lot of horror stories of buying used cars. So, I decided to put together a checklist (for myself mostly) that I can run through whenever buying a car (or helping someone else to). The list Before you view the car []…

Business Version 2

I have been working as a software engineer for 8 years. Over the past 2 years, I've been freelancing for startups, enterprises and everything in between. The next stage of my business is pivoting away from pure freelancing work to a more complete offering of products and services. TL;DR I launched a business 24 months ago chiefly to work as a freelancer. I'm now looking to diversify and offer a…

TIL - How to send an SQS message from a Lambda inside a VPC

Sending a message to SQS from a Lambda inside a VPC should be trivial. Unfortunately, this is AWS so they like to make it as complex as possible. Here is the process to follow if you're stuck: Setup The lambda function was in a subnet on the VPC Create a new VPC endpoint with a Full Access policy in that same VPC and subnet as the lambda. You will need to create the VPC endpoint first, then click…

Pull Request Environments in GitHub Actions (with SST, AWS and Cloudflare pages)

Pull request environments are a useful tool to have in your CI/CD pipeline. They allow you to preview your changes in a production-like environment before merging them into the main branch. You can send these environments to stakeholders, QA teams and even customers to request early feedback. Recently, I was tasked with adding this into a project. The project used: SST AWS (for deploying the…

How Part Time has helped me in life

Part time working has been the best career move I've ever made. This change was natural and made a lot of sense. But, I understand it's hard to fathom for many people. Do I just sit around? Do I actually get anything done? I wanted to expand on how I'm working now and why I believe it will be the next era of working. I believe that in the coming decade, just as remote work has arisen this decade,…

Why are software companies so obsessed with doing anything but work?

Recently, my favourite time building software I've ever had has been developing Loginllama. It's so abundantly simple. Just NextJS pushed to Vercel. I don't write fancy commit messages - just "x". And then deploy straight to production. Creating a new product ❌ No development environment ❌ No local development ❌ No commit messages (just "x") It's the fastest I've ever shipped. — Josh Ghent…

Lifehacks

Inspired by https://guzey.com/lifehacks/ Last updated : 2023-06-09 you'll get far more benefit from reading books than anything on the web Be cautious of people who overcomplicate things be requirements led ask good questions time spend configuring a system (productivity, software, computer) is time wasted. the goal of a productivity system is to be simple and reduce cognitive overhead. evaluate…

Setup a Repo in Github

I end up creating quite a few repos in Github for customer projects. And I always end up having to remember how to best set them up. In line with the whole "blog-umentation" thing, I thought it would be best to write it down for myself. This setup lends itself to a "modular monolith" setup but can be used for any kind of setups. Features This setup brings you the following ✅ Conventional commits…

SQS, SNS, Eventbridge, DynamoDB - Chosing the right queue system in AWS

AWS has so many different queuing services. SNS Eventbridge SQS Amazon MQ DynamoDB - a database but also can trigger lambda's so it's kind of a queue! For newcomers to AWS, having so many solutions for a seemingly simple problem can be overwhelming. Here is a breakdown of each queuing service and when you might use it. SQS Sending : 1 to 1 What it is: Literally a "simple queue system". Does what…

Raising £1000 for MSF

TL;DR I'm raising money for Medicins Sans Frontiers by running my first half marathon. You can donate here I love running. It's such a simple exercise. All you need is some good shoes, good music and, ideally, good weather. I love that I can run literally anywhere I am in the world and see new things and explore the terrain. When I first started, 5 kilometres was like climbing Everest. I wouldn't…

Whimsical Software

Software takes itself too seriously. It's time to have some fun. For far too long, software has been designed and created around one single metric - revenue. And often, increasing revenue creates negative behaviour for us - the humans. Designs are created to maximize clicks and to be more addictive than nicotine. We are constantly bombarded with notifications and alerts, and we are forced to make…

Devblog - LoginLlama 001

I'm starting work on a new SaaS! I want to document my process because I used to love devlogs on tumblr and tigsource. I am creating an API-as-a-Service that monitors suspicious login attempts. At the moment there is a couple of solutions in this space. But they fall down in a few areas Bad pricing Bad marketing Rigid integration path. In the case of the main competitor, they make it so they have…

Rules of Thumb for creating API's

Building good software often starts by having good principles upon which to design it upon. But, principles are high level and so often don't allow for much practical application. On the other hand, rules, although more specific and practical, are used by many as something to bash others over the head with. In both cases, these are hardly desirable to build good software. What we need, is…

Simple sites

I saw a tweet the other day from Dan Rowden that hit on a class of software I really love. Simple, small, minimalist tools are in ascension. And I like it. Check also: https://t.co/objPWGsriu https://t.co/U2i8tW9Qq3 https://t.co/GYt5FPPEbb https://t.co/snSoIs6UPY https://t.co/CLXFQGqMOW — Dan Rowden ⚡️ (@dr) February 14, 2023 In creating my "digital garden", I wanted to publish a list of these…

You can't fix engineering culture with communication

It always bothers me that people say that "communication" is the problem in engineering organisations. We have near-constant access to each other via Email, Slack, JIRA and even GitHub PR comments. Saying "communication" blindly is like telling a potentially Olympic runner to "run". That might be part of the overall strategy, but it's an oversimplification. For example, if the problem is that a…

The Cobra Effect and Software

We like to focus on inputs, not outputs. Inputs are simple. Sugar for baking, metal for factories and petrol for cars. Software is no different. But by focusing on inputs, we often encourage the dreaded cobra effect . Basically, we incentivize bad behaviour. For example, let's say we have metrics for a team to write 30 tests a sprint and maintain 90% code coverage. On the surface, it sounds good!…