my blog. for you.

Let’s talk digital.

I’m an independent IT consultant and entrepreneur in the Internet and software business. I’m interested in design, enterprise applications, web apps and SaaS products. I design and develop business solutions and applications. I help companies in terms of software quality and knowledge transfer, e.g. with Angular and Spring Boot.

Optimising Docker Image Sizes: “Self-extracting” Node.js Applications

As a follow-up on last week's article on tools for inspecting Docker images, and Docker image sizes in particular, today I'd like to introduce another - more custom - approach for reducing the size of Docker images for production deployments. As a means of shaving off an additional 50 MB from the packaged application in question I came up with an idea somewhat reminiscent of the self-extracting archives of yore (of the WinRAR and 7-Zip flavours, for instance) for reducing the size ... Read more

Tools for Inspecting Docker Images

Recently, I needed to inspect a Docker image in order to optimize its size for distribution and deployment on an ARM-based industrial microcontroller with rather tight bandwidth constraints. Once deployed at customer sites, these controllers typically don't have an Internet connection but still need to be updated occasionally, via the local network in that case. Since there's no guaranteed minimum network speed in this type of environment, yet software updates still have to complete within a relatively short period of time, optimizing ... Read more

Kent Beck’s Novel Approach to Software Quality: test && commit || revert

In a Hanselminutes episode from December last year I heard preeminent programmer and agile advocate Kent Beck talk about his intriguing approach to creating working, high-quality code. In line with the steps this approach involves he calls it test && commit || revert. In lieu of the TDD circle of life (write test - test fails - write code - test passes - refactor - test fails ...) test && commit || revert has you commit each time when after a code ... Read more

Designing Delivery and Moving Beyond Products

I'm a frequent attendee at Lean DUS, a regular event organised by the fantastic folks of sipgate. At LEAN DUS #23 earlier this year Jeff Sussna gave a talk on moving beyond products and unifying design and operations. Jeff runs a consulting company called Sussna Associates, which aims to help businesses to establish a comprehensive, continuous service delivery process. He also condensed his expertise in a book called Designing Delivery, which outlines a continuous value creation process involving design thinking, agile software development ... Read more

Varying Degrees Of Software Quality And What To Do About It

When working on client projects I come across copious amounts of source code, which sometimes is very well-maintained, sometimes less so. The various code bases are as diverse as their owners and respective stakeholders: A few come with an inherent sense of quality, lots of unit tests serving as the specification for the product. They're typically delightful to maintain and extend. Some though at times leave the impression of having been cobbled together in a rather haphazard, impromptu manner in order to solve ... Read more

Advice On Improving JavaScript Test Speed (by Shyp Engineering)

On their blog engineers of logistics service Shyp (defunct) talk about how they improved the turn-around times of their JavaScript test suite by an order of magnitude of 3 (i.e. 1000x), which is no small achievement. In a modern software development process continuous integration and continuous deployment play a vital role. These ensure that your software always is in an deliverable, tested state and ideally is deployed to production systems in a timely manner when a change has been made. This process ... Read more

Being the build guy

Being the build guy, i.e being the one who is responsible for a smooth build and deployment process on a software project is a role that's usually disliked by developers: It means a lot of system administration rather than coding. If something breaks and development grinds to a halt the burden of getting the project on the road again usually is on the person who manages the continuous integration server. However, I think being the build guy on a project actually is ... Read more

Continous Integration with Circle or: Coming Full Circle

I've recently tried out Circle, a hosted continuous integration service, and I'm quite thrilled about it. Registration / login works via GitHub. Once logged in, Circle lets you choose a GitHub repository and starts the first build right away. Circle claims that setup is as easy as: Sign up to Circle, Give Circle permission to access GitHub on your behalf, Click on a project repository From my experience so far this claim is absolutely correct. Configuration is completely automatic. I've only tried it with Rails so ... Read more