I taught myself to code by building things people actually rely on — not tutorials or throwaway apps, but software that has to run in production and can't fall over. That pressure taught me more than any course could.
On the projects I care about I own the whole thing end to end: I write the software, design and run the database, build and host the website, and talk to the people using it — in English or Spanish. I like understanding every layer — from the interface down to the hardware it runs on.
I build with AI in the loop — one of the best calls I've made. The plan, the decisions, and the domain knowledge are mine; tools like Claude help me turn ideas into working code faster. Good developers aren't replaced by AI — they direct it.
Most of what I build has to survive contact with reality: live audio, real equipment, and screens that all have to stay in sync while a room full of people is watching. I like problems where "it works on my machine" isn't good enough, and I don't stop chasing a bug until I actually understand why it broke.
I'm just as happy with a soldering iron as a keyboard. I build electronics kits from the bare board up, wire up audio chains, and get stubborn mini-PCs to behave. Hardware keeps me honest — it either works or it doesn't.
When I'm not building something, I'm usually gaming or wrenching on nitro RC cars — I run a couple of Traxxas builds named Jim and Juan, and there's always something to tune, break, or fix.