Image for post
Image for post

Some time ago an acquaintance started a danish version of “Word a Week” on Twitter. She would every week tweet a word that she thought wasn’t used enough. It could be a real word or some old slang. I found it very funny and thought “Why isn’t there a site which lists them”. So long story short I started working on it and was born (I got her permission first!).

The site is very simple. It uses Unsplash to show a background and then a simple black box in the middle with a word, its meaning, and sometimes a quote. …

Recently I have rediscovered my love for Golang. A language that I used to develop in professionally as a consultant.

Since that time the landscape have changed. New tools have arrived on the scene and Go finally have a modules system.

Getting those two to play nicely on CircleCI wasn’t a quick and easy thing for me to do. So I hope by sharing my raw config it can help others.

So what the config is doing is the default CircleCI stuff, like checking out the code. But look at the cache entries. They have been updated to match the new Golang modules cache path. Also it will use go.sum as its cache path. That way it will only be updated if go.sum

This time we are using Rollup instead of Webpack and it is super easy. Also it requires less configuration.

Before going further I suggest you read the other blog post which will explain the conventions behind the Rollup configuration.

Rollup Configuration

// rollup.config.js
import fs from 'fs'
import CloudFormation from 'yaml-cfn'
import typescript from 'rollup-plugin-typescript'
import nodeResolve from 'rollup-plugin-node-resolve'
const defaultConfig = {
plugins: [
output: {
format: 'commonjs',
external: [
const { Resources } = CloudFormation.yamlParse(fs.readFileSync('template.yml'))const entries = Object.values(Resources)
.filter(resource => resource.Type == 'AWS::Serverless::Function')
.filter(resource => resource.Properties.Runtime.startsWith('nodejs'))
.map(resource => {
const file = resource.Properties.Handler.split('.')[0]
const prefix = resource.Properties.CodeUri.substr(8) …

In a world where scalability is everything it is hard to ignore the new wave of “Serverless”. One of the biggest players in this space is Amazon AWS with their Lambda offering.

In this post I am going to try and explain how I set up my AWS Sam projects using Webpack and TypeScript.

The thought behind my approach is to make the CodeUri part of my template point to the Webpack output. Then have Webpack running in “watch” mode in order to recompile when i save a file. This adds the requirement of having Webpack running in the background, which is somewhat a pain. It also requires some manipulation of the entries file. …

Image for post
Image for post

Over the last decade I have started to travel more and more. When travelling a lot one of the constant problems is figuring out how to pay for stuff like food accommodation etc. Without paying millions in fees to your bank or Forex companies. So I was pretty happy when I found out about the new breed of FinTech companies and found Revolut.

What is Revolut?

Revolut is officially an Electronic Money Institution regulated by the FTC in the UK. But really it is an Awesome app for travelling and Forex. Here is a short list that makes it so awesome for travel:

  • Interbank Exchange…

At work we are starting to test Electron and see what we can do with it. Electron gives us several ways to create desktop applications. One of those are as simple as opening a URL in a BrowserWindow. But sometimes we want to do more and run code in Electron based on what happens in the application embedded in our BrowserWindow.

Fortunately Electron gives us access to ipcRenderer and ipcMain which together with a simple preload script makes this quite easy.

So let’s start with a simple Electron app. This will open and use our preload script.

When we receive an event on the postMessage channel we will just use console.log to log some output. If open-url is then triggered we will send a message to the renderer process for our mainWindow.


Henrik Bjørnskov

I build stuff at Relatel A/S, vivid traveller and gear junkie.

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