I started out programming a little bit with my dad, but really got into it when I realized I could cheat on Quake 2 with scripts. I later honed the art, with many hours spent on IRC adding scripts to take revenge on people who kicked me out of online chat rooms. I eventually went to university to study Software Engineering but found it pretty dry!
Most of my useful learning has been for fun and has involved building websites or automating boring tasks. In my own time over the past couple of years I've been building stuff in a rather more esoteric language than that used in my day job - Haskell. I build stuff like my own database, a random game picker, and anything else that springs to mind really!
When we released Burp and no users noticed that I refactored the whole XSS scan check. There's something oddly satisfying about swapping out the foundations in such a way that everything appears to stay the same.
Nobody else would let me write an HTTP server, let alone one we ended up using on the Academy so it's being attacked all day!
In my spare time I build an app using the perfectionism that I can't use at work due to time constraints. It's taken me eight years, I've rewritten it a few times - most recently in Haskell - and I'm not done yet!
Flat structure, a focus on making cool stuff, and an attraction to solving impossible problems.