Jacob Kaplan-Moss

I’m a software developer, co-creator of Django, and engineering leader. I work at Latacora, co-own REVSYS, and am the Treasurer of the Django Software Foundation. Previous jobs: Hangar, 18F, Heroku. If you’re looking to contact me, please see how to get in touch and the ways I’m available to help.

Writing

If we had $1,000,000… October 8th, 2024

What would the Django Software Foundation look like if we had 4x our current budget?

Ethical Applications of AI to Public Sector Problems October 1st, 2024

There have been massive developments in AI in the last decade, and they’re changing what’s possible with software. There’s also been a huge amount of misunderstanding, hype, and outright bullshit. I believe that the advances in AI are real, will continue, and have promising applications in the public sector. But I also believe that there are clear “right” and “wrong” ways to apply AI to public sector problems.

All I Need to Know About Engineering Leadership I Learned From Leave No Trace July 12th, 2024

Sumana challenged me to apply the principles of Leave No Trace to engineering leadership, so here we go.

Paying More for Media June 11th, 2024

A new principle I’m trying to follow: we should be paying more for independent media. How I got there, and a list of the media I’m paying for.

Why I'm Not Writing a Productivity Series April 4th, 2024

I planned and started to write a series about personal productivity systems, but I’m abandoning the series. Here’s why.

Mentorship, coaching, sponsorship: three different — and equally important — tools for developing talent April 1st, 2024

One of the main responsibilities of a leader/manager is helping their staff develop. Mentorship, coaching, and sponsorship are import tools in the staff development toolbox. Good leaders should be adept in all three, and know when (and when not) to use each. In my work with new managers, I sometimes see confusion about these three different tools, and I see people using them in the wrong circumstances. So here’s a glossary, a high-level explanation of what these three things are, how they differ, and where to use them.

Discussing Open Source funding and sustainability on the Sustain podcast March 29th, 2024

I was invited on the Sustain podcast to discuss my recent rant about open source sustainability. I talked about my reaction to the criticism that open source maintainers receive when they take funding, and how this is a personal issue for me – maintainers aren’t abstract ideas to me, they’re my friends. We discussed my call for a more expansive definition of open source, and got into some of the nuance about some of the problems this can cause.

Talking about Django's history and future on Django Chat March 20th, 2024

I was on the Django Chat podcast to about Django’s history, the creation of the DSF, my recent return to the DSF board and my goals there, and the things I’m excited about for Django going forward. Here are some highlights from the interview.

So you've been reorg'd... March 12th, 2024

I’ve been through close to a dozen reorgs. This article contains the advice I wish I’d been given earlier in my career when I didn’t yet have that experience. Reorgs are disruptive, and nobody really tells you what to do in the wake of one. It’s easy to feel adrift, scared for your future, and uncertain about how to behave. Some of that fear is warranted: your job security probably goes down in the months following a reorg. But confusion and chaos aren’t necessarily signs that the reorg will go poorly, and there are things you can do to help give you and your team a better chance of emerging successfully.

Estimating Software Projects: Breaking Down Tasks March 11th, 2024

Something missing from this series on estimation, until now, has been a discussion of how to “break down” a project into a well-defined task list. I’d not previously written about this because, to me, it’s largely intuitive. But it isn’t for everyone, so this post fills the gap, and explains in detail how I break down projects into a task list.

Paying people to work on open source is good actually February 16th, 2024

If you have a problem with maintainers getting paid then you have a problem with me and I suggest you let that one marinate.

Tracking Engineering Time February 7th, 2024

How do you understand what engineers are doing with that time? How do you know if they’re working on the “right” things? Here’s how I suggest answering those questions.

Philanthropy Update January 10th, 2024

Lessons learned and updates from a couple of years of executing on my philanthropic plan: finding and tracking organizations, continuing to wrestle with anonymity, and a list of donations we’ve made.

My Diverse Hiring Playbook January 4th, 2024

I’m really proud of my track record building diverse teams. When I’ve been responsible for hiring, those teams have consistently been more diverse than industry norms, often significantly so. Over the years, I’ve developed a set of “plays”, some go-to tactics for increasing the diversity of my hiring pipeline. This is that playbook.

Managing Technical Debt December 20th, 2023

My playbook for managing technical debt.

Making Decisions: First decide how to decide: “one weird trick” for easier decisions December 5th, 2023

This is my preferred decision-making process – a version of the “document-discuss-decide” process that I called for at the end of the part 1 in this series. The most important part of this process – its “one weird trick”, if you will – is the way it includes a “how shall we decide?” step. This separates out the meta-question of the decision-making process from the decision itself, which (I’ve found) makes decisions much easier.

Making Decisions: RFC processes are a poor fit for most organizations December 1st, 2023

The RFC process has been a huge success in defining the standards that run the Internet, but naively adopting this process for your company is a mistake. RFC processes tend to fail at most organizations because they lack a clear decision-making step.

Professionalism: No Yelling November 21st, 2023

It’s never acceptable to yell at work. The norms of professional behavior call for a cool demeanor. It’s normal to have emotions at work, but there’s a limit to how strongly you can express those emotions, particularly anger.

Performance Is Contextual November 20th, 2023

Managers often talk about performance as a static thing. We say that someone is a “high performer” or “low performer”, as if performance is a fixed attribute of their personality. This fixed mindset is a mistake. Performance is contextual: how well you perform your job is deeply dependent on the conditions around you.

Does someone need to be a good manager to give good management advice? November 16th, 2023

In a management Slack I’m in, someone responded to a list of commonly-recommended management books by asking, “are these people good managers though?” It’s a fair question! But it’s not quite so simple.

Full Archive →