I develop software for a living. Then I go home and continue reading about software because I just can't get enough. 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 myself 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 been working as a professional developer for more than ten years. 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.

I specialize in web programming. I started doing backend work, then I got more and more into frontend topics, and lately I have managed to touch infrastructure as well. I don't know if there is such a thing as a Full Stack Developer, but I definitely try to involve myself in all areas of software delivery.

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.

Technologies


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

Tools


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.

Nowadays I try to at least outsource my configurations a bit, using some awesome community driven ones like Spacemacs and Oh My Zsh

  • spacemacs
  • zsh
  • git
  • tmux
  • Google Chrome
  • hammerspoon
  • Alfred