Ode to James Socol

James Socol is moving on from Mozilla. It took me a week or so to digest what this means to me. Today I’m sitting here, in what would have been our weekly 1:1, writing this post because:

  • I’m not letting James leave without a proper tribute
  • I’ll miss working with him (a lot)
  • He is too humble to write a post about how badass he is
  • I couldn’t take him out drinking to dinner last week

What I’ll Miss

At the top

James Socol is a force of good. He can usually be found getting shit done and pushing forward every day. I’ve worked with James for about four years as his manager. He possesses both sound principles and a wicked work ethic. He was reliable and never said, “that’s not my job.” He’s the kind of guy you want on your side.

There are many reasons to miss James but here’s what I will most (in no particular order):

  • Sense of humor: James has a dry sense of humor and has mastered the art of sarcasm (the good kind!). He also understands all internet memes and often corrected me on these. His depth of Penny Arcade and xkcd knowledge are unparalleled. I’ll miss all the laughter we shared during work weeks and meetings.
  • Passion for people: It was great seeing James grow as a manager. James and I first started testing Rypple for managing feedback loops a few years ago here at Mozilla. Neither of us were going to accept a yearly feedback loop as enough for personal development of our teams. He volunteered to experiment with new methods for managing teams and led by example. You could tell he actually cared about people and being a manager was more than just a job to him. I’ll miss working with him on leadership and management because I learned as much from him as he learned from me.
  • Solving problems, not symptoms: Regressions are always something to worry about in software. What made James special is he isn’t happy just fixing regressions faster or reducing them to a reasonable level. He strives to eradicate them and pushed us to move forward with continuous integration and deployment. James approached every problem with soul. His work will persist in what he leaves behind but I will miss how well he matched the work of today with the principles behind tomorrow.
  • Putting his heart into it: All in. That’s what comes to mind when I think about how James approached things. He’d be upset if things weren’t working well, if someone was unhappy with him or if a launch went poorly. He lived and breathed his work for Mozilla and I will miss his passion for the mission because it inspired me and everyone around him.

A Giant Code Impact

James discusses his favorite topic

On top of everything else, James was a code beast. He has quite a few repositories but when it comes to code, here’s what stands out:

bleach
An easy, HTML5, whitelisting HTML sanitizer. A powerful and widely used libary; gives webdevs granular control over HTML inputs.
pystatsd
A Python client for the statsd daemon. James pushed for us to use statsd and Graphite. Instead of complaining that we didn’t use them he got his hands dirty and made it work and convinced everyone why it was important.
django-waffle
A feature flipper for Django. It can define the conditions for which a flag should be active, and use it in a number of ways. This helped our first continuous projects focus on shipping features instead of arbitrary versions.
jingo-minify
A CSS/JS bundler and minifier for use with Jingo; connector to use Jinja2 templates with Django. This helped us minify assets for deployment.
commonware
A collection of small but useful tools for Django. Often used internally by our developers.
playdoh
James was a key contributor to playdoh, especially in the early days before it became an official library. He wrote a lot of its middleware and built one of our first sites using Django as its foundation. Today, playdoh is a popular choice for new projects at Mozilla (if written in Python).
kitsune and kuma
Last but not least, James was the lead engineer behind Mozilla’s customer support knowledgebase and developer documentation software. If I’m not mistaken he also chose the codenames.

Mad Street Cred

Nice kicks

James leaves behind two solid teams who build and support support.mozilla.org, input.mozilla.org and developer.mozilla.org. It’s important to note that his peers will miss him as much as I will. Here are some things they were thankful for:

On management:

… totally the best manager I’ve ever had. He understood the way that developers work (being a developer himself) and he was also such an awesome person! Also I think as far as my experience goes, he’s the first manager I’ve had that I felt completely comfortable being 100% open with.

broke every stereotype I had about managers. Great to come to Mozilla and have an awesome manager.

encouraged us to think about sane remote working practices

being a very nice interviewer

James always was encouraging and offered a tremendous amount of support to new developers. James was one of my favorite people who interviewed me when I applied to Mozilla. James’ demeanor, personality and attitude put me at ease. James truly displayed the Mozilla attitude that I love about working here.

As an engineering mentor:

continuous deployment/improving webdev’s deployment processes a LOT

He put freakin’ LOLcats in a code review! He’s very serious about quality code but he reminds us not to take ourselves too seriously.

Being Webdev’s security ambassador with the Security team

Being Guardian of Code Cleanliness on all his projects

James was humble and helped webdev grow through through various scaling points.

As a person:

letting me crash on his couch twice in one summer with random people he’d never met

Starting the “Better Know A Webdev” blog series

Onward

James leaves Mozila with solid teams, solid code and better practices. He takes with him acquired wisdom and lasting friendships.

I think James will continue to build amazing things and be successful wherever he goes. If anybody out there doubts him, hopefully they can read this post.

James – I’ll miss you but this isn’t goodbye. I will still troll you on twitter and expect you to keep your libraries up to date!

See you soon. Cheers. <3

James approves!

A Hero’s Journey

I spoke with my team this week about the hero’s journey, or Joseph Campbell’s monomyth. This was brought up in a leadership program at Mozilla as a tool we could use to understand the different types of journeys we take as leaders and what phase we might be in.

Hero's Journey

There are a few things I wanted to emphasize with the group:

  • Put things in perspective. “The Pit” or “The Abyss” can seem pretty daunting and when you’re in the middle of it, things can seem pretty bleak. However, once you conquer a few, you build confidence and recognition that what you’re facing isn’t the end of the world — that you’ll find a way to work your way through it and make a breakthrough.
  • You need faith. Belief in yourself, your abilities or your cause can sustain you through otherwise dark periods. There’s a reason why you answered “The Call” — just like Luke left Tatooine in Star Wars without really thinking about it. It’s because deep down, even if you are frustrated or tired, you know you can accomplish great things and overcome this challenge.
  • You will need allies. There is no Luke Skywalker without Yoda or Obiwan. Likewise, you won’t be able to move mountains without help from others. Could be your mentor, your god, your friends or your spouse. Either way, it’s important to realize that to make true breakthroughs you need to open up enough to let people help you get to where you need to go. Help can come as feedback, support, listening or many other ways. Remember to look for it and seek it.

Not very useful, but I found it pretty entertaining to deconstruct movies from the 1980s and see how they fit in with (or butchered) the formula. It’s interesting to see how they used montages to breeze through parts of a hero’s journey just because of budgeting or time constraints. You have to admit, though: the training montage from Rocky IV is pretty epic.

Anyway, just wanted to share some of those thoughts.

At Peace

My uncle Craig passed away this morning. He struggled for many years, bed-ridden after a series of issues. I am sad because I will miss him — at least the version of him I knew before he got really sick.

I’ll admit it was hard to watch him suffer, and his death brings a kind of closure and peace. I’m sure some of you understand the feeling. The last time I saw him, I sat next to him and said, “Don’t be scared, Craig. You will see your dad soon and he’ll take care of you. We are all here with you.”

I don’t know if he could hear me or understand me, but I already said goodbye. This morning I was sad but mostly for my mom and grandma, who lost a brother or son. I told my Mom she was a good sister to him, and took care of Craig through the worst parts. It was hard work — years of hard work — and all because she loved him and hoped to make him a little more comfortable.

As I usually do during these times, I read Thanatopsis today. The last part explains death better than most:

So live, that when thy summons comes to join
The innumerable caravan which moves
To that mysterious realm, where each shall take
His chamber in the silent halls of death,
Thou go not, like the quarry-slave at night,
Scourged to his dungeon, but, sustained and soothed
By an unfaltering trust, approach thy grave
Like one who wraps the drapery of his couch
About him, and lies down to pleasant dreams.

I hope Craig went in peace, as if laying down to pleasant dreams. He had a good soul. Rest well, uncle.