Just finished sailing the world aboard sailinghannahpenn.co.uk.

Now working at lightbug.io

Previously a staff software engineer working for Wikimedia Deutschland on various projects including Wikibase, Wikidata and MediaWiki.

My side projects are numerous, and you can read about them on a dedicated page.

I use the username “addshore” in most places, such as GitHub, Mastodon, Twitter, Keybase & Wikimedia. Hence the name of this site.

Take a look at my latest posts or various projects.

You can also get in touch with me using my contact page.

Latest Posts

  • Autoreload go code on code change
    For developers, the ability to autoreload code upon any changes is nothing short of a game-changer. It not only streamlines the development process but also fosters an environment of continuous improvement and experimentation. There are so many packages for languages such as JavaScript for such a behaviour, but … Read more
  • Automatic cobra command registration with fx
    Cobra is a popular Go package for creating CLIs. It provides a lot of functionality for creating commands, subcommands, and flags. However, it can be tedious to manually register all of your commands. fx is a Go package that provides a dependency injection framework. It can be used … Read more
  • A copy-paste go SQL mock for GORM
    When it comes to writing robust and reliable tests for your Go applications, having a well-structured and efficient testing setup is crucial. One common challenge in testing Go applications is dealing with database interactions. To ensure that your code functions correctly, it’s essential to create a controlled environment … Read more
  • Verifying Wikimedia user page links on Mastodon
    While reviewing the ongoings of the 2023 Wikimedia hackathon, I learned about the RealMe MediaWiki extension, which is already deployed to Wikimedia sites and allows verification of URLs that appear on user pages within other software or platforms, such as Mastodon. Link verification for dummies Imagine you want … Read more
  • Dependency injection in go using fx, and replacing services for test
    I’m writing a new go application and ended up giving fx (by uber) a try for dependency injection. The getting started docs were brilliant for my use case (creating an API), but the examples for how to inject mock services for tests were lacking, so I decided to … Read more