Ambitious Altruistic Software Engineering Efforts: Opportunities and Benefits

By Ozzie Gooen @ 2021-11-17T18:12 (+109)

This is part 1 of what I expect to be a 3-part series. The next parts will focus on the costs of these technical projects and more specific ways to kickstart them.

Meta

Rigor: Writing based on my experiences and education in the tech industry. I spent around 50 hours on this series plus some sporadic thinking and discussion. I focused more on idea quantity than neatness or data.

Intended Audience: Effective altruists interested in either funding or working on ambitious software projects.

History: This series was originally written as one Google Doc in March 2021 for private conversations. I've since done some updating to post it publicly. One important update since this document was written is that the CEA tech team has seemed to really up hiring considerably. This seems great, though I'm sure we could have even more, so it still seemed useful to post this.

About me (Ozzie Gooen):
I’ve been thinking about this a lot over the last several years. I joined 80,000 Hours as a web developer in 2013 hoping to do major/ambitious work, but there I realized that the funding situation at the time wasn’t large enough for most ambitious software efforts. I’ve since spent time in other startups, making my own startups, and doing consulting for small and large companies.

Recently I’ve been planning what work QURI should do. We’re considering focusing on engineering. Some of the motivation for this topic is to help make decisions for QURI.

Acknowledgments: Many thanks to Aaron Gertler, Rachel Bui, JP Addison, Daniel Kokotajlo, Adam Gleave, Daniel Eth, Oliver Habryka, Jonas Vollmer, and Nuño Sempere for their comments.

Motivation

When I think of,

There’s an elite community with a net worth of over $40 Billion, made up of many genius mathematicians, engineers, and entrepreneurs and they’re trying to optimize the future of the world

I think of things like this:

Lots of monitors https://www.vssmonitoring.com/best-monitor-for-trading/

From Iron Man 2 (From Iron Man 2)

Right now we clearly don’t have this. Open Philanthropy and other core effective altruism organizations are highly philosophically focused as opposed to technically focused. This seems like a good beginning, but perhaps a suboptimal end.

Large technical implementations would be expensive ($10 Million to $100 Million+ per year). They would be different from current setups in some key ways. But I think they could be worth it.

Perhaps the best analogy would be that of the finance industry. Early on there were clever individuals or small teams who would intuitively make bets with very little information. Financial bets are very similar to making altruistic decisions. Charitable funding decisions are particularly equivalent, but so might be more generic things like career decisions. Over time the financial sector became far more sophisticated, with intense specialization, formalization, and expertise. Data-heavy and quant-based approaches have become decisive in much of the market, and continue to expand. We might expect altruistic decisions to follow a similar trajectory; begin with clever people using intuitions (like with existing EA funders), and expand to use more data and automation.

One counter-example in the field of finance is venture capital firms that invest with (relatively) little data. However, they exist in environments with applications like Crunchbase, AngelList, and other tools, that organize and charge for data.

Select Project Ideas

What should we code? I'm less certain about particular software interventions than I am about us being able to find some good bets (assuming we have good people).

I personally see software opportunities all around me, but it's difficult to put them into distinct large-project-size clusters. Lots of internal tools often start really small, then a few turn out to be surprisingly useful, and these sometimes scale.

Below are some ideas I've been personally interested in. I'm sure there are many more, this is just to give one take. My background is in effective altruism community, strategy, and meta-research, so these ideas are heavily biased towards those areas.

Some ideas include:

These ideas are very software-dominated. There are also large classes of promising ideas that would look like “tech bundled with services”. EA Funds is an example. There’s solid software in the backend, but also a lot of continuous grant evaluation and operations work.

Many top startups offer products that combine software with different services. See Doordash, Instacart, WeWork, Rippling, and Deel.

I also recommend going through LessWrong and the EA Forum for more ideas. Some tags and series that stand out include:

Key Categories of Potential Projects

I think of EA software in three broad categories:

  1. Internal tools. Things only for the EA community.
  2. External tools. Standard software tools created for other groups.
  3. Fundamental technologies. Core technologies, like internet protocols, that we think are valuable enough to fund, either because they could be useful for internal or external use.

Internal Tools (to be used by EAs)

Internal tools software has a unique place in industry. This typically refers to tools built for use by a specific company. I'd argue that tools "only used by EA organizations" would count as "EA internal tools" even if multiple (EA) organizations are using them.  Internal tools in industry get little product manager oversight, meaning that they are rough on the edges. You can read more about their use here and here.

Examples:

External Tools (to be used by non-EAs)

Note: Arguably Public Interest Technology would fall into this bucket.

Fundamental Technologies

EAs are doing fundamental philosophical, mathematics, and biodefense research (decision theory, MIRI work). It sometimes makes sense for us to either directly pursue or fund other fundamental engineering work. With QURI I’ve been working on some fairly low-level probabilistic open-source tools; I could imagine much more work being done in this space. Another area that comes to mind is fundamental internet technologies like the Dat protocol and knowledge graph software.

Most technical AI safety research would count as "fundamental technologies".

One would think that fundamental technologies (even outside technical AI safety) shouldn’t be neglected, but in practice, from what I can tell, many seem to be. Honestly, I find it very strange

Douglas Engelbart was one of the most significant innovators behind modern computer interfaces but faced substantial funding challenges for much of his career. Many lectures by Computer Science greats involve them complaining that the really innovative work (language design in particular) isn't funded. My impression is that there actually isn't that much agency+money+altruism out there for foundational R&D. See this post for more discussion on open-source software in particular.

Partnerships

Sometimes it’s worth collaborating with existing organizations, rather than making things from scratch. This could be especially true in cases where there are existing information sources that we'd simply like to add data to for public consumption (Wikipedia, as an example). Partnerships could include effective altruists giving advice, time, and funding.

Some examples:

We could work with Our World In Data to focus more on EA endeavors or add forecasting abilities.

Generic Benefits of Software Engineering

Note: I moved this section to the bottom because I found that people found the other sections more interesting.

Software brings with it some unique advantages over more traditional effective altruist research.

Scalability

Engineering can be much more scalable than research. Engineers are far more similar to each other than researchers, and many engineering systems are relatively well-understood, even if they take a lot of time to make.

Thus, engineering projects can be surprisingly predictable and corresponding costs estimable. The main contractor I paid for much of the work for Foretold cost $30/hr. They were based in Ukraine. They were assigned to me by an agency, they didn’t speak English particularly well, but we got through a lot of functionality together. It cost around $50k total, for probably around 70% of the Foretold codebase. I think this was a pretty good deal.  Arguably it would have been nice for an effective altruist to do this, but I don’t think any available EA programmer would have gone for a similar rate. Given the project was experimental and I wasn’t sure about a long-term plan, this was a good fit.

The predictability of certain software projects is one reason why software startups are so popular.[2] VCs can be fairly confident that a team will be able to scale their technology according to expectations.

If requirements are known upfront, it’s often possible to have a rough idea of how much a project will cost. Agencies will help provide estimates. These agencies can be expensive but are typically so for a reason. I’ve worked with one agency, Gigster, and realized that despite the markup, they actually seemed to be about breaking even. It came out that in the case of intense project failures, Gigster would foot the bill, and these expenses were considerable.

I believe that small to medium size projects by some of these agencies can routinely cost between $60k and $400k. (Note that these of course don't include indefinite maintenance, which would be required for a continuing project.)

Measurability

Engineering projects are particularly outcomes-based and measurable. It’s typically much easier to evaluate the quality of software than it is to build it, and it’s relatively straightforward to get a lot of metrics on its use. In comparison, more traditional effective altruist research can be very difficult to measure.

Optionality

If we had more software engineering talent accessible, we could easily pull off people for urgent or strategic projects.

First, we might want general-purpose abilities for unforeseen future disasters. During the start of COVID-19, several EA groups got involved to different extents, and some of this was very useful. At the same, if we were better prepared, I would guess that much more could have been done. This is important in particular because future disasters might be more unexpected and much worse.

Second, it could be good to have broad abilities available if/when AI ramps up. There are many directions things might take.

Learning-by-doing
This is more an argument for software in the short-term, rather than software in total.

If we think we will want to have ambitious software projects in the future, it would be useful to get started soon, even if the short-term projects are much smaller.

So far effective altruists have spent many research years. That's come with a lot of benefits for future research work.

All of these benefits should also hold for software engineering work.

Concluding Thoughts

That was a lot of stuff. Again, the goal was to be more comprehensive than neat. I have a lot of thoughts on this topic and am trying to get them all out.

We haven't yet touched the costs of these technical ventures. Unfortunately, I think the costs are very high. Recent startup valuations have been very high. Programmers can cost a lot of money, and strong technical teams have incredibly high opportunity costs.

However, costs are high not because supply is low, but because demand is high. It's high for a reason: software projects can be incredibly scalable when carefully targeted and managed. There's a reason why entrepreneurs are paid so much.


  1. Our World in Data isn’t exactly made by effective altruists, but I think it’s a good example of the kind of project we might want more of. That said, it does actively collaborate with our community. ↩︎

  2. This is in comparison to fundamental hardware or biological ventures, for example. Software startups commonly fail for technical reasons, they just do so less often than other ambitious ventures. ↩︎


Ben_West @ 2021-11-17T19:29 (+17)

Thanks for writing this! A couple of random thoughts:

  1. EA is fortunate to have a lot of software engineers (and money), and I'm glad you are thinking about how to use this resource
  2. That being said, I don't see a ton of projects where the most immediate bottleneck is software engineering. In most of the project you list, it seems like there's substantial product management work needed before software engineering becomes the bottleneck
    1. (I don't think this is unique to EA. Most successful tech companies have pretty basic software, and the success comes more from product insights.)
  3. My impression is that there are more concrete software engineering projects in bio security and farmed animal welfare than in AI safety or EA meta; possibly it's worth including some of those in your document.

If you disagree with me about (2) I would be really interested to discuss – I talk to a lot of software engineers, and it would be awesome to have things that I can point them to.

Ozzie Gooen @ 2021-11-18T07:28 (+10)

I don't see a ton of projects where the most immediate bottleneck is software engineering. In most of the project you list, it seems like there's substantial product management work needed before software engineering becomes the bottleneck

It seems like we might just be disagreeing on terminology? 

My main interest is in advancing software projects (I called them "Engineering Efforts", but this encompasses many skills), but I care much less about the specific order in which people are hired. 

That said, I don't feel like I really understand you. It's hard for me to imagine hiring a bunch of product managers before hiring a bunch of engineers. I've never seen that happen.

I have seen "tech founder" types with both skills kickstart things (like new tech companies, of course!). I imagine that we'd really want people with these skills in the early days. Senior people (or, hacker types who are young, but can still do everything solo) who can pioneer new areas. 

Tech research labs and similar are good examples; they have found some sorts of talent who seem particularly good at doing innovation.

If you think that our existing software infrastructure is particularly bottlenecked on traditional product management skills, that's good to know, and I wouldn't at all argue with hiring more product managers at this stage to help. 
 

If you disagree with me about (2) I would be really interested to discuss – I talk to a lot of software engineers, and it would be awesome to have things that I can point them to.

It's difficult for me to imagine exactly who these people are. I think some "software engineers" are capable and interested to do the product work themselves, and some aren't. If they are, that could be optimal, as they wouldn't need much oversight or someone to work with them. I think this is true for a minority of people, and these people also often have high opportunity costs (the sort of person also interested in just founding a company) 

For those reading this, the types that are good for "in-EA software entrepreneurship" are usually the types who:
- Have built a few exciting/interesting projects themselves or with one colleague or so.
- Understands EA a bit.
- Often enjoys hackathons, or other very self-directed work.
- Can do some basic UI/UX work.
- Full-stack, or focussed on mobile apps only. 

Every so often there are hobby tech projects that launch here on the EA Forum, those are the sorts of "EA Entrepreneurship" I'm thinking of. 

I would be interested in unleashing a few people like these as "internal entrepreneurs" or similar in EA.

EA funds sometimes gives out grants for people like this, and I could see us doing more of that.

Ben_West @ 2021-11-19T17:54 (+4)

Every so often there are hobby tech projects that launch here on the EA Forum, those are the sorts of "EA Entrepreneurship" I'm thinking of.

Cool, I'm not sure we really disagree – the thing I want to flag is that these projects generally seem to fail not because of software engineering but because of some non-technical thing (e.g. they are not actually solving an important problem).

Ozzie Gooen @ 2021-11-19T17:57 (+2)

Noted!

these projects generally seem to fail not because of software engineering but because of some non-technical thing

Agreed, though this seems mainly for getting them off the ground (making sure you find an important problem). Software startups also have this problem; and there's a lot of discussion & best practices about the right kinds of people & teams for software startups.

Ben_West @ 2021-11-19T18:20 (+2)

this seems mainly for getting them off the ground

Agreed. I think it would be cool for someone to create an "engineering agenda" that entrepreneurial software developers could take ideas from and start working on, analogous to e.g. this post from Michael.

(I think this would be one level of detail more specific than your project ideas listed in OP. E.g. instead of "better data management" it's something like "organization X wants data Y displayed in way Z." Possibly you are planning this for later posts in this sequence already?)

Ozzie Gooen @ 2021-11-19T20:03 (+2)

I think it would be cool for someone to create an "engineering agenda" that entrepreneurial software developers could take ideas from and start working on, analogous

I think my hunch is that this is almost like asking for an “entrepreneur agenda”. There are really a ton of options.

I’m happy to see people list all the ideas they can come up with.

I imagine “agendas” would be easier to rigorously organize if you limit yourself to a more specific area. (So, I’d want to see many “research agendas” :) )

Possibly you are planning this for later posts in this sequence already

My main area is forecasting and evaluation. (A la QURY). The plan is to spend time writing up my thoughts on it and then use that to describe an agenda of some kind. This is more cause-specific than skill-specific, but maybe 2/3rds of the work would be for software engineering.

Quinn McHugh (He/Him) @ 2021-12-25T02:49 (+1)

I think it would be cool for someone to create an "engineering agenda" that entrepreneurial software developers could take ideas from and start working on, analogous to e.g. this post from Michael.

As an early career software developer who'd love to take on an EA-related project for skill building purposes, I'd be great to have  a resource like this available.

ESRogs @ 2021-11-18T00:16 (+4)

The RSP idea is cool.

Dumb question — what part of the post does this refer to?

Ben_West @ 2021-11-18T06:37 (+3)

Apologies, that line was referring to something from an earlier draft of this post. I've removed it from my comment.

Ozzie Gooen @ 2021-11-18T07:36 (+2)

My impression is that there are more concrete software engineering projects in bio security and farmed animal welfare than in AI safety or EA meta; possibly it's worth including some of those in your document.

I could easily see this being the case, I'm just not in these fields, so have far fewer ideas. If anyone else reading this has any, do post!

Yonatan Cale @ 2021-11-19T01:07 (+10)

Regarding "Twitter that promotes good discussions", check out what the LessWrong team is considering [link to comment on lesswrong.com], looks really exciting!

 

Plus the amazing process that seems to be going on around it [from the same linked comment]:

Probably what's going to happen next is that we're going to implement more than one variation on voting, and pick a few posts where comments will use alternate voting systems.

Aryeh Englander @ 2021-11-20T15:19 (+8)

[Disclaimer: I haven't read the whole post in detail yet, or all the other comments, so apologies if this is mentioned elsewhere. I did see that the Partnerships section talks about something similar, but I'm not sure it's exactly what I'm referring to here.]

For some of these products there already exists similar software, just that they're meant for corporations and are really expensive. Just as an example from something I'm familiar with, for building on Guesstimate there's already Analytica (https://lumina.com/). Now, does it doeverything that Guesstimate does and with all of Guesstimate's features? Probably not. But on the other hand, a lot of these corporate software systems are meant to be customized for individual corporations' needs. The companies who build these software platforms employ people whose job consists of customizing the software for particular needs, and there are often independent consultants who will do that for you as well. (My wife does independent customization for some software platforms as part of her general consulting business.)

So, what if we had some EA org buy corporate licenses to some of these platforms and hand them out to other EA orgs as needed? It's usually (but not always) cheaper to buy and/or modify existing systems than to build your own from scratch, when possible.

Additionally, many of these organizations offer discounts for nonprofits, and some may even be interested in helping directly on their own if approached. For example, I have talked with the Analytica team and they are very interested in some of the AI forecasting work we've been doing (https://www.alignmentforum.org/posts/qnA6paRwMky3Q6ktk/modelling-transformative-ai-risks-mtair-project-introduction), and with the whole EA/LW approach in general.

Will it turn out cheaper to buy licenses and/or modify Analytica for general EA purposes instead of building on Guesstimate? I don't know, and it will probably depend on the specifics. But I think it's worth looking into.

Ozzie Gooen @ 2021-11-20T15:33 (+3)

I agree with (basically) all of this. I've been looking more into enterprise tools for QURI and have occasionally used some. As EA grows, enterprise tools make more sense for us.

I guess this seemed to me like a different topic, but I probably should have flagged this somewhere in this post.

On Guesstimate in particular, I'm very happy for other groups to use different tools (like Analytica, Causal and probabilistic programming languages. Normally when I talk to people about this, I wind up recommending other options. All that said, I think there are some areas where some smart programming efforts on our behalf could go a long way. I think the space of "monte carlo" tools is still quite small, and I'd like to see other efforts in it (like more startups).

One issue with what you mention is that I expect that managing a bunch of corporate licenses will be a pain. It wouldn't be great if some smart people can't see or work with the relevant information because their small team doesn't have a license. So in some situations, it's worth it, but if we can (cheaply) get/use open-source tools and standards, that can also be preferable.

kokotajlod @ 2021-11-18T18:18 (+7)

IMO, the page where you have the Iron Man image is basically 90% of it. Basically, when we imagine the future going well due to the efforts of the EA community, we imagine an org like this existing. Therefore we should make it exist.

In more detail: The future is going to get crazy sometime soon. Crunch Time is coming. There are various things that we can predict will probably be useful (and maybe VERY useful) without being able to say exactly how we'll use them. Money is one such thing. Information/knowledge is another. And a third, which has not yet been discussed, is a competent tech company willing and able to quickly execute engineering projects under our direction.

evelynciara @ 2022-01-29T23:26 (+6)

Great post!

I think a natural next step would be to ask EA orgs (such as Charity Entrepreneurship) what kinds of software projects they think would be most beneficial.

--alex-- @ 2022-02-01T01:24 (+3)

My understanding from informal conversations is many CE charities would benefit from simple CRMs and a few from simple ERPs:

  • CRM = Customer Relationship Management -- tracks interactions (outreach, etc)
  • ERP = Enterprise Resource Management -- tracks transactions (cash, physical goods, purchase orders, etc) 

Other EA orgs might have similar needs; a needs assessment might be a valuable project to undertake -- perhaps this has already been done?

evelynciara @ 2022-02-01T04:46 (+2)

Yeah. A tech consultancy could conduct software projects for EA orgs in 3 stages:

  1. Understand the client's needs.
  2. Find out if an off-the-shelf software solution exists (such as an existing CRM). If yes, procure it and adapt it for the client's needs.
  3. If not, try to create a new software solution.
Jackson Wagner @ 2021-11-18T00:44 (+6)

Great post; I like the taxonomy of project types and example ideas. Lots of people who become interested in EA have a background in programming (including myself). This magnifies the importance of exploring EA applications of software engineering, since we could probably unlock a lot of really skilled human capital if we found great altruistic software projects for them to work on.

I think there is also a lot to explore in terms of the incentives, organizational structure, and for-profit potential vs intrinsic charitableness of different project types:

I am also interested in some career-related questions related to marginal charity -- ie, if you are a software engineer thinking about contributing to EA by earning-to-give, to what extent should you try a medium strategy like "mostly earn to give but also bias your career towards especially altruistic projects", versus to what extent should you try to go all the way in one direction (building skills and ladder-climbing up the Google hierarchy as best you can) or the other (trying to find the MOST beneficial project where you can have the most impact, then treating any earning-to-give potential as icing on the cake). But those are still fuzzy questions in my mind that I will have to think more about before I write them up properly.

Anyways, thanks for this! As someone who has participated in various forecasting tournaments and used tools like Guesstimate, I am certainly psyched about QURI's work and the potential for better forecasting/estimation tools.

ShayBenMoshe @ 2021-11-20T15:05 (+5)

I wrote a response post Even More Ambitious Altruistic Tech Efforts, and I would love to spinoff relevant discussion there. The tl;dr is that I think we should have even more ambitious goals, and try to initiate projects that potentially have a very large direct impact (rather than focus on tools and infrastructure for other efforts).

Also, thanks for writing this post Ozzie. Despite my disagreements with your post, I mostly agree with your opinions and think that more attention should be steered towards such efforts.

Jackson Wagner @ 2021-11-18T04:19 (+5)

It might be a good idea to cross-post this series in some programmer-centric spaces: hacker news, etc? The people there might have interesting feedback or examples to offer, plus you might get some new people interested in Effective Altruism.

Ozzie Gooen @ 2021-11-18T13:21 (+3)

Good point. I don't have much Hacker News karma or Reddit status, but if anyone reading this does, that would be appreciated.

Nathan Young @ 2021-11-18T22:23 (+4)

I would love to see a questions such as, "which tech startups should EA incubate?" with all these answers written so we can rank them.

newptcai @ 2021-11-18T12:50 (+4)

A quick comment on open source Twitter. There is one called mastodon. I tried it and it works well. Only problem is that no one is using it. That is the problem for any new social media.

Ozzie Gooen @ 2021-11-18T13:22 (+6)

Yea, I looked into it a bit. I'd imagine that an EA project here would begin by evaluating Mastodon more and seeing if we could either:

  • Use it as is
  • Fork it
  • Contribute to the codebase
  • Sponsor development to include features we particularly want

I would love to see it take off, for multiple reasons.

Yonatan Cale @ 2021-11-18T19:16 (+2)

Does it have an advantage around promoting good discussions (or something similar), or is the main/only advantage being open?

newptcai @ 2021-11-18T23:50 (+2)

It is mostly designed to be as open as possible. In terms of function, it is mostly just a clone of twitter.com

--alex-- @ 2021-11-22T03:36 (+3)

Maybe VCs use really sophisticated tools, but Angel Investors' most powerful tool is LinkedIn. It's amazing what you can learn about an industry by talking to smart, highly motivated people with years of experience. EAs probably under-use simple tools like LinkedIn, Zoom, AddEvent, calendly, etc

It's amazing how many EA groups don't have a paid Zoom account. Perhaps the process to get reimbursed involves too much paperwork. Maybe a high value project would be to focus on providing subsidies and funds to small EA groups with minimal hassle. You could call it "Give Directly for EA Groups"...

evelynciara @ 2022-01-29T23:28 (+5)

*TechSoup for EA groups 😛

Yonatan Cale @ 2021-11-18T16:30 (+3)

0. I'm very interested in hearing about potentially impactful software projects, please have me in mind if more ideas comes up. Especially since I'm considering working at a place that has a big budget to "improve the world (by helping charities) with technology"

Other thoughts:

  1. Connected Papers was built by (at least one) EA.
    1. I have reasons to think he has more similar ideas, maybe it's worth nudging him :) (but don't tell him I said anything)
  2. A Twitter clone that promotes good discussion: 
    Seems like a really hard project that a lot of people want, but maybe we're in an unusually good position to do it since we can bring a good critical mass of people. Also seems related to discussions on lesswrong.com, such as this and this.
    1. This would be close to my heart, but I haven't heard any reasonable sounding ideas on how to approach this huge important problem. The best POCs I see out there are StackOverflow <3 and Wikipedia <3
  3. Internal docs / knowledge management / similar internal tools: 
    I don't really see why EA would have an advantage here beyond off-the-shelf tools. This seems monitizable, so I assume companies are already working on it, no?
  4. Marketing: An EA (Johnstuart Winchell) is running an (inspiring) project around this already [Teaching EA orgs how to use their free (!) $10,000 per month (!) grant for adwords], maybe he has more ideas or knows about more pain points.
  5. "Organized datasets": This is probably a low hanging fruit (easy to implement, high value), if you/anyone has ideas for something we're missing
  6. "Organization-specific workflows": The product-manager side of me is saying "this has to start from user needs". Is there some process where EA orgs can surface pain points that might be solvable with software? I'm guessing that not, and this actually might be promising, I think maybe I'll try doing this (waiting for feedback first)
Yonatan Cale @ 2021-11-19T12:54 (+3)

5. "Organized datasets": High five to MichaelA for making lots of these