Software Developers: How to have Impact? [WIP]

post by Yonatan Cale (hibukki) · 2022-06-19T09:58:35.165Z · EA · GW · 9 comments

Contents

      This post is Work In Progress
  Can Software Developers Have Impact?
    Why do I think so? (is this still in doubt?)
  The 2 main things that determine your impact are..
    Entrepreneurship
  Is working directly more impactful than earning to give?
    I predict
    If my prediction is wrong
  How to have a lot of impact? 3 plans
  Plan A: Apply to EA aligned orgs
    Q: Which org? There are lots of options and I’m not sure which are the best / which would accept me
      A: Orgs from the 80,000 hour job board
      A: Apply first, filter later
      A: Apply to your top choices first
    Q: Am I wasting the org’s time if I apply even though I am [not qualified / applying to other places]
    Q: If I don’t pass, when can I reapply?
    Q: Can’t EA orgs hire the next best person?
    Q: I’d apply, but [They’re not remote / the salary is too low / I don’t know how I’d feel working in a small team / …]
    Q: I’d apply, but I have a very specialized skillset / I’d apply, but I don’t have the specialized skillset
  Plan B: Work in the industry, build skills and make money
    Which skills?
      If you want to work at a specific EA org
      If you don’t really mind which org
        Skills I usually won’t recommend:
        Will the skill that you learn have demand in the future or will EA tech needs change?
      Bonus: Do you want to work at AI Safety?
        What do they ask?
        How to prepare?
    How to build skills quickly #1: Get mentoring and feedback
      Ask about mentoring before applying
      Other common questions about mentoring
    How to build skills quickly #2: Variety
      Q: Isn’t it good to become an expert?
      Alternative framing: “Do something hard”
      Common mistake: Apply to whatever you already know how to do because that’s where you have the highest chance to get hired
    How to build skills quickly #3: Do something you like
      Common mistake: Go for whatever has “the most demand”. 
      It matters if you’re excited. How do you feel about your job when you come home?
    Q: Switching jobs: Will anyone accept me? / I worked here for so little time, would anyone want to hire me now?
    Q: Switching jobs: I need income stability
    Common mistake: Staying in a job that is bad for you
    Questions about the interview process
  Plan C: Learn programming, write a CV, and get your first job
  Appendix: Can Software Developers Do Harm?
    Some ideas on how to check if your current workplace might do harm:
  Thank you
None
9 comments

This post has sections so that you can skip the parts that don't interest you! Specifically, consider skipping the introduction straight to the TL;DR [EA · GW].

This post is Work In Progress

You can suggest changes to it directly in this Google Doc.

Can Software Developers Have Impact?

Yes

Why do I think so? (is this still in doubt?)

  1. EA orgs need software developers
  2. Developers are really useful for lots of things: They get high salaries, which indicates there is a lot of demand even given their high supply.
  3. As a “worst case” (which is a pretty great case), you could probably earn lots of money, donate some of it, and have a profession that I personally consider really fun.

The 2 main things that determine your impact are..

  1. Working on an important problem
  2. Using a good approach to that problem

A relatively easy way to get “full points” on these is to pick your favorite top cause, and work at an EA (or an EA vetted) org that is working on that cause.

Most of the article will discuss how to get to that situation.

Other good paths also exist; I want to mention one of them:

Entrepreneurship

It could be a great path (1, 2, 3) but it’s out of scope for this post.

Is working directly more impactful than earning to give?

This is easily testable:

Ask the org that you’re considering applying to “would you prefer hiring me, or getting [as much as I’d donate]”?

I predict

If the org wants to hire you, they’d prefer that over getting 5x as much as you’d donate, and they’d be all “OMG YES!” about it.

But why guess what is easily testable?

If my prediction is wrong

If the EA org would prefer donations, then some of the sections here (like “which org?”) won’t be relevant for you, but others (like “how to build skill?”) still will. 

Skipping sections is encouraged!

How to have a lot of impact? 3 plans

The rest of the post is split into plans, and the intent is that you try the top plans first, and if they don’t work, go to the next plans

Also see: Preparing [EA · GW] for an AI Safety job at Anthropic or Redwood

Plan A: Apply to EA aligned orgs

Here are some very common questions:

Q: Which org? There are lots of options and I’m not sure which are the best / which would accept me

A: Orgs from the 80,000 hour job board

Here.

A: Apply first, filter later

It’s a common mistake for EA devs to first filter the list of orgs for a long time, and only then apply, without knowing if those orgs will accept them. I recommend first applying, and then filtering based on where you are accepted.

A: Apply to your top choices first

If there are a few orgs that are so good that you’re not sure which one you’d choose if you were accepted even after thinking about it for 2 minutes (not 2 weeks!) : Start by applying to all of those. If they don’t accept you, go to your next choices.

Q: Am I wasting the org’s time if I apply even though I am [not qualified / applying to other places]

NO!

This is a big problem in the EA dev community: Many devs don’t apply because they are worried about wasting the org’s time, please be part of the solution!

You can, however, be transparent about the situation, for example:

  1. “Hey, I’m applying even though I have less years of experience than your job ad requires. I’m writing this because I don’t want to waste your time, feel free to not interview me if you don’t want to”
  2. “Hey, FYI I’m applying to a few other EA orgs as well, so it could be that I’ll end up going to one of those. Would you like to interview me anyway?”

I said both these things myself.

Q: If I don’t pass, when can I reapply?

This will often be written in the job ad, and will often be “you can reapply immediately”.

If it’s not written, you can ask (or get me to ask, if you prefer).

For example: “Hey, I’m considering applying, but I’m worried that I’m not ready for the interview. Do you prefer that I take time to study for the interview, or that I apply immediately and study only if I don’t pass?” 

I said this myself too.

Q: Can’t EA orgs hire the next best person?

Probably not. There is a strange problem where EA Devs don’t apply because everyone expects that the next-best person is amazing or something like that. Be part of the solution!

Q: I’d apply, but [They’re not remote / the salary is too low / I don’t know how I’d feel working in a small team / …]

This is a blind spot for many orgs.

Consider telling them. I’m trying [EA(p) · GW(p)] to aggregate this information myself, if you’d rather tell me.

Q: I’d apply, but I have a very specialized skillset / I’d apply, but I don’t have the specialized skillset

A common problem in EA is that each developer has a specialized skillset (like blockchain) and assumes that someone else would be better (like a django+react developer), and this ends up with lots of people not applying at all.

Please be part of the solution!

Plan B: Work in the industry, build skills and make money

Which skills?

If you want to work at a specific EA org

If you don’t really mind which org

TL;DR: Are you worried about learning something that EA doesn't need? EA needs lots of things and this is almost always not something to be concerned about, but if you are concerned, read on:

There are more than 100 [EA · GW] EA aligned tech jobs

Almost any skill you’ll pick will have demand, including frontend, backend, ML / data science, building websites or apps, distributed systems, devops, information security, and probably more.

Skills I usually won’t recommend:

These skillsets don't currently have demand in EA as far as I know:

Will the skill that you learn have demand in the future or will EA tech needs change?

TL;DR: The skills will probably still be relevant, yes.

I observe that EA tech needs have grown over time, I can imagine them going up even more [? · GW], and I can’t realistically imagine them going down (assuming EA keeps existing). So my guess is that things that are needed today will also be needed in the future.

Also, my recommendations below will be something like “have an amazing career regardless of EA”, so I don’t expect you to be at risk for “wasting your time learning something useless”. Use your judgment of course, but that is my expectation.

Bonus: Do you want to work at AI Safety?

I recently spoke to hiring managers at Anthropic and Redwood Research. They both really want to hire strong developers, even if the developers have zero ML experience and no AI Safety research background.

What do they ask?

A significant part of the interviews in both companies are “build a small program in 1 hour”. These are not leetcode questions (for example, they don’t focus on the solution’s complexity), but if you’re good at solving leetcode questions quickly, and writing code quickly in general, then you’ll probably do well in those interviews.

Anthropic said this is similar to what they ask.

How to prepare?

Here are some ideas they suggested:

I personally think that practicing writing tiny programs that actually do something in 1 hour would be useful. For example:

How to build skills quickly #1: Get mentoring and feedback

Ask about mentoring before applying

TL;DR: When applying, ask “will I have 1 hour every week where I can ask a senior developer questions and get feedback to help me improve?”

This will filter out lots of jobs, such as jobs where you are the only developer. 

Also, some places may say they have much more than that: "Just one hour? What? We'll do much more!".

Common mistake: Asking something very subjective 

For example: “will I learn a lot?” or “will you help me improve?”. 

Almost all hiring managers would reply with “yeah of course!” to those.

Bonus: Try understanding how good your future colleagues are 

I don’t think I can explain how to do this, but it’s probably worth trying.

Bad idea: Believe the hiring manager when they say “we only have the best people!” (Fun fact: I used to totally believe these claims myself).

Other common questions about mentoring

These questions are out of scope for the post, but I’ll at least mention them as having solutions:

Feel free to contact me [EA · GW] about these.

How to build skills quickly #2: Variety

Here’s my made-up chart who’s point is “the learning curve is steeper at the beginning, when we’re learning something new”:

When we do something that we already know how to do, we often learn less quickly.

Magic solution: Go do something new.

Q: Isn’t it good to become an expert?

Yes. But this isn’t the common situation.

“There is a difference between getting 5 years of experience and getting 1 year of experience 5 times”.

For example: If you already know how to build a django backend and you’re building more functions that you mostly already know how to do - then this is not “becoming an expert” and maybe it’s time to switch jobs.

Alternative framing: “Do something hard”

Or, “don’t do something easy” or “don’t do something you already know how to do”, if a main goal of yours is to build skill.

It’s probably better to apply to jobs that are “over your league” or in a domain you don't yet know so that you'll end up doing things you don't know how to do.

Common mistake: Apply to whatever you already know how to do because that’s where you have the highest chance to get hired

Much better: Apply to the places that you most want to work at, and if you’re not accepted, then consider applying to places you have more chances of getting accepted to. You don’t need to apply to a field where 1000 companies are willing to hire you, you only need 1 company, give or take.

How to build skills quickly #3: Do something you like

There is an element of personal fit within software development. Some people like frontend, some like backend, some like ML, and so on.

Common mistake: Go for whatever has “the most demand”. 

There is lots [EA · GW] of demand everywhere, and we don’t want all EAs learning the 1 skillset that has the most demand and leaving the others empty, right?

There’s an advantage to each person doing whatever they’re best fit at.

It matters if you’re excited. How do you feel about your job when you come home?

If you come home and think about the exciting interesting problem you have at work, this is very different from coming home after another boring day at the work that you know you “must” do. The difference in your skill in 5 years will be significant between these situations. Pick the former!

Q: Switching jobs: Will anyone accept me? / I worked here for so little time, would anyone want to hire me now?

Consider trying: apply first, without quitting your current job, and see if you’re accepted. Or even cheaper: Send your CV and see if anyone invites you to an interview.

Q: Switching jobs: I need income stability

Yeah I endorse income stability. In most situations I recommend first finding a new job and only then quitting.

Common mistake: Staying in a job that is bad for you

It is common for me to hear people staying in a job with a bad boss, or not enough learning, or something else that is a really bad fit, but they stay because of one of the reasons above, sometimes the option of leaving is almost unthinkable (“quitting after less than a year??”).

I am not saying all cases are like this. Sometimes problems can be solved, sometimes there are other relevant circumstances, but it seems to be useful to people when I share my prior, so here it is.

Questions about the interview process

These questions are out of scope for the article, but I want to put them here for you to know that these are common questions, often with “textbook” answers, it’s not just you, and I invite you to talk to me [EA · GW] about them.

  1. Q: Interviewing is not fun! A: There are things to do about that!
  2. Q: How much money to ask for? / How to negotiate for salary?
  3. Q: How to optimize a job search? I want a better job next time! I had 3 bad jobs already, I don't want that to happen again!
  4. Q: Should I learn lots of [leetcode / best practices / architecture / …] ?
  5. Q: How to improve my CV? A: This [EA · GW] very reliably improves CVs
  6. Q: Should I polish my [blog / side project / article] before applying?
  7. Impostor syndrome!

Plan C: Learn programming, write a CV, and get your first job

See this post [EA · GW].

Appendix: Can Software Developers Do Harm?

Yeah eh please don’t destroy the world or anything thank you!

Some ideas on how to check if your current workplace might do harm:

Thank you

You can suggest changes to it directly here.

If you write a post on one of the topics I mentioned as out of scope, let me know and I’ll link to you

9 comments

Comments sorted by top scores.

comment by mic (michaelchen) · 2022-06-19T10:23:29.509Z · EA(p) · GW(p)

Distributed computing seems to be a skill in high demand among AI safety organizations. Does anyone have recommendations for resources to learn about it? Would it look like using the PyTorch Distributed package or something like a microservices architecture?

Replies from: hibukki
comment by Yonatan Cale (hibukki) · 2022-06-19T13:37:19.296Z · EA(p) · GW(p)

To answer your question: My best idea is working on a production distributed product that has bugs around that and debug them, and/or set up a system like that, perhaps with k8s.

This answer is pretty bad, all these ideas are very hard and will take a long time to implement.

My prior is that you might have a bottle neck which is easier to tackle than this one. Wanna share what your goal is, where you stand, and what you're planning to do?

Replies from: hibukki
comment by Yonatan Cale (hibukki) · 2022-06-19T14:31:03.725Z · EA(p) · GW(p)

I have a better answer:

Is your bottle neck distributed computing and except for that you can get [the AI Safety job you spoke about] tomorrow? Did you interview with such a company to make sure this is all you have missing?

If not - I'd probably focus on other skills, mainly because distributed computing (1) is not a must, and (2) is pretty hard to learn, compared to other skills, many of which are more important, at least given the ideas I have on how to learn it.

See also the section [EA · GW] on preparing for AI Safety jobs if you didn't see it already

comment by Guy Raveh · 2022-06-19T11:58:50.032Z · EA(p) · GW(p)

This is super relevant for me at this exact moment. Thanks for writing it!

Ask your boss if they think your work might advance the world’s ML capabilities. “yes”: Worry.

Is it possible to get good at ML without advancing ML?

Replies from: hibukki
comment by Yonatan Cale (hibukki) · 2022-06-19T13:32:18.431Z · EA(p) · GW(p)

[I'm not an expert in AGI Safety, feel extra free to disagree]

 

I think using existing AI capabilities is fine, for example:

  • Detect [diseases or so] from [pictures or so]
  • Fraud detection
  • Use gpt-3 to write funny tweets

 

I think creating new AI capabilities is problematic, for example:

  • Make it 10x cheaper to train models
  • Make GPT-4

 

And of course you can learn ML though MLAB (though I hear they're overflowing right now) or other resources, like AI Safety Support maybe.

Replies from: Guy Raveh
comment by Guy Raveh · 2022-06-19T17:19:10.168Z · EA(p) · GW(p)

And of course you can learn ML though MLAB (though I hear they're overflowing right now)

I personally didn't get in, presumably for that reason :)

comment by Jona · 2022-06-21T06:33:32.867Z · EA(p) · GW(p)

Thanks for sharing your considerations! I love the approach. Is there a collection/overview of case studies of Software Developers, who had a lot of impact e.g., by community building, transitioning to AI safety, doing earning to give. I imagine that might be quite helpful for software developers, who are thinking about how to optimize their impact

Replies from: hibukki
comment by Yonatan Cale (hibukki) · 2022-06-21T17:31:00.378Z · EA(p) · GW(p)

I don't have such a collection myself.

 

May I ask how this might be helpful for software developers who are thinking about how to optimize their impact?

 

I also want to guess that most stories are "they applied to an EA aligned job", which is something I'm a pretty strong advocate of

Replies from: Jona
comment by Jona · 2022-06-21T19:09:03.383Z · EA(p) · GW(p)

I only have anecdotal/weak evidence, but I know that some members of the Effective Altruism and Consulting Network felt encouraged to apply for roles at Open Phil after learning that they already hired several consultants