How can software engineers help to build climate solutions?
This post is a follow-up of “How to find a job in a tech company helping to combat climate change? Practical guide”. I deliberately didn’t narrow that old guide just to IT/software technology because I wanted to make it useful for the broader audience of technical and non-technical people.
Since I wrote that guide, a number of resources such as WorkOnClimate, Climatescape, Techngood, and ClimateTechList.com emerged. Climatebase has much more jobs listed than 1.5 years ago. So, I believe it’s not a problem anymore to find any sustainability tech company.
However, it’s still often unclear to software engineers how they could apply their skills to build climate solutions with the most impact.
Below I share my mental models around this subject and practical ideas for programmers looking to enter the climate solutions space. I can speak with some perspective since I’ve now worked for about a year as a software engineer in a Li-ion battery manufacturing company.
Types of software-centric climate tech companies
In the guide that I wrote 1.5 years ago, I listed the categories of tech companies in the climate change and sustainability space. Software engineers often sadly note that the companies making electric vehicles or solar panels or meat/dairy replacement products mostly need “hard” electric, mechanical, chemical, and bioengineering experts. Software engineering, even if present, is secondary and therefore only has marginal impact and is boring (i. e., doesn’t involve anything like distributed systems, Big Data processing, Machine Learning, or performance optimisation).
But if you look more closely, you will find that a lot of the climate solution companies have software at the very core of their technology and hire a lot of software engineers:
- Energy Efficiency and Cogeneration; Smart Home and Smart Building: these companies do IoT monitoring and control. This requires a lot of software development to get working reliably. Energy efficiency is actually optimised by some software algorithms.
- Smart Grid and Energy Trading: these are mostly or completely digital businesses, so, of course, the software is central there.
- Green Power Providers and Distributors: similar to the above. If this surprises you, check the list of open positions of a company like Bulb.
- Industrial, Manufacturing, and Supply Chain Optimisation; Freight and Shipping Optimisation; Fleet Management: similar to Energy Efficiency, except these companies optimise processes or utilisation instead of electricity usage.
- Delivery with Autonomous Electric Vehicles; Autonomous Drones; Precision Agriculture: autonomy is a hard software and Machine Learning problem. Also, this is all IoT which entails a lot of real-life software challenges.
- Food Saving; Efficient Regional Travel; Electric Bikes and Scooters: just like any other ride-hailing or delivery platforms (from Uber to DoorDash), these businesses need a lot of software.
- Classifieds and Second-Hand Marketplaces: similar to the above. These businesses need as much software as, for instance, eBay does. Also, Train ticket booking platforms are very similar to airline ticket booking platforms such as Skyscanner.
(Admittedly, software is not the defining factor of success for the companies in the above two groups, but nevertheless, software is crucial for their operations.)
- Climate FinTech (including carbon offset management), just like “normal” FinTech, is mostly a software business. The same is true for climate monitoring and climate modelling startups.
When I just started to think about how I could apply my programming skills to solving climate change the first things that came to my mind were carbon offset management, monitoring, and modelling. This felt so frustratingly few options. It took me a long time to realise that the range of ways to build software for climate solutions is much, much wider.
In fact, you may notice that above I listed the majority of all the climate tech company types from my older guide. Combine this with the fact that software engineering jobs increasingly become remote, and you will realise that as a software developer, you are in the best position to start working on tackling climate change regardless of where do you live and your particular specialisation.
I also haven't yet mentioned the business areas such as Electric Vehicles (excluding self-driving programs), Energy Storage, and Vertical Farming. Although software is not front and center in these businesses, it’s still a very important ingredient to their success. To be competitive on the modern electric vehicle and cell manufacturing markets, the companies should build digital factories full of sensors and robots with automated manufacturing and quality validation pipelines.
It’s hard to transfer the digital factory’s IoT, robotic, and software technology to different factories with different processes. This software doesn’t exist by itself but is an integral part of complex socio-technical systems which also includes the factory itself, all process engineers, quality engineers, technicians, and other factory workers who use this software, and their tacit knowledge. These systems could, perhaps, be replicated wholesale within organisations, but not as packaged, off-the-shelf solutions for different companies.
From my experience at Northvolt, I know that building IoT and software technology for a single, large Li-ion cell factory takes hundreds of man-years of effort. Then, look at the following picture and try to estimate how many hundreds of software engineering jobs will soon be created only to support Li-ion cell manufacturing in Europe:
Vertical farms resemble “factories of crops” and thus need to be supported by IoT, robotic, and software technology of substantial complexity as well as electric vehicle assembly and Li-ion cell factories.
Worry about the “quality”, not the “quantity” of your impact
Climate change is a death from a thousand cuts. Just building a lot of renewable energy generation capacity will not solve it. Neither just ramping up carbon removal programs, nor electrifying cars, nor reducing food waste, nor replacing meat and dairy products with plant-based substitutes, nor improving the elasticity of the power grid, nor planting trees, nor regenerating the soils, etc. Only all these things together (and many more) can give us a chance to contain global warming within 2–2.5 °C from the pre-industrial level.
Similarly, economy decarbonisation should happen not just in the US or China, or Europe, or even these three places combined, but in all countries, including very small.
This means that whatever is your contribution towards reducing the carbon emissions, in whatever country, it is as important as any other contribution because ultimately, they all must be done by someone.
This realisation helps me to find the peace of mind in working on a specific climate solution without constantly comparing its marginal impact with other things that I could have been doing instead.
Another implication of this idea is that you shouldn’t drop everything and start learning the hottest clean energy or carbon removal technology, such as (extreme example) abandon programming and go to a university to study solar panel or Li-ion cell engineering. Instead, consider joining a climate tech company that is perhaps less visible but really needs your existing skills.
I’m confident that all climate solution avenues listed in my older guide, or by Climatescape, or by Drawdown do help to reduce carbon emissions. Therefore, instead of thinking too much about choosing the “most impactful” sector, focus on choosing the right company. Since the majority of the companies in the climate space are still startups at the moment, “the right company” is the one which will not die.
Another thing to stay mindful about is that the paradox of choice will always give us this nagging feeling that somewhere there is a “better” company for us and will reduce our satisfaction with whatever career choice we make. Especially since remote work for software engineers has become much more widespread recently: this dramatically increased the number of jobs we think are potentially accessible for us.
Perspectives for specific areas of software engineering
Embedded & IoT
Most of climate solution technology involves some IoT devices or robots: sensors for Energy Efficiency, Cogeneration, Smart Building, and Industrial Optimisation; Smart Home devices; machines and robots in digital factories and vertical farms; electric vehicles, bikes, scooters, and drones themselves; etc. Therefore, embedded and IoT programming is the programming expertise most widely applicable and transferable across different sustainability-oriented companies.
Many interesting climate startups, such as Charm Industrial (carbon removal), DroneSeed, or Root.ai (robotic farming) hire embedded software developers, and these are the only (or the primary) software engineering roles that they have.
Additionally, as I suggested in a recent post, embedded software engineering jobs are not going to be commoditised or “abstracted away” anytime soon by specialised technologies, as it happens with backend or frontend programming, for instance. So, embedded is also a relatively safe career path for a programmer in the long term.
DevOps, Backend, Data, Frontend, Mobile, Machine Learning
The demand for all these areas of software engineering in the climate solutions space is more or less the same as in the industry as the whole.
However, I think that with the exception of DevOps, the demand for these programming specialisations will be diminishing.
Cloud providers and other SaaS will be doing the most of what backend engineers presently do. The industry is quickly figuring out how to abstract most of data engineering with technologies such as dbt. The big part of the frontend and mobile engineers’ job was fighting the accidental complexities of the platforms, but these platforms are becoming better; the frameworks for cross-platform development enter the mainstream. Much of machine learning engineering will soon be delegated to AutoML; there are also lots of new startups aiming to make ML operations easier.
The future of programming jobs is full-stack (including ML literacy), in general industry as well as in the climate solutions space.
If you are particularly interested in Machine Learning, check out this list: Climate Tech ML companies (tip: add your company if it is missing from the list).
Reliability, Security, Safety
A big portion of the work on reducing the amount of greenhouse gas in the atmosphere is optimising the existing systems and processes. Optimisation includes shrinking the operational safety boundary, therefore the system or process will fail more often. To counteract this effect, the businesses that optimise electricity usage, transportation, or manufacturing should dedicatedly invest in making their technology capable of anticipating and preventing accidents.
On a slightly different perspective, I don’t see IoT reliability (in the sense of the reliability of the IoT fleet itself, rather than the reliability of something else, such as factory, with the help of IoT sensors) and IoT security emerging as separate engineering disciplines. Climate solution companies don’t yet actively hire for these specialisations either.
Maybe the IoT-enabled climate solution businesses have not yet reached the scale at which reliability and security become important (similar to how site reliability engineering became a dedicated occupation only about 15 years after the beginning of the era of internet companies). In any case, I think the demand for IoT reliability and security expertise will grow in the future.
Similarly, drone safety is not yet a dedicated engineering field like autonomous vehicle safety, but I think should become significant soon. The more autonomous vehicles are on the roads, the safer transportation becomes overall. In the air, it’s the reverse: more drones flying over our cities are more likely to collide with birds and each other.
Platform, Data Infrastructure
Usually, climate solution companies process much fewer events and handle much fewer simultaneous operations than a typical social network, messaging platform, AdTech or FinTech business, e-commerce, SaaS, and other types of “business as usual” IT companies. Probably only Classifieds and Electric Bike and Scooter Sharing companies are on par with the general industry in terms of the scale of data processing.
This means that climate solution companies need less platform and data infrastructure engineering than the industry average.
Furthermore, I think this specialisation will become even less relevant in the future as there will be fewer and fewer “blank spots” on the data infrastructure technology landscape, i. e. the data processing and storage tasks that are not solved by the cloud providers such as AWS or GCP, or by independent SaaS businesses such as Snowflake, Cloudflare, or Confluent.
“To reduce electricity usage (and, by extension, carbon emissions), programmers should write fast and efficient code/build native apps/not use Electron.” This is a popular opinion: in any thread about climate change on Hacker News, there is usually at least someone expressing it. I also used to think so until about two years ago, but now it seems to me that this opinion is a self-comforting delusion:
- After any process or technology is optimised in terms of resource usage, people start to use it more, so much that the total resource usage may even increase. This is known as Jevons paradox. This happens with any technology but is particularly pronounced for software technology due to its scalability. For example, I can hardly imagine that any optimisations of neural network model training or inference will not immediately translate into training these models for better accuracy and applying these models more widely in the field. Thus, neural network optimisation is the work towards the progress of AI, not towards reducing carbon emissions.
- Any software that is running in major public clouds will soon be carbon-free because all AWS, Google, and Microsoft have already committed to power their data centers by 100% clean electricity by 2030. Actually, they are already mostly powered by zero- or low-carbon electricity.
After reading Marc Andreessen’s “Why Software Is Eating the World”, many have come to believe that software engineering is spearheading human progress. This was probably true in the era of internet companies.
But in the green transition era which is now beginning, software engineers will lose their “modern hero” status to biologists, chemists, electrical engineers, and the builders of the next-generation power plants, vehicles, and aircraft.
Nevertheless, software is still essential for the green transition. There are plenty of ways for programmers to help to reduce global carbon emissions, many more than programmers usually realise when they just start pondering on this question.
We will overcome the climate crisis only if everyone does their part. Don’t worry too much about maximising the magnitude of your contribution: just choose a role and focus on playing it well.
Still, to increase your impact as a software engineer, it can be a good strategy to commit to one of the climate solution domains (such as agriculture, solar power, electric vehicles, drones, batteries, electricity demand response, fleet optimisation, etc.) and learn it deeply. Then, you might find some really interesting ways of applying software to your domain of choice.