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.

AWS 101 – A Teaser: What to Expect and When

This past three months I have been working with fellow software developers and tech bloggers Tom Hombergs and Philip Riecks on a new project called AWS 101. So far and for the most part, we've been flying under the radar (the project is developed in the open though, see below) but the time has come to give you a little information about what to expect from this. The basic idea behind AWS 101 is to provide software developers and businesses with basic templates, ... Read more

Running A Local Angular Development Environment Behind A Spring Cloud Gateway Service

Having multiple microservices running behind a reverse proxy / API gateway in lieu of a single monolithic back-end application is a common pattern these days. With such an architecture it often comes in handy to have an Angular application that serves as a front-end for such a modularised back-end be served from behind a reverse proxy running locally as well in order to treat it is if it were running on the same host and port as the back-end. Not only will ... Read more

“Paging with Spring Boot” by Tom Hombergs: A Guide to Paging and Pagination in Spring-based Web Applications

In his article Paging with Spring Boot software engineer Tom Hombergs (a former fellow student) provides an in-depth explanation of paging and pagination concepts and how to implement those in web applications with Spring Data and its Pageable interface. The article covers aspects such as sorting, usage with Spring Data repositories and testing. It's a useful reference for iteratively retrieving and displaying a larger amount of items from a database in a Spring Boot and Spring Data context in an efficient manner. There's ... Read more

OAuth 2.0 Authentication with Jira – A Spring Boot Example Application

When dealing with the specifics of authentication techniques and protocols such as OAuth the devil often is in the detail. While the OAuth 2.0 protocol generally is easy to grasp and simple to use implementation details for specific authentication providers can easily have you hit a snag fairly quickly. Documentation and examples sometimes are outdated or scattered across several - sometimes contradictory documents. Additionally, examples for the authentication provider you want to use might not have been written with your framework of ... Read more

R2DBC: Reactive Relational Database Connectivity for Java and Spring

As I mentioned in a blog post last week with Reactor and Spring WebFlux reactive programming has come to Java and the Spring platform. R2DBC is relatively new project that aims to "to bring a reactive programming API to relational data stores". While currently still considered experimental, R2DBC endeavours to introduce reactive programming to how we access relational databases (reactive relational, hence the R2 in the name). This means that instead of the traditional way of querying SQL databases imperatively with prepared statements ... Read more

Reactive Programming with Spring Boot and Spring WebFlux

Reactive Programming and its functional incarnation reactive functional programming are declarative programming paradigms that with the advent of reactive extensions for JavaScript such as RxJS have become immensely popular. The JavaScript event loop and the run-to-completion behaviour it entails as well as Node.js's non-blocking I/O calls lend themselves to an event-driven programming style that deals with asynchronous behaviour where both number and frequency of events aren't known beforehand. Reactor is a library that introduces this paradigm to Java. Spring WebFlux is a ... Read more

JSON Schema to TypeScript declarations: Keeping Client and Server Models in Sync with Spring Data REST and Typescript

With web applications a separation between client and server is commonplace nowadays: While the server (also often called back-end) deals with the underlying model, data storage and the predominant part of the business logic, the user interface and user-facing behaviour in general is realised with JavaScript, HTML and CSS on the client (also referred to as front-end), i.e. the user's browser. Frequently, frameworks such as Angular are used in order to facilitate development and make code easier to read and generally more ... Read more

JHipster: Generate And Bootstrap CRUD Apps With Spring Boot And Angular

The previous two posts in my series on helpful tools for developing CRUD applications were about tools that addressed very specific problem areas: API format specifications and code generation from those specifications in particular. This post will be both less about APIs and solving specific CRUD-related problems but about a tool that deals with CRUD app requirements in a comprehensive manner. This tool I'm talking about is called - not so slightly tongue-in-cheek - JHipster. Both inspired by tried-and-true frameworks like Ruby on ... Read more

Using Netflix Zuul As a Reverse Proxy / API Gateway

Zuul, which like the service discovery tool Eureka and the fault tolerance library Hystrix is part of Netflix' cloud orchestration stack, is a reverse proxy / API gateway. A reverse proxy conceptually works like this: A reverse proxy allows you to route requests to a single domain to multiple backing services behind that proxy. This can be conducive in situations where you want to break up your application into several loosely-coupled components that externally, that is facing the user, nonetheless act as if ... Read more

Deploying Spring Boot applications as old-fashioned WAR files

Spring Boot is an opinionated convention-over-configuration framework for creating stand-alone Spring-based Java applications. Its objective is to provide you with a preselected best practice choice of libraries (both from the Spring platform and by third parties) for a given task, e.g. building a web application that connects to a database and provides REST resources creating a scheduled batch task that exports and aggregates data from various data sources providing an API that connects to SOAP Web Services It both helps you with getting started quickly and ... Read more