Blog posts
- 2023-12-01 HTTP APIs, REST APIs, and Others
- 2023-06-20 Some Aspects of Implementing Microservices..
- 2023-06-19 DDD, Architecture patterns, and More..
- 2023-05-23 Should Unit Tests Verify Requirements Only?
- 2023-03-22 sdkman: the Software Development Kit Manager
- 2023-03-21 Cluster Locks and Outbox Patterns
- 2023-02-16 jdbc-audit-proxy
- 2023-02-15 Some Thoughts on Software Architecture
- 2021-03-30 In Defence of Java Checked Exceptions
- 2020-12-29 Checking Git Merge Status
- 2020-12-28 Sybase ASE Stored Procedure sp_jdbc_getprocedurecolumns and Performance
- 2020-12-27 Learning Prometheus
- 2020-10-14 For fun: browser as scratchpad
- 2020-06-14 Book Review: Accelerate (Capabilities, Culture and Metrics)
- 2020-05-10 OAuth2 and OIDC
- 2019-12-08 Learning Kotlin
- 2019-10-31 Creating a Demo Database with Postgresql and Docker
- 2019-01-05 OSNews Various
- 2018-12-29 Learning Python
- 2018-12-09 Data Warehousing
- 2018-09-09 More databases - MemSQL and RocksDB
- 2018-07-18 Threat Modelling with STRIDE
- 2018-05-06 The Graal Virtual Machine
- 2017-08-19 Scala Overview
- 2017-05-16 RabbitMQ Threading Model
- 2017-05-07 Vagrant, Kafka, Kerberos
- 2017-03-18 The Lambda and Kappa Design Patterns for Persistent State
- 2016-06-12 Dropwizard and Hystrix
- 2016-01-21 SQL Nulls and Tristate Logic - Fooled Again
- 2015-12-29 Object Layout
- 2015-12-27 Dell's Self-inflicted Windows Security Hole
- 2015-10-25 Languages and Orchestration
- 2015-06-18 Anaemic Domain Models
- 2015-05-19 Zookeeper Overview
- 2015-03-16 Learning Haskell
- 2014-11-07 Unagile Sprints
- 2014-03-16 Precedence-Aware Evaluation
- 2013-02-26 Encryption in Theory and Practice
Articles
- 2023-12-12 Monorepos and Polyrepos
- 2023-12-01 HTTP APIs, REST APIs, and Others - Pros and Cons
- 2023-06-10 Monads for Object Oriented Developers
- 2023-06-09 Thoughts on Scrum
- 2023-03-21 Generating Change Events with the Outbox Pattern
- 2023-03-20 A Simple Implementation of Cluster-lock/Leader-election
- 2023-03-14 Domain Models - Rich vs Anaemic
- 2023-03-13 Hexagonal Architecture
- 2023-02-15 Thoughts on the Role of Software Architect
- 2021-03-30 In Defence of Java Checked Exceptions
- 2020-12-28 Sybase ASE Stored Procedure sp_jdbc_getprocedurecolumns and performance
- 2020-12-27 Learning Prometheus and PromQL
- 2020-05-13 Drawing Diagrams with Dot
- 2020-05-10 An Architectural Introduction to OAuth2 and OpenId Connect (OIDC)
- 2019-11-05 Unleash Feature Toggles
- 2019-11-02 Container Registries, Minikube and Authorization
- 2019-03-21 Postgres Stored Procedures
- 2019-03-18 Gitblit - a simple Git Repository Manager
- 2018-12-28 Python - Distributing and Installing Code
- 2018-12-27 Python - Asynchronous Programming with Coroutines
- 2018-12-26 Python Notes
- 2018-12-06 Relational Normal Forms
- 2018-11-28 Introduction to Data Vault for Data Warehousing
- 2018-11-27 Introduction to Dimensional Modelling for Data Warehousing
- 2018-11-26 Introduction to Data Warehousing
- 2018-07-18 Book Reviews - STRIDE vs PASTA
- 2018-07-18 Threat Modelling with STRIDE
- 2018-06-30 CRSF and CORS - Cross-Site Request Forgery and Cross-Origin Resource Sharing
- 2018-05-06 The Graal Virtual Machine
- 2018-04-19 Analytic Functions, Partitioning and Windowing in SQL and BigQuery
- 2017-08-05 A Shared Git Repo Mirroring Multiple Remotes
- 2017-05-08 The RabbitMQ Threading Model
- 2017-05-08 RabbitMQ Exchanges and Queues
- 2017-05-07 Vagrant, Kafka and Kerberos
- 2017-03-18 Lamba and Kappa Architectures
- 2017-02-26 Gradle Build Tool
- 2017-01-25 Some JUnit Test Rules
- 2016-10-27 GSSAPI Overview
- 2016-10-22 Kerberos Authentication Overview
- 2015-12-29 In-memory Representation of Objects
- 2015-12-27 Public Key Certificates
- 2015-12-19 Overview of the Eclipse4 Architecture
- 2015-06-18 Anemic Domain Models
- 2015-05-19 Zookeeper Overview
- 2015-03-15 Haskell for Object Oriented Programmers
- 2014-03-16 Precedence Aware Evaluation
- 2013-01-28 Symmetric Encryption
- 2012-12-17 Git Foundations
- 2012-10-12 Programming-related Links
- 2012-10-01 Closures