Heuristics

Impactful technical training

You’re a budding technical coach. Part of the job is preparing and delivering training. How do you create deeply technical workshops that will have the most impact? In this post we’ll go over 3 concrete models and principles for more impactful technical training that I use while preparing my workshops.

Although I have been conducting training sessions for years, I only recently began delving into the science behind “impactful education”. I learned so much about this from Emily Bache and the Samman coaching initiative. Emily offers a great course on this topic, which I highly recommend. You can find more information about it here.

Continue reading
Standard
Development, Testing

TDD Quick tip: “What test should I choose next?”

When test-driving your code, you shift between red (write a failing test), green (write the code needed to make the test pass) & refactor (clean up). But how do you kickstart this loop? What heuristics can you use to guide selection of the next test you write? This article summarizes the most common heuristics and highlights the one I use predominantly:

Pick the test that forces you to add one (and only one) new facet.

Continue reading
Standard
notebook with pencil
Development, Functional programming

F# notebooks

Jupyter notebooks have been a thing for a while now in data science communities. Recently I wanted to take a look at how to set these up with support for the F# programming language. While there is some documentation out there, I quickly got lost in a plethora of alternative tools and out-of-date documentation. This walkthrough will get you up and running with F# Jupyter notebooks online and in your vscode editor in no time!

Continue reading
Standard
conference, Development, Self-Improvement, Self-Learning

SocratesBE ’19 unconference diary

This weekend I had the opportunity to visit my favorite work event of the year: a socrates unconference. This is a quick brain dump of the things I learned in sessions, hallway discussions or over a drink. My goal is not to give a full overview of the topics covered during the sessions, but rather showcase what a typical day at a Socrates unconference could look like in case you are on the fence about attending one in the future.

Socrates unconferences use the open space format, this means that there is no predefined schedule. People just show up & share their own ideas for sessions in the morning. After some self-organization we end up with the schedule for the day. The next day this pattern repeats. It’s amazing to see how sessions and discussions during the first day often result in totally fresh session proposals the second day.

Continue reading
Standard
Development, Self-Improvement

Reclaiming Refactoring

We need to talk about refactoring. Or rather, about the frequent misuse of the word, the dangers this encompasses and what we can do about it. Time to reclaim what is an intrinsic part of software development!

As with many words in the English language, people use the word refactoring for different concepts. It’s a human thing to do, but it keeps surprising me how open for interpretation most terms are in a “scientific” field like computer science. Just try to Google an exact definition for the concept of a unit test: you’ll find about as many interpretations as there are people writing about it.

Continue reading

Standard
Development, Functional programming

Exploring data and API’s with F# type providers

This post highlights an F# feature called type providers that makes my life as a software developer easier. Ever had to parse some JSON? Explore a shiny new REST API? Maybe you’ve had to quickly try out an undocumented SOAP service?

Imagine you could talk to any kind of service or interact with any kind of data in your regular IDE, using the full capabilities of a static type system with minimal fuss. No need to generate proxy client code from .wsdl files, no need to reference any Nuget package. With some help from F#’s type providers, It just works™!

Introduction

I’ve been looking to introduce F# in my daily workflow. As a consultant, I often don’t get to pick the programming language I work in. As a result, my experiences with F# are limited to side-projects or throwaway code that doesn’t get committed to version control. One area where F# and its ecosystem are really practical and even outperform alternatives is in exploring data and services, both in the broad sense of the term. Say you have to integrate with a third party REST API that provides little-to-no documentation. F# provides a magical feature called type providers that allows you to explore this API with static types, minimal fuss, and all the features you’ve come to rely on of your trusty IDE. It’s the perfect way to get started with functional programming in a .NET environment.

Continue reading

Standard
Heuristics, Self-Improvement, Self-Learning

Starting in an ongoing software project

Monday morning, 6 AM. You vault out of bed and into the shower, pick out your nicest outfit and leave for work. Finally, a new project. A breath of fresh air. The excitement of starting on a new team. The joys of digging into an unfamiliar codebase! 

In this post I provide some techniques I use to get a grasp on a new codebase fast. It’s always fun to start a new green-field project, but let’s be honest for a moment and acknowledge the fact that most projects you will work on as a software developer will start from an existing codebase. These tips and tricks will help you hit the ground running, even when you land in a muddy brown-field mess.

Continue reading

Standard
Heuristics, Self-Improvement, Self-Learning, Testing

Legacy code retreat

Have you ever worked with code that literally brought tears to your eyes? Not in the good sense, mind you. I’m talking about code that is such a hassle to work with it makes you rethink some of your career choices. If that’s the case, a legacy code retreat might be just what you need to stop your fear of legacy code and instead start to appreciate the opportunities for improvement it provides. Legacy code can be a joy to work with, if you tackle it the right way.

Continue reading

Standard
Continuous Delivery, Security, Self-Improvement, Web Development

Techorama 2014 takeaways

Last week I attended the very first installment of Techorama, a new conference for developers hosted in Mechelen, Belgium. This post will walk you through my experiences of the conference and will highlight the most important takeaways from the various talks I attended.

General impressions

The conference had tracks on ALM, Mobile, Web, Cloud, Language & Tools, Sharepoint & SQL and best-of Build 2014. I mostly attended the Web and ALM tracks since they are most relevant for my current work, but I dabbled in the other tracks here and there. I expected this conference to be heavily Microsoft-oriented but it turned out that there were a lot of non-Microsoft specific talks. As a matter of fact, it would have been entirely possible to schedule your conference without attending a single Microsoft-specific talk.

Most of the talks I attended were high-quality presentations. The booth hall had some entertaining side tracks and there was a lot of swag up for grabs. The food was delicious (warm meals instead of the usual sandwiches!). Overall there was a very good vibe during these two days.

Continue reading

Standard