2018 – The year I declined a CTO position and tried not to get shot

What. A. Year. 2018.

Well, what an eighteen months actually – this post will not make any sense cut short.

Let’s start with…

My personal life

During the second half of 2017 my girlfriend and I sold our house in Breda, The Netherlands, while the photographer was still taking the pictures.

And moved to Burgundy, France.

With our new home not being ready yet, we traveled through South Africa and Germany first.

After construction was finished, we moved in. And found peace and tranquility in and around our new home. Exactly what we we were aiming for.

We live in the house at the bottom center :).

Being surrounded by nature for a year has lifted the last remnants of the brain fog lingering I experienced since a severe burn-out way back in 2016. I’m grateful for being clearheaded again. Well, most of the time obviously ;).

The quality of sleep (darkest place of Europe, stargazers gather here) and fresh air is unmatched.

We have been living in this picturesque regional nature park Morvan for a year now. But recently decided to move back to The Netherlands in 2019.

Both my girlfriend (Lisette) and I are freelancers. And while the word “entrepreneur” is of French origin, we feel the north-European cultural climate is better suited to our ways of running a business in the long term. Also, we learned we’re more liberal than we thought we are, making us a bad match for France.

Finally, we came here to hike through the forest any time we liked. But half the year the whole national park is a hunting ground. We keep ourselves and our cat indoors most days of the week from September to April to avoid getting accidentally shot. This makes a peaceful stroll a 20 minutes car drive away. Like it was when we lived in the city :).

Packing up our lives and moving again so soon was a very tough decision; I will be missing France for sure. The new friends I’ve made have been very welcoming.

We were actually unsure whether to return to The Netherlands or move to The UK, so during November and December we have been exploring the UK from Inverness (north) all the way south to Hereford, followed by the north of The Netherlands. All while working remotely. We’re now hoping to find us a nice new home in Friesland, Groningen or Drente in the coming months to settle both the family and our businesses.

Online presence

During 2018 I have published some packages and blog posts (How to use Laravel with Python and the command line, A trait for testing laracasts/flash), started an E-mail list and launched an E-mail course on developing Laravel packages.

The course was intended to become a short book, but life got in the way. Meanwhile, nearly 200 of you have signed up for the course, and response has been positive, so I’m glad I could help you all out. I’ve asked Lisette (she’s both a great editor and educational writer) to edit the book next year.

Maybe I’ll turn it into a full TDD video course someday.

About the business

January 2018 I started my remote Laravel development business.

Rather quickly it was noticed by Mollie due to my blog and some previous open source work.

Mollie is a fast growing Amsterdam-based payment provider. Since the first contact our partnership has been growing steadily. One of the projects I am heading is a to-be-official Laravel Cashier integration for Mollie. It’s in closed Alpha now while I’m working on the public Beta. What started as a simple API wrapper is now turning into a complete subscription engine, all in a to-be-open-sourced Laravel package.

It was a blast to attend Laracon.EU as a Mollie ambassador, meet a lot of nice people there including Povilas, Taylor, Nuño, StanFreek and Franz (anyone else, sorry if I forgot to mention you…). Note to myself for next year: come a day or two early to hang out in Amsterdam with awesome fellow devs like these.

Other client work has been growing nicely as well; I have had to say no an increasing amount of times, which I hate to do.

I plan on helping more clients next year, once settled and once I have found some devs to help me. Given the experience with online payments and my love for both software and numbers, I’m thinking about exclusively focusing on building custom payment platforms.

About that CTO position. It was a nice chat, a generous offer by the CEO, and putting me on the spot. As I am really happy with how things are going and have a clear vision for the way forward, it took me only 3 seconds to consider and decline it.

Though I would have readily accepted that position in 2017. Too late now, sorry!

It did give me the confidence to further grow my software business. So I’ll be juggling CEO, CFO, CTO and many other roles for the years to come.

Goals for 2019

My more modest(?) goals for 2019 are:

a) find a new home, move and settle.

b) rebuild my exercising habits which were shattered due to all the traveling. Hit all Apple exercise goals 5 out of 7 days, 80% of the weeks until 2020, starting as soon as I’ve moved to NL. Getting enough exercise in the Morvan during winter is hard as I’m not a hunter and I don’t like getting shot at while hiking, running or cycling through the woods. Seriously.

c) double the business revenue by providing even more value to more clients in an even more niche market. Build a team if necessary.

d) speak at 2 or 3 events.

e) write at least 6 helpful blog posts here at sandervanhooft.com, share my “work in public” weekly on Twitter.

2019 has already started. Back to work.

Available now: Laravel package development from scratch

Since I found out how to create Laravel packages I was hooked.

Organizing your code in packages really declutters your application code while providing the added benefit of true reusability. It has made my applications a lot easier to maintain.

Learning to develop packages doesn’t have to be hard. If you know how to create a basic Laravel app, you can write packages as well.

Continue reading “Available now: Laravel package development from scratch”

A trait for testing laracasts/flash

Flash message

The Laracasts/flash package is an amazing solution to send Bootstrap 3 styled flash messages to the user’s screen.

After you have set it up, you can do something like this in your controller:

public function store()


    flash('Welcome Aboard!');

    return home();


And you get a flash message looking like this:

Example flash message
Notice the green bar here

But how do you test the flash message was actually sent using phpunit? Continue reading “A trait for testing laracasts/flash”

Easy Mollie payments with Laravel

In the previous post you learned that Cashier is not always the best fit for payment processing in Laravel. And if that’s the case you will need to integrate payment processing manually into your application.

Personally I have been integrating the Mollie gateway into Laravel projects targeting a Dutch customer base. This way it is possible to accept iDeal payments – which is the preferred method of my customers. Continue reading “Easy Mollie payments with Laravel”