Discover how to build your own, offline "LocalStack" for Google APIs using WireMock
and TestContainers. In this post, I will show you how to set up a two-purpose
mocking strategy. By writing your JSON mock responses just once, you can reuse them
to power automated integration tests and spin up a standalone mock server for
local (UI) development. No more production data and sharing of google keys between
developers, no more 403 User Rate Limit Exceeded.
Continue reading →
Over the past few weeks, I’ve been on a rewarding journey.
As a Managing Director who is no longer a full-time software developer,
finding the time to code and keep up with the relentless pace of new
technologies is a real challenge. While my colleagues are experimenting
with the latest frameworks and tools daily, I know I’m not alone in
feeling that the tech landscape evolves faster than the hours in a
day allow — or faster than what client projects typically permit you
to explore.
That’s why I cherish internal projects. Earlier this year I posted about
Posting
our blog feed to social networks using Slack. And recently I set out
to build a couple of internal tools for our Google Workspace
environments, but I decided to try something different than what
maybe most developers would do.
Instead of relying solely on traditional documentation or enabling
an autopilot AI assistant directly inside my IDE or terminal
(like a Claude Code subscription), I used the standard Google
Gemini web client. It comes included with our company’s Google
Workspace account — proving that you don’t need expensive
premium subscriptions or complex local LLMs to get value.
Continue reading →
Two years ago,
we wrote about building a Slack bot
to automatically tweet new JDriven blog posts, and inform us about this using our dedicated internal Slack channel.
Life was simple then. If it was on Twitter, it was "online".
But the social media landscape has fragmented and augmented.
The tech community has spread, at least across X, Mastodon, and Bluesky.
So to reach our audience today, we have to tweet, toot and who knows what to reach them.
We needed to upgrade our trusty Slack bot from a single-channel poster to an omnichannel syndication engine.
In this post, I’ll walk you through how I refactored our Deno-based Slack app to handle multiple platforms,
manage distinct authentication protocols, and ensure we don’t spam our followers with duplicate posts.
Continue reading →
In our TechRadar Spring 2025 edition
we highlighted the IntelliJ HTTP client and Bruno as alternatives to Postman, and also introduced you to Nushell.
This post will focus on the latter.
The goal of Nushell is to take the Unix philosophy of shells, where pipes connect simple commands together,
and combine it with a rich programming language.
Nushell connects both by bringing a rich programming language and a full-featured shell together into one package,
that runs on Linux, macOS, and Windows.
Nushell uses structured data everywhere, for example output of ls command, or REST API calls.
Continue reading →