Something changed over the last year. I’m still deep in software engineering, still running d11, still writing TypeScript daily. But my nights look different now. I’m losing sleep to machine learning. I finished Karpathy’s Zero to Hero, then picked up tinygrad and started building mist, a diffusion language model from scratch in tinygrad. I’m reading papers I probably have no business reading yet. I’m early in all of this, but it feels like an entirely different discipline from everything I’ve done before, and I can’t stop pulling at it.
Deterministic vs learned
Everything I’ve built up to this point has been deterministic. I write the logic, I know what it does, and when something breaks I can trace it to a line. ML flips that completely. You don’t write the logic - you set up the conditions for a system to learn its own, and then your job becomes figuring out what it learned and why. The output surprises you in ways that traditional code never does, and understanding those surprises requires a completely different kind of intuition. That’s the thing that got me. A fundamentally different way of thinking about what code can do.
I need to know what’s underneath
This has been true about me for as long as I can remember. It’s why I went from JavaScript to Rust - not because I needed to, but because I’d spent years writing code on top of abstractions and wanted to see what was underneath them. It’s not a principled stance, it’s more of a compulsion. If something works, I need to know why it works.
For ML, “underneath” means something specific. I don’t want to just call APIs and fine-tune models through a dashboard. I want to understand gradients, backpropagation, how attention actually works, what a loss landscape looks like and why it matters. If I’m going to spend the next decade working with these systems, I want to understand them at the level where I can build them from scratch, not just use them.
Home
I grew up in Dubai. It’s the only home I’ve ever known. Growing up in a city that moves this fast does something to you - you watch the skyline change every few years, you see things get built and rebuilt at a pace that most places don’t even attempt, and it shapes how you think about what’s possible. I’ve always been inspired by the guidance and leadership I’ve witnessed here, the willingness to commit to something and then actually execute on it. Seeing the UAE take a strongly positive stance on AI was inspiring to me in a way that felt personal. It made me feel like I’m headed in the right direction.
There are real institutions and opportunities being built around AI here, and the momentum is hard to ignore. This country gave me a life I wouldn’t give up for anything, and I’d like to find a way to contribute something back to it. ML feels like the way I can do that.
Why now
Honestly, a lot of it is that software engineering has started to feel repetitive. I’ve been at it for eight years and I love it, but the problems are starting to look the same. The difference between building something in TypeScript versus Rust is real, but at the end of the day I’m still building the same SaaS, the same CRUD, the same patterns I’ve been solving for years. ML feels like an entirely new set of problems that I haven’t even begun to exhaust.
The other part is timing. If I start going deep now at eighteen, I’ll have a decade of depth by the time I’m in my late twenties. That matters to me. I have a lot of ground to cover and I know that, but I’d rather start now and spend those years building real understanding than stay comfortable doing things I already know how to do. That’s why ML.