After a decent number of years writing software, you get used to solving problems within certain mental models. You pick up patterns, develop instincts and, like it or not, start to default to comfort. Last week I took part of a hackathon, which took me way out if my comfort zone. I had no option. Three weeks into my job, the bomb was droped: Hackthon next week. Remote. And me, with very little professional blockchain development experience, no team and only a couple of vague ideas of I could build.
Below you’ll find some thoughts of how it turned out to be one of the most enriching learning experiences I’ve had in years.
As I mentioned, the hackthon was fully remote and spanned one intense week. As the new hire in a distributed team, I didn’t know anyone well enough to pair up, so I worked solo. The most forever alone moment was when I offered my services in the slack channel, hoping to join a team. Number of responses/reactions: 0.
So, it was just me, the docs, the AI and a lot of unknown unknowns: What could I build? How should I structure the smart contract? How does cross-chain even works? How does randomness work in an environment that’s deterministic by design? How to build a more or less decent UI?
I had some ideas and only one ceratinty: I’d need to learn not only new tools, also new ways of thinking. Why? Because they way of coding and shipping your code isa bit different: No abstractions to hide behind. No backend service to fall back on. Everything had to be deterministic, transparent and secure by default. It felt like learning to code all over again but this time with the stakes higher, the feedback loops shorter, and the guardrails far fewer. Easy (?)
Most of my week wasn’t glamorous at all. After setting up my dev environment, with tools I haven’t used in yeras, I spent hours digging through documentation, breaking and redeploying contracts, misinterpreting error messages, and triple-checking whether things were failing because of my code, my wallet, or the chain itself.
It was humbling, but also deeply satisfying. I wasn’t optimizing code or scaling infrastructure. I was building understanding.
And slowly, through the friction, I made progress.
What I built
The result of that week was Zeta Raffle: a simple cross-chain raffle system built on ZetaChain. Users can join by depositing tokens, wait for a set period, and a winner is selected using a verifiable random number function (VRF).
That might sound straightforward but behind the scenes the learning curve was steep and the iterations were fast. I had to understand how randomness works in a deterministic environment, which led me down a rabbit hole of VRFs. Reading docs wasn’t enough, so I started experimenting. A lot. I even built a VRF from scratch for ZetaChain just to grasp the internals (In case you want to check it out, it’s vaialble here: zetaVRF). It wasn’t required for the hackathon, but I needed to understand what was actually happening under the hood. That curiosity snowballed into one of the most satisfying technical detours I’ve taken in a long time.
And then there was the frontend. I’m really bad at building any piece of frontend. But the project needed one, and fast. So I leaned heavily on AI. I probably wrote about 40% of the frontend myself, but the other 60%? Prompted, tested, and refined using AI tools (Kudos to Cursor). Not only did it speed things up, it gave me a template for how to communicate design intent and iterate in short loops.
None of this was polished. None of it felt comfortable. But every step, every bug, every contract redeploy, every “da fuq?! why isn’t this compiling?” moment moved me from total n00b to someone who could navigate Web3 with a bit more clarity. It might not be groundbreaking, but it’s something I built from scratch under pressure, while learning on the fly 🤷
Working outside your comfort zone, alone and slightly out of your depth, is a fast track to growth. Especially in an environment like Web3 (?), where everything is changing fast and almost no one knows all the answers.
You don’t need to be an expert to start, you just need to be willing to feel like a beginner again.