$cto[] = clone $brion;

Back in 2005, Wikimedia brought me on as the Foundation’s first paid employee after two years leading MediaWiki development as a volunteer. Naturally as the only member of the tech staff, I started at the top: Chief Technology Officer.

In the 4 years since, we’ve gone from one tech employee to a dozen, from 50 servers to 350, from upstart novelty to established web juggernaut.

As our operations and our staff have grown over the years, so have my responsibilities. Beefing up our tech staff is in some ways just like adding servers to our data center — we can get more things done with less task switching, but scaling still has its overhead.

With the increase in administrative and organizational duties, I’ve been less and less able to devote time to the part of the job that’s nearest and dearest to me: working with our volunteer developer community and end users — Wikimedians and other MediaWiki users alike — who have bugs, patches, features, ideas, complaints, hopes and dreams that need attention.

The last thing I want to be is a bottleneck that prevents our users from getting what they need, or our open source developers from being able to participate effectively!

Multicore brain upgrades aren’t yet available, so to keep us running at top speed I’ve suggested, and gotten Sue & Erik’s blessing on, splitting out the components of my current CTO role into two separate positions:

As Senior Software Architect, I…

  • maintain the MediaWiki development roadmap
  • give timely feedback and review on feature ideas, patches and commits
  • ensure that end-users and bug reporters are treated respectfully and that their needs are met
  • get developers & users involved and talking at local and worldwide events as well as online
  • represent the “face of the developers” interacting with our user community (both Wikimedians and third-party MediaWiki users)

As Chief Technology Officer, I…

  • set high-level strategic priorities with the rest of WMF
  • handle administrative management for the Wikimedia Foundation’s technical department & internal IT
    • budgeting
    • vendor relations & purchase approval
    • hiring & personnel details
  • work with the fundraising side of WMF to seek out and make use of potential resources:
    • grants for projects we need
    • in-kind donations of infrastructure
    • sharing development work with like-minded orgs
  • ensure that the operations team has what they need to address current and predictable future site needs
  • ensure that the developers have what they need and are coding smoothly
  • plan and implement internship programs and volunteer dev events both on-site and elsewhere

I’ll continue to act in both roles until we’ve found a satisfactory candidate to fill the CTO position (full job description will go up soon), at which point I’ll be freed up to concentrate on being a full-time Senior Software Architect. (Yes, I’ll review your patch!)

I will of course continue to work closely with our eventual CTO… the idea is to find someone who’ll make the decisions I would have wanted to if I only had time. ;)

– brion vibber (brion @ wikimedia.org)
CTO and Senior Software Architect, Wikimedia Foundation
San Francisco

Categories: Jobs, Technology
Tags:
Categories:

Tags:
2 Show

2 Comments on $cto[] = clone $brion;

SoWhy 5 years

I always thought Tim Starling was a good candidate for CTO, he has almost as much experience as Brion when it comes to the technical stuff, hasn’t he?

Nick J 5 years

Good call – I’m in awe at the amount you take on, and whilst I imagine it probably feels a bit weird to push for splitting out your own position into 2 roles, I suspect it’s the right way to go – after all, there are only so many hours in a day and everybody needs to sleep! Further, I find with my job (which sort of shares a broad mix of pure techy stuff – like: dev, bugs, coding, triage, troubleshooting, admin of servers, automation – and managerial/administrative/interpersonal stuff like making sure the server bills are paid, talking with customers about what they want in future versions of software, ordering hardware, demo-ing software to potential customers, etc) that they require very different thought processes; the more techy tasks can be grouped together and mixed productively in a day, OR the managerial tasks can be grouped together and mixed productively in a day, but mixing the two different types of tasks together in a day seems to reduce my productivity. At least that’s my personal experience – so separating them out somewhat reduces this problem too. Anyway, good luck with it! — All the best, Nick.

Leave a Reply

Your email address will not be published. Required fields are marked *