My name is Dave and I've been a professional programmer for all of my adult life, with my first real programming job back in 1985. Which means I've been doing this for a long time, or at least it seems that way to me.

Very early in my career, I noticed that lots of IT departments struggle to succeed at software development.

It's one of the most difficult things any company can try to do because software development is almost always about exploration, investigation, innovation and learning as you go. Users rarely know what they want, certainly don't know what is possible, and have trouble visualizing how software will work before it is delivered. Programmers, for their part, often have limited understanding of the business and are usually expected to leverage new technologies they've never used before to build working solutions.

For the past 35 years I've spent a lot of time thinking about how we think about building systems.

This website is a place for me to share what I've learned about not just programming, but the entire lifecyle of business applications - from the initial idea to satisfy a business need, right through development and maintenance, to the inevitable day when it's time to replace it with something newer and better.

Since about 2014, I've spent a large amount of my professional time developing desktop applications in JavaFX. There is a surprising lack on the web right now of high quality information about how to use JavaFX properly, and I'm hoping that my articles on this website about JavaFX will fill that hole.

Recent posts

16 minute read

The original Wordle is JavaScript in a browser, here’s an implementation of it in Reactive JavaFX written in Kotlin.

10 minute read

Pseudo Classes are the best way to handle on/off state changes in a Node in JavaFX. But it’s very badly explained in the JavaDocs and hard to understand. This article should clear that up.

19 minute read

Everything you need to know about Events

11 minute read

Let’s look at Buttons.How to set them up and style them, how to use them, and things to look out for.

13 minute read

Stand-ups, Retrospectives, Sprints, Scrum Masters. Is it just bureaucratic nonsense that gets in the way of good programmers doing their thing? It shouldn’t be.

11 minute read

Kotlin has been described as, “The language that Java would have been if it had been designed 25 years later”. It’s starting to pick up popularity, and has had a boost from being endorsed by Google for Android development.But you’re not an Android developer, so should you learn, and use, Kotlin?

4 minute read

An approach to implementing the JavaFX Property “bean” structure for observable objects in an idiomatic Kotlin fashion.

16 minute read

I’ve always advised that Scene Builder and FXML are a waste of time, and that you should just write your screens in Java code. It’s easier to build, it’s easier to customize, easier to maintain, and much, much easier to do really sophisticated things. But how do you start?

16 minute read

Comments in code are supposed to help other programmers understand your code so that they can build on it, improve it and, sometimes, fix it. Are the comments that you’re leaving in your code helping anyone to do that?