Or, “How I built Flickr with some events and a pub/sub queue”

Wind blown snow on the side of a tree
Wind blown snow on the side of a tree
Image by the author

In my last note, I talked about how I set up some on AWS to assemble Go code into a Lambda function. At the time, I mentioned that I would be ploughing on into writing up how I used those Lambdas to build — or at least move toward — a personal photo archiving service.

To recap what I want the service to do: I want a place in S3 that I can drop a collection of photos, then have The System have a…


Image for post
Image for post
Bo the dog in the winter sun. Photo by the author

Or, “How I built Jenkins with a few lines of Terraform and some Christmas Cake”.

Almost a year ago I wrote up my comparison of , and hinted at the end that I was going to use Wasabi as part of a personal system for archiving photos. Well, 2020 got fully up to speed around then, and my plans were thrown into disarray.


A dog on a dirt track, looking back at the camera
A dog on a dirt track, looking back at the camera

Over the holiday period I finally settled down to spend some time building a photo archiving service for personal use — you’ll hear more about that incoming days. This also meant that I buckled down to start writing some serious Go code, rather than playing around with initial tutorials and lessons. Here’s how it unfolded.

So, first, some caveats. This is not a how to article. It’s not even a this is how to do AWS Lambda with Go. It’s a quick survey of some of the things I learned, and the journey I went on. Part of that journey…


Image for post
Image for post
Evening sun on the Thames — Photo by the author.

If you start paying some attention to keeping safe on line, it doesn’t take long before you start seeing articles — and advertisements — telling you that you need a VPN. So then — do you need a VPN?

No.

To be a bit more accurate: probably not, under most circumstances.

It might help if I talk about what a VPN is. I could start by saying it’s a Virtual Private Network, but that’s not going to help. Let’s go back a bit. At the highest level, when your laptop or phone is communicating with a remote service, we might as…


There are a handful of problems that keep recurring across my decades of working in information technology. Some problems are simple to address, some are always annoying, and a few of them seem doomed to need re-solving each time.

Image for post
Image for post
Photo by the author

The one on my mind today is that of addresses, and locations. The crux of the problem is this: addresses and locations are two very different things, and yet information system designers and implementers persistently and repeatedly mix the two up, and fail to grasp the subtle complexities of either.

I’ve struggled with the consequences of this in many different arenas…


Russian dolls
Russian dolls
(Russian Dolls — photo by myself)

I love scams. I love the improbable email, and the cunning SMS tricks, and the eternal optimism of the inexperienced con artist. There are few things in the world of technology, and the world of information security, that reveal so much humanity as scams.

There’s one simple technique to inoculate yourself against most scams:

If it sounds too good to be true, it probably is.

The thing about scams is that they appeal directly to our emotions. …


Sunset over the water with a bridge in silohuette
Sunset over the water with a bridge in silohuette

Last time I wrote I spoke at some length about passwords, and why you should use a password manager. The nice thing about sophisticated password managers like is that they usually provide a way to make your passwords shared across your various devices — laptops, desktops, tablets, phones and even smart watches. The big drawback to that is that there is some risk of your passwords being exposed if your device is stolen or used by someone else.

It’s not only passwords that are a problem with mobile devices. For convenience we usually have them set up so that…


If you look online for advice on keeping safe online, two pieces of advice that are usually at or near the top of the list are “use a strong password” and “use a password manager”. Great advice, but useless if you don’t know why. What’s a “strong password”? One that bench presses it’s own weight? A password manager? What does that even mean?

I’ll try to unpack those and explain why “strong password” and “password manager” are actually good advice, and at the top of the list. …


I’ve had reason lately to be thinking about the information that is available for keeping safe on-line. It feels to me that a lot of it is either aimed at experts who worry about keeping a business safe, or else it’s rather too simple and likely to be aimed at your Grandma.

On that basis, I’m going to try to write a series of small pieces aimed at particular topics, keep it simple, but also offer meaningful advice.

Image for post
Image for post
Misty morning on the Thames

So to start with, I thought I’d talk about the risks you face online.

There’s really only three main risks the average…


Early morning lamplight on the Champs Elysee
Early morning lamplight on the Champs Elysee

A few weeks ago I was posed a rather odd question, or rather one that struck me as odd. Some questions, we believe in our hearts, never need to be asked, and yet sometimes they are. This question stuck with me, and deserves some serious consideration.

I’d given a presentation on a framework for thinking about security risks. During the questions following I was asked, and I paraphrase: “doesn’t security slow down progress too much for a startup?” In my surprise I sputtered a somewhat testy response, saying that no, that’s part of the cost of doing business now. I…

Robert Hook

Founder and CTO of Little Dog Digital, with a belief that technology can be simple, easy and fun. 30+ yearsbuilding robust, secure data driven solutions.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store