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 me a while to realize, though, that while reliable 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
  • Dash
  • trello