I've been a professional programmer for all of my adult life, with my first real programming job back in 1985. So I've been doing this for a long time. Or at least it seems that way to me.

Lots of IT departments struggle to succeed with 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 blog 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.

This blog is still very much a work in progress. Expect to see both technical articles and articles about programming in a business environment. Lately, I've been concentrating on writing tutorials for my "Elements of JavaFX" series. There is a surprising lack in the web right now of high quality information about how to use JavaFX properly, and I'm hoping that this series can fill that hole.

Recent posts

31 minute read

Taking a look at the three most common design patterns for building systems with user interfaces. How are they different? Which one is best? Is there anything better?

3 minute read

Introducing a “course” for programmers just starting out with JavaFX. Everything you need to know to get from absolute zero knowledge to building real applications that do real work.

13 minute read

Taking a look at the three most common design patterns for building systems with user interfaces. How are they different? Which one is best? Is there anything better?

19 minute read

“Hey you jobs! Get off my FXAT!” Learn how to deal with the JavaFX Application Thread - How to get your background jobs onto their own threads the right way, and how process the results back on the FXAT.

13 minute read

Custom binding classes aren’t used that often, but understanding them is the key to understanding how to use the Bindings library builder methods.

15 minute read

The best way to structure an application is to separate the presentation of your data from the logic of your application. That can be hard to do. But not if you take an approach where you configure your screen elements, put them in the layout and then discard any reference to them.

9 minute read

A look at how Optional works, and how it isn’t really about Null values - at least not if you were doing it right before Optional.