I have been programming for a while already. Counting the time when I was studying, it has been over ten years already. If Peter Norvig is correct I should know by now what I am doing, although I often get the feeling I don't know anything.
In this time I have been in a number of companies, mostly focused on web programming. I started as a developer, focused on backend topics. At some point I became frustrated having to wait for somebody else to implement the layouts, so I ended up learning HTML and CSS past the random pixel assignment part. I guess that qualifies me as a Full Stack Developer.
At some point somebody thought it was a good idea to make me the technical lead of an agile team. I quickly discovered that building things yourself is not the same as helping somebody else figure it out. I learned, somewhat to my surprise, that I really enjoy sharing ideas. According to their feedback, other developers have managed to learn something from me. At least they don't tend to run away screaming, which is, I think, a good thing.
I have managed to work with plenty of technologies and tools. It took my a while to realize, though, that while solid tech and good foundations are important, they are not the only thing needed to deliver high quality software.
Following the Pragmatic Programmer advice, I try to learn some new technology every year. My github account is full of small projects I have started to teach myself new things, such as this page itself. A list of them, in no particular order
I am a bit picky about the tools I use. Actually, I am very picky. I cannot remember how many times I did rewrite my shell config in the past. It is problematic for pair programming because I usually am the only one that can work at my computer.
- Google Chrome