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.

Using Swagger to Generate Client SDKs for REST APIs

These days Swagger is a popular, easy-to-use tool for (semi-)automatically documenting REST APIs on-the-fly. For example, in order to document a REST API created with Spring Boot and Jersey literally all you have to do is add these two entries to your Maven pom.xml: [xml] <dependency> <groupid>io.springfox</groupid> <artifactid>springfox-swagger2</artifactid> <version>2.6.1</version> </dependency> <dependency> <groupid>io.springfox</groupid> <artifactid>springfox-swagger-ui</artifactid> <version>2.6.1</version> </dependency> [/xml] You'll then get a ready-made documentation for all your REST API endpoints. An example of how this looks like can be seen here. While this already is very useful in that it helps with properly documenting your software, especially ... Read more

Should Web Apps Behave More Like UNIX Programs?

Recently, through various discussions about the nature of the web and web applications I came up with an intriguing (to me at least ...) idea: Web apps should behave like UNIX command-line tools. Please hear me out and let me elaborate. Probably the most widespread pattern in modern web app development is that of single-page applications (SPAs). Though that particular term isn't used as abundantly anymore as it used to be a few years ago the design pattern it promoted still persists: Web apps ... Read more

Codrops – Web design inspiration

Codrops is a blog that shares web design inspiration, trends and techniques. These days when thinking about your next web application's design it can be quite tempting to think "Ah, I'll just use Bootstrap and be done with that.". Although frameworks such a Bootstrap certainly aren't a bad start as they provide web apps with a common ground and predictable UI components - a minimum design standard if you will - they are just that: A start. In order to really help ... Read more

Testing REST Services with REST Assured

RESTful service testing can be unwieldy and difficult to get started with. Providing a REST API implies using a variety of technologies and techniques such as HTTP, JSON, authentication, various payload transfer mechanisms and content types. This is where a tool that abstracts over these technical details and facilitates their application comes in handy. REST Assured is a high-level DSL for testing REST APIs. It draws upon behaviour-driven development (BDD) and hence makes for readable test descriptions. A typical acceptance test with ... Read more

The Art of the README

Just recently I was reminded about an obvious and vital but all too often neglected aspect of good quality software: Creating and maintaining a README file to both onboard new developers and to get users started with your software easily. While certainly essential in the context of open source software maintaining a high quality README is also relevant regarding proprietary / company-internal software that's limited to only a select circle of developers and users: It enables both your customers and internal users ... Read more

What Causes Over-engineering and How Can You Prevent It?

Last year software engineer Fagner Brack wrote an interesting and thoughtful article on "How To Accept Over-Engineering For What It Really Is" The article is very much worth the read in its entirety. There are a few key takeaways though I derived from it personally: I like the definition of over-engineering (quoted from Jeff Sternal) as "Code that solves problems you don’t have.". Fagner's conclusion is that what constitutes over-engineering depends on both context and the people involved. Over-engineering is usually brought about by unclear ... Read more

Clear Acceptance Criteria: The Key to Good Software Quality Right from the Start

Actually it should come as no surprise that clear acceptance criteria are a quintessential prerequisite for high quality software that meets both design requirements and customer demand. All too often however, acceptance criteria for software products are either non-existent or vague and ambiguous at best. Who hasn't come across 'acceptance criteria' such as "The app should have a modern UI." or "The application should be easy to use."? What do bromides like that amount to? Not much, unfortunately. Elena Kulik of RubyGarage wrote ... Read more

Design Patterns: Event Sourcing and Command and Query Responsibility Segregation (CQRS)

Event Sourcing and Command and Query Responsibility Segregation (CQRS) are system design patterns that allow you to deal with event streams in a consistent manner. Common line-of-business applications typically are built using the MVC design pattern with the database tables representing the model tier in MVC as the single source of truth for the application state. Event-based systems are different - and inherently more complex - in that their single source of truth is the stream of events that led to the current ... Read more

‘Agile’ isn’t a new way of doing software development, it’s the normal way

Recently, during a conversation on software development "methodologies" (just the word "methodology" makes me cringe because it's a needlessly convoluted and complicated notion) one of the participants said something along the lines of "'Agile' isn't for everyone. Most people just aren't cut out for doing software development that way.". I strongly contest that notion. 'Agile' has become some bullshit bingo term that's slung around in order to perpetuate precisely those misconceptions the Agile Manifesto intended to upend. 'Agile' unfortunately is often seen ... Read more

Dan Bricklin – Inventor of the Electronic Spreadsheet

Today startup entrepreneurs are celebrated for disrupting industries and changing the world. Marc Andreessen is famously quoted with the statement "Software is eating the world!". Back in the days when software was nothing but a nascent industry, Dan Bricklin both changed the world with software, disrupted not one industry but several at the same time and in fact almost single-handedly created the industry of small business software. His name nowadays isn't exactly well known as is the software he created. The new ... Read more
« Previous PageNext Page »