- The love-hate relationship between SELECT and GROUP BY in SQL
A clear explanation of the relationship between SELECT and GROUP BY in SQL guided by examples.
- Advent of Code 2020
Let's code the shit out of the Advent of Code together, shall we?
- Make Your Tests Fail Randomly (and Profit)
Using random values in automated tests to improve readability and the likelihood of failures in the presence of bugs or wrong mental models.
- How to Terminate Legacy Code without Getting Stuck
Embracing the inversion principle with legacy code: don't try to make it perfect; just make it less awful for the next round of changes.
Tackling problems from different angles: imperative against declarative, or "push" vs. "pull."
- The Simplest Most Powerful Trick–Verification Steps
Verification steps don't come with a 100% save-ass guarantee, but the list of benefits is long, and it's not limited to finding bugs.
- How to Deal with (Your) Unsatisfying Code
In the past, I committed the crime of adding a "Refactor Feature X" ticket to the cemetery (aka backlog). Luckily, there are better ways.
- From Zero to RxJs via Knowledge Transfer
When I'm exposed to a new concept close to a dense area of my knowledge graph, I can approach it from multiple angles using different mental models.
- 10 Knowledge Transfers that Make me Thrive with Legacy Code
I don't have to relearn anything from scratch; I only transfer knowledge over from past experiences and fill the blanks.
- From Temporary Knowledge to Permanent Knowledge
By disregarding practices and principles, we are condemned to start from scratch and re-learn at every context switch.
- Making an Endpoint 13 Times Faster
Down to 900 milliseconds. In other words, more than 13 times faster in the worst case (before it took 12 seconds) and infinitely faster in the best case (no more crashes).
- How to Investigate Performance Issues in a Web App with a Simple Script
If only I could simulate a user but faster. Wait a second! A person clicking things in a browser just sends HTTP requests to the server.
- 99 Percent Done
After several weeks of work, we are still 99% percent done. Or maybe I should say 99.9% done. Math is awesome, there's always room to add yet another nine to make it right.
- How to Tame Your Reading List to Support Your Goals
While busy trying to fit all that content in our heads, we forget that reading is just the easy part.
- How to Tame Complexity Into Simplicity with a Shake List
The trick is in minimizing the feedback loop. Ideally, you want to be told at each turn if you are wrong, not drive for days just to realize you were heading the opposite direction.
- Code Quality is Free (if You Do it Right)
The secret is simple: the first version of the code must be as close to perfection as possible. Here's how to do it.
- How to Conjure Your Team Magic with a few Stickies and the Playbook Exercise
The best part of the team playbook exercise is that most outrageous things really are not. Strangely enough, when you support others, others will support you.
- The Three-Step Recipe to Success with Legacy Code without Getting Overwhelmed
The secret to successfully surviving legacy code is to build momentum. We need to focus on the solution not on the problems. In other words, we need to keep in mind that our goal is a successful project not perfect code.
- Naming Things Made Easy
Naming things belongs to the editing phase not the writing one. Doing it too early is unproductive and dangerous. Here's why and how to fix it easily.
- Can I be Completely Honest? – A Short Mentoring Story
I bombed it. I knew as soon as Grzester started the feedback session with those words. But this was great news. I wasn't looking for a pat in the back, I wanted to improve.
- Grateful for the Opportunity of Working on Legacy Code
In the end it's my choice. I can be lazy, fixate on the small details and waste time. Or I can use some discipline, focus on the big picture and accept the challenge.
- The Secret to Getting Unstuck when Investigating a Bug
When Radek asked me to pair on investigating a bug I was skeptical. But I had something he lacked: ignorance.
- Why Good Solutions Block Better Ones
What is the Einstellung (set) effect, why it reduces problem solving skills and how to mitigate it
- Starting from the Problem not the Solution
I spent most of the day in solution space. The wrong solution space. In fact, I was solving a problem that didn't exist.
- Measuring Disagreement with Standard Deviation
I treasure disagreements. I find friction is essential to team work. Discussing agreements, on the other hand, is a waste of time.
- Asking Why to Uncover Assumptions
Laddering up from solution space to problem space can save a ton of money (and timezones).
- From Silly Questions to Innovation
At first an idea could be raw, maybe even silly. However, by thinking outside the box, it may turn into something innovative.
- It's Called Mistake, Not Bug
Why I decided to stop using the b-word and started taking ownership instead
- On Living Together as a Team
Washing dishes and cooking meals as only a great team can do
- On Productivity
Personal Productivity vs Generativity – the difference between your team's outcomes with you, vs without you
- On the Scout Rule
The Scout Rule by itself is a scam, context is needed
- On Learning at Work
Learning shiny new things in a commercial project is a bad idea, here's a better way