One of the first lessons that stuck with me came from an unexpected place - the concept of ice-breaker tests. Small progress beats no progress, every single time.
It’s that basic test you write just to prove your setup works. Nothing fancy - maybe checking if a function returns the expected type, or if your test runner can find your test files.
The best idea is always to write simple ice-breaker tests first, because there’s always work involved in getting everything up and running.
When I started fuzzing blockchain protocols, I felt intimidated by the complexity. Reading academic research about advanced testing techniques made me think I needed to find sophisticated attack vectors from day one.
I was wrong.
My breakthrough came soon after - starting with embarrassingly simple tests instead of hunting for complex exploits. Those simple tests evolved into a complex stateful property testing setup that found three interesting bugs in the target protocol. More on this in future posts.
The ice-breaker principle became my mantra: small progress beats no progress. Whether you’re researching a new fuzzing framework, exercising a smart contract, or setting up some property tests - start simple. Get your environment working. Prove you can run a basic test. Then iterate.
The most sophisticated discoveries often start from the simplest tests.
Speaking of ice-breakers - this post is exactly that for my blog. Instead of launching with complex technical deep-dives, I’m starting with a simple concept anyone can apply immediately.
Just like those simple tests, this post gets my writing setup working. It proves I can publish something, get feedback, and iterate from there.
The craft reveals itself one small step at a time.