Martijn Pieters got started in web development in the mid ’90s.
Martijn Pieters, Stack Overflow Python Legend
Around 1997, he fell in love with Python and has never looked back. Today he operates as Zopatista, a successful freelancer capable of cracking the toughest Python and Zope challenges.
A Stack Overflow all-star, he’s amassed a reputation of over 250,000 – ranking him at #2 so far this year and among the top 40 answerers of all time – over the course of responding to more than 10,000 questions.
Tell us a bit about yourself.
I’ve been hacking the web since the mid 90’s, when I got my first full-time job as a web developer. I discovered Python in 1997.
I’m Dutch, though I’ve lived in Norway and the U.S., and I’ve been living in the UK for about a year. I came to work for a company called Bromium, which operated a Django platform as part of a larger security project.
I am a member of the security team for the Plone open-source project, which is a CMS built on top of Zope that has an excellent security record – the CIA and FBI both use it for their sites.
Could you tell us about one of the most interesting Python projects you’ve worked on?
I worked on an intranet project for Elkjop, a Norway-based company that’s one of the largest electronics retailers in Europe. We’re talking about 10,000 people in 6 countries all using an intranet that has to stay up and is core to their business.
Elkjop needed to migrate content from lots of different systems into the new intranet. Migrations are always painful, custom, bespoke jobs, but there are lots of things you keep using, lots of scripts you have to keep cutting and pasting from.
To deal with this, I created a tool called Transmogrifier (named after the magical cardboard box from Calvin and Hobbes that transforms objects). It’s a content migration pipeline – you put data in one end, and content comes out the other.
What tools do you use to get things done?
I’m very bare-bones. My favorite editor is Sublime Text. It gets out the way and lets you use plugins to do what you want. I don’t like heavyweight IDEs; I prefer my tools lightweight.
I also use Trello boards all over the place. I prefer Trello over more heavyweight ticket tracking systems, though I think project managers might disagree because they don’t get burndown charts from me. I’m a single-guy outfit freelancer and I’ll work with whatever tools someone has, but Trello is my preference.
What do you wish someone had told you when you first started coding?
I started to code in the early eighties – my father was a computer technician so I had access to mainframes that printed line-by-line onto long sheets of paper. Starting to learn to code for me was a very different world from what it is today.
But here’s something that hasn’t changed: If you have a passion for it, you’ll make it. If you eat, drink, and live it, you will find all the ways to learn it. I have three kids, one of whom is into programming, and he does the same – he inhales it.
You’re one of the top Stack Overflow answerers of all time. What drives you to be so active?
While working with the Plone project, I discovered early on that we needed to have lots of great questions with even better answers so they could be used in the future. I became one of the people on the Plone support team, and found that being active on Stack Overflow served our goals perfectly.
Then I discovered that there’s a certain addictiveness to Stack Overflow. I really enjoy helping people and figuring out what their worldview is – their mental model of what they are trying to do.
Often, that model is incomplete or incorrect, and you need to help them form a better model that solves their problem. You can’t just give them a piece of code and say, “this solves your problem.” I prefer to be able to tell them why this solves the problem.
What are some of your favorite Stack Overflow Questions?
A little while ago, someone started a new Stack Overflow tag called “python-internals“, which covers all the questions that talk about how Python works under the hood. It’s always fun to try and figure that out – for example, why does a dictionary in Python have arbitrary ordering? Questions like this help me push the boundaries of what I know and the craftsmanship that has gone into Python itself.
While at Zope, you worked with Guido Van Rossum (author of Python). What was that like?
It was great fun working with him, because we’re both Dutch expats. I enjoyed working with the whole Python Labs team. In addition to Guido, there was Tim Peters, Barry Warsaw, Jeremy Hilton… there’s such a lot of experience in these people. As a young developer you can inhale the atmosphere.
I still use lots of little idioms and ideas and expressions that I picked up from working with them – agile develpoment terms and in-jokes.
Are you familiar with the term monkey-patching? It refers to changing code on runtime, and it originated while I was at Zope Corporation. It’s one of those had-to-be-there sorts of things.
Need Martijn’s help? Book an 1-on-1 session!