Phing development update
It’s about time I wrote another Phing development update post, as the previous one was written 6 months ago! So, what have we been up to ? Release 2.5.1 Unfortunately, because of other commitments,...
View ArticleUsing conditional build steps to speed up your Jenkins PHP builds
At my client Spotney, we have a pretty solid (and common) build infrastructure for our PHP projects; SVN commits are checked out by Jenkins, tests are run by PHPUnit, Sonar runs static code analysis,...
View ArticleDutch Web Alliance, leaders in web technology
I’m proud to announce that I’ve joined forces with a group of very talented web developers in the Netherlands and Belgium: the Dutch Web Alliance. More information is available on our website, the full...
View ArticleDocker & PHP: beyond virtual machines
(note: this post was first published on the blog of the Dutch Web Alliance) Docker is currently one of the hottest technologies around, because it solves a very specific problem: the ability to easily...
View ArticleThe road to continuous deployment: a case study
Below are the slides of my talk “The road to continuous deployment: a case study”, as presented at the Dutch PHP Conference in June 2016. I’m planning to dedicate a series of blogposts to this...
View ArticleCD: Continuous Delivery or Continuous Deployment?
I’m writing this post to contribute my take on the acronym CD, and the distinction (or perhaps, confusion) between the phrases Continuous Delivery and Continuous Deployment. These phrases are used...
View ArticlePhing development update
A few years ago I pledged to publish regular updates on Phing’s development. I’m a little ashamed that I haven’t done that for nearly three years. Needless to say, a lot has happened, so it’s about...
View ArticleThe hierarchy of Continuous Deployment
In this post I’m presenting a twist on Maslow’s hierarchy of needs, the hierarchy of Continuous Deployment. This version is based on the steps that are required to successfully implement Continuous...
View ArticleDistributed command handling with Axon, JGroups and Docker
In a recent project I used Axon Framework together with JGroups, to create a clustered, or distributed command bus. In that project we had some concurrency issues. One of those issues was that two...
View ArticleEvent versioning (or why I sometimes modify the event store)
Requirements and applications evolve and change, leading to refactoring. For example, user registration now requires a first and last name, what was once an error may no longer be considered one, etc....
View ArticleConcurrent commands and event sourcing
In this post I want to talk a little about concurrency in the context of CQRS and event sourcing. Specifically, when a single aggregate is concurrently accessed by two commands (or command handlers,...
View ArticleBranches considered harmful
“Don’t use branches”. Three words that are guaranteed to trigger reactions when I utter them during my continuous deployment talks. Three words that make for interesting discussions. This post contains...
View ArticleThe road to continuous deployment (PHPCon Poland 2016)
Below are the slides of my talk “The road to continuous deployment: a case study”, as presented at PHPCon Poland in October 2016. It’s a situation many of us are familiar with: a large legacy...
View ArticleContinuous delivery, devops & microservices literature
Recently I was asked for books and other literature recommendations on the subjects Continuous Delivery / Deployment, DevOps and Microservices. Here are some of the books, articles and talks I think...
View ArticlePhing development update
A few months have passed since the last Phing development update, so it’s about time to discuss some of the recent changes. Releases Phing 2.15.0 (and two point releases to fix regressions) were...
View ArticleCQRS & Event Sourcing in the wild (ScotlandPHP 2016)
Below are the slides of my talk “CQRS & Event Sourcing in the wild”, as presented at ScotlandPHP 2016. I had a lot of fun presenting this talk. I felt the content gave everybody a slightly more...
View ArticleAll Day Devops
In a little less than two weeks, on Tuesday November 15th, I’ll be speaking at All Day Devops. A free, online DevOps conference spanning 15 timezones with 50+ sessions. Join me at 10 AM GMT for my...
View ArticleThe Strangler pattern in practice
In this post I’ll discuss my experiences with the strangler pattern and how it can be applied when rewriting a large, legacy code base. Introduction In one of my recent projects, I helped a development...
View ArticleSeason’s greetings from Utrecht!
This amazing photo was taken by Chris Heijmans in 2012. Last year, I ordered a canvas print, which is now proudly displayed in my home. Admittedly, current conditions (partly cloudy, windy, 8 degrees...
View ArticleTraining sessions and talks
One of the things I like most about my work is the ability to help teams improve, by sharing my experiences and knowledge in training sessions. These sessions can be conducted in the form of...
View ArticleCQRS & Event Sourcing in the wild (PHP Benelux 2017)
Below are the slides of my talk “CQRS & Event Sourcing in the wild”, as presented at PHP Benelux 2017. The post CQRS & Event Sourcing in the wild (PHP Benelux 2017) appeared first on Michiel...
View ArticleThe Road to Continuous Deployment (PHP UK Conference 2017)
Below are the slides of my talk “The Road to Continuous Deployment: a case study” as presented at the PHP UK Conference 2017, in The Brewery, London. The post The Road to Continuous Deployment (PHP UK...
View ArticlePhing development update
A few months have passed since the last Phing development update in October, so here’s an overview of some of the recent changes. Releases Phing 2.16.0 was released on December 22nd, 2016. Details of...
View ArticleThe Road to Continuous Deployment (JAX DevOps London 2017)
Below are the slides of my talk “The Road to Continuous Deployment: a case study” as presented at the JAX DevOps Conference 2017, in Park Plaza Victoria, London. The post The Road to Continuous...
View ArticleThe Road to Continuous Deployment (DevOpsPro Vilnius 2017)
Below are the slides of my talk “The Road to Continuous Deployment: a case study” as presented at DevOpsPro Vilnius 2017, in Multikino in the beautiful city of Vilnius, Lithuania. The post The Road to...
View ArticleState Of DevOps Report
The 2017 version of Puppet’s State of DevOps Report was just released. To me, the most interesting takeaways from the report are: High performing teams have 46x more frequent deploys, 96x faster mean...
View ArticleUsing annotations in Prooph
One of the things I love about Java is its native, compiler-level support for annotations, a form of syntactic metadata which can be applied to source code but also retain at run-time to influence...
View ArticleUsing Tracking processors to replay events in Axon Framework 3
Replaying events is a crucial part in any event sourcing / cqrs application, to rebuild projections, generate new ones or seed external systems with data. I’m a big fan of the Axon Framework. Even with...
View ArticleForget me please? Event sourcing and the GDPR
In May 2018, a new piece of EU legislation called the General Data Protection Regulation (GDPR) will come into effect. The GDPR attempts to regulate data protection for individuals within the EU and...
View ArticleUpcasters or a versioned event store: pros and cons
In a previous article, I wrote a few things about upcasters. One of the significant downsides when implementing an upcaster is that it adds to our application’s technical debt. An alternative technique...
View Article2017 Conference Season – It’s a wrap!
As my flight touched down at Schiphol Airport early this morning, I realized that that landing marks the closing of my 2017 conference season. And what an awesome season it has been! I’ve been a part...
View ArticleEvent sourcing and the GDPR: a follow-up
My article about the implications of the GDPR for event-sourced applications that I published last week generated a sizable number of responses, suggestions and comments (most of them on Twitter). All...
View ArticleCQRS & Event Sourcing article published in PHP Architect
This month an article I wrote for PHP Architect, called “CQRS & Event Sourcing in the Wild”, was published in the December 2017 “Talking Code” issue. The article deals with some of the challenges...
View ArticleRebuilding projections in Axon Framework 3
CQRS (Command Query Responsibility Segregation) allows you to have separate models for reading and writing. Combining that pattern with Event Sourcing leads to a powerful capability: updating query...
View ArticleA typical CI/CD pipeline explained
Recently, I was asked on Twitter if I could give some pointers for reading material on (production) CI/CD pipelines – what they look like, and how they work. I decided to shed some light on this by...
View ArticleLeadership books (English and Dutch)
Earlier, I wrote a post about literature (books, articles, etc.) on Continuous Delivery and DevOps. As I’m currently developing a new talk on Effective Leadership (in the context of Agile/DevOps...
View ArticleBinnenkort treedt de AVG (GDPR) in werking!
Vanaf 25 mei 2018 is de Europese privacyverordening Algemene Verordening Gegevensbescherming (AVG, ook bekend als General Data Protection Regulation of GDPR) van toepassing. Deze verordening gaat over...
View ArticleSoon the GDPR will take effect! Are you ready?
As of May 25th, 2018, the European privacy regulation General Data Protection Regulation (GDPR) will take effect. This regulation concerns the ‘protection of natural persons with regard to the...
View ArticleThe Road to Continuous Deployment (All Day DevOps 2016 Recap)
In 2016 and 2017, I gave a series of talks titled “The Road to Continuous Deployment: a Case Study”, detailing some of the work I did in 2015 together with the team at De Persgroep Employment...
View ArticleEvent Sourcing & The GDPR – Erasing your data footprint
Recently, the EU General Data Protection Regulation (GDPR) came into effect. You’ve probably heard all about it (or at least seen the absurd amount of ‘update privacy policy’ emails in your inbox). In...
View ArticleForget me, please? Event sourcing and the GDPR (JAX London 2018)
Last week, at this year’s JAX London conference, I gave a talk about the General Data Protection Regulation (GDPR), and the very interesting and specific implications for applications that use event...
View ArticleAt year’s end – happy holidays!
It’s a wrap! And what a year it was. 13 conferences and 5 meetups in 9 countries – and my first overseas conference in Montreal, Canada! Many thanks to the organizers and everyone that attended these...
View ArticlePHP UK Closing Keynote (video)
Last month the good folks at the PHP UK Conference asked me to host the closing keynote. So, on Friday February the 22nd, I took the audience on a journey through my experiences with and views on...
View ArticleThe Road to Continuous Deployment (part 1)
The story below details a very interesting & transformational project that I was a part of in 2014 and 2015, at a Dutch company. I’ve told this story before during a number of conference talks...
View ArticleThe Road to Continuous Deployment (part 2)
The story below details a very interesting & transformational project that I was a part of in 2014 and 2015, at a Dutch company. I’ve told this story before during a number of conference talks...
View ArticleThe Road to Continuous Deployment (part 3)
The story below details a very interesting & transformational project that I was a part of in 2014 and 2015, at a Dutch company. I’ve told this story before during a number of conference talks...
View ArticleThe Road to Continuous Deployment (part 4)
The story below details a very interesting & transformational project that I was a part of in 2014 and 2015, at a Dutch company. I’ve told this story before during a number of conference talks...
View ArticleCongratulations, you failed!
For those of you that know me, or have seen one of my conference talks, you know that one of my favorite phrases is: “if it hurts, do it more often”. Reading that, you might think I’m some sort of...
View ArticleReflections on the Learning Lab on Critical Thinking in Safety at Lund...
I attended Lund University’s January 2022 Learning Laboratory in Human Factors and System Safety, and it was awesome. It was a very inspiring and well put together week. I’ve been […] The post...
View ArticleLiterature tips
Recently, I presented a session on safety science and incident management at a local meetup. I tend to close such sessions with a number of literature tips (books and websites). […] The post Literature...
View Article