Home Articles Tools
  • Projects, tasks, odds and the casino

    An introduction to PERT and stochastic project estimation.

  • Data compression and the meaning of Life

    How can you compress a file without losing any details? Magic? The secret is to look for patterns, repetitions and predictability. Let’s dive into entropy, information and Huffman coding.

  • How to debug oneself

    Keeping notes and reflecting on your work and actions is key to becoming a better developer and problem solver.

  • How to approach a coding problem

    There is no obvious place to start when attempting to solve a problem. Here are four approaches that will help.

  • No bugs & problems; you might be doing your job wrong

    Bugs make us better developers. They help us grow and ameliorate the fruit of our work. Why not actively welcome them?

  • What is the best word to start a game of Wordle

    How can we use statistics to give us an edge at playing Wordle

  • Being a pessimist is not such a bad thing

    How can the Stoics help us become better engineers? Learn two practices that will upgrade your well-being and the quality of your work.

  • When easy is not enough

    What is the difference between easy and simple? Form and effort dictate our relationship with objects and interfaces.

  • How to create generative designs with a genetic algorithm

    Play god by learning how to create a basic genetic algorithm and making some generative art.

  • Good for what ails you: beyond symptomatic fix

    What hides behind a simple bug fix? Tools and techniques to think beyond symptoms.

  • Want to be more creative? This pattern will teach you a trick or two.

    One afternoon I was doing some research for an illustration I had in mind. What I learned that day will stick with me.

  • How to solve a business problem with dynamic programming

    Learn how to use dynamic programming with this funny story. What is the best way to cut a baguette to make the most profits selling sandwiches? Can some computer science help our baker?

  • Mental models for developers — finding solutions

    Mental models are shortcuts that you can use to think differently about a problem. They are an excellent tool to add to your developer's toolbox. Learn 15 mental models that will help you find answers to tricky problems.

  • How to engineer your luck

    Have you ever wondered how many time you should try something before getting a positive result? Read this to learn how to engineer your luck and minimize your effort.

  • Frameworks, patterns and recipes

    What is the best way to ship code to your users? Learn the differences between frameworks, patterns and recipes to create better abstractions.

  • Simple simulation of birth and death

    How to simulate life with maths? Learn how to use the Poisson distribution to create a simple JavaScript simulator.

All contents of this site, unless otherwise noted, are ©2012-2025. François A. Hoehl. All Rights Reserved.