Becoming a Django Apologist
It's been roughly four years since my introduction to the Django framework and I thought I'd write a little post to commemorate this. In my mind nothing had as big an impact on my career as my decision to work at the Journal World. When I started there I knew basically nothing about software engineering or open-source, and it is entirely thanks to my excellent (and patient) coworkers there that I was able to learn about these things. I will never forget the string of disappointed expressions I saw my first week as I asked questions like:
- What's git?
- What's caching?
- Where's cPanel and phpMyAdmin?
Last year I left the newspaper and this Spring I started working at Counsyl. Counsyl is also primarily a "Django shop", but to the engineers at Counsyl, Django is just another tool and does not enjoy the blessed status it had when I worked at the newspaper. I think that due to my having worked at "the company that created django" (and to a lesser degree my blog), I'm treated as something of a Django apologist at Counsyl when someone has a WTF moment. That's OK with me. Although it isn't news to me that Django has some flaws, I still think it's pretty damn good for building websites. But more than its merits as a framework, my experience with Django seems to me to represent a feeling I had when I felt really excited about software - a feeling I always want to have when I'm at work coding.
When I started at the Journal World I joined a team of six programmers and designers known as the "internal team". This team was distinct from the "commercial team" which ran a hosted version of our CMS for various newspapers and magazines and had maybe 10 or 15 people on the team. At first I had the impression that working on the internal team was perceived as being "slightly less" than working at Mediaphormedia on the hosted product. I soon learned that the internal team had a lot more freedom to experiment and work on interesting projects, which gave us our own feeling of superiority. One of the big projects we worked on I called "codename: Kyle" which everyone hated at first (then they liked it, then hated it again) -- I found this in one of my old notebooks from the meeting where we first discussed "kyle":
My first year at the Journal World was awesome -- I sat next to Eric and bugged him incessantly with questions. He would usually respond without taking his eyes from his screen and say something like "google is your friend". Several years later he told me he was surprised I didn't think he was an asshole, but in fact I am very grateful because, as the saying goes, "teach a man to fish." Our mascot was the walrus because our team was called WorldOnline (or WOL), and Eric had a little stuffed walrus that was always at his desk:
It seemed like every day after work there would be 5 or 6 people from our company hanging out at the coffeeshop/bar down the street. We had weekly meetups that were attended by programmers from our own company as well as programmers working at the university and other small companies in the area, and none of it felt "forced". I asked a lot of dumb questions but I think it was OK because we were all excited about coding and there was a general feeling among the programmers and designers I worked with that we were building stuff that had real potential to change online news.
I'm not sure how to create this type of energy and excitement, but it was very real. The guys that I worked with came from all over the country to work in this small college town in Kansas because they were excited about Django, python and online news. In hindsight, this seems to me to be the holy grail for a software company.
About a year after I started, some of the standout people began leaving the company to pursue careers at some really big-name places. I'm not sure if it was just that the newspaper couldn't compete with the awesomeness of working somewhere like Facebook/etc, or whether the excitement had faded and people were ready to try something new. After one or two people left, I can really say that the excitement just vanished -- that's all it took. I transferred over to Mediaphormedia and watched as the internal team shrunk to one employee. Mediaphormedia also started losing people until last summer when it was announced that Mediaphormedia would be closing its doors, and I transferred back to the internal team for several months before resigning.
When I tell people I worked at the "place where Django was created" they usually assume I was a core committer to Django or had some hand in shaping the framework itself. Actually this is not true -- I have committed a small patch or two to Django, but by the time I started at the newspaper we were mostly "users" of Django, the original authors having moved on. I joined right at the tail end of a really exciting time -- Django 1.1 was released a day before I started and, while there have been tons of new features, the version 1.5 code I write today really doesn't look all that different from the code I wrote in 2009.
I consider myself really lucky to have been a part of the group that worked at the Journal World. It shaped the way I think about software and software engineering so much that it actually scares me to think what would have happened if I hadn't worked there. And that is why I am OK with being a Django apologist from time to time.
Thanks for reading my post, please feel free to leave any questions or comments using the form below.
Commenting has been closed, but please feel free to contact me