-
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.