What is this career path?
Software engineers create the programs which turn computers into useful machines that can, among other things, send email, search the world wide web, make video calls and run industrial robots. Software engineers run the entire process of creating and developing software, which includes writing code, but also generating software ideas, understanding user requirements, and testing and maintaining the final product. By making the software which tells computers what to do, software engineers play a central role in the ongoing digital revolution, which is transforming human civilisation and has led to the beginning of the Information Age. This profile focuses on software engineers employed by large technology companies, not those who work in early stage startups or in other industries.
Direct impact potential
As a software engineer your direct impact mainly comes from helping further the goals of the company you work for. Many software companies have had a transformative influence on society, and some (like Google and Wikipedia) have plausibly produced substantial social value. But even working for organisations whose goals aren’t directly linked with increasing social value may still be substantially valuable due to the “flow-through effects” of increasing general human empowerment.
You can also spend time outside work on high-impact projects if you make use of freelance or part-time work.
Software engineering is a moderately well-paid career. Average US earnings (including bonuses) for entry-level software engineers are $56,000-$72,000; graduates of bootcamps can start on around $100,000, and engineers at Google on around $120,000. However, progression is more limited than in many alternatives and many engineers “cap out” after a few years. Even at Google, which has among the highest salaries, it’s relatively rare to earn over $300,000. The overall average salary for software engineers is around $100,000 in the US.
Pay is much lower in the UK – average salaries are 40% higher in the US than in the UK, 80% higher in Silicon Valley than in London, and starting salaries for bootcamp graduates are around twice as high in Silicon Valley as in London.
You’ll have the opportunity to develop connections in the technology industry, which is valuable because tech is a potentially transformative industry, with the potential for huge gains as well as risks. However, the work doesn’t involve meeting people as much as other careers, which makes it less good for building a large network.
You gain great skills that there’s a shortage of, which gives you great bargaining power and a wide range of options with very different risk-rewards and lifestyles (e.g. founding a startup, joining as an early-employee or continuing at a large firm). Learning to program opens up the options of working in data science, quantitative finance, tech entrepreneurship, some fields of research and freelance software development. Knowing programming is also helpful in many other industries and is likely to become more valuable in the future. Working at a top-tier tech company now holds comparable prestige to working in finance or consulting and you gain the opportunity to make connections with wealthy and influential people, many of whom are progressively minded and interested in doing good.
By working in the tech sector you learn a lot of best practices in business, future technology trends and the direction the economy is going in. However your role is relatively one-dimensional so you won’t get to try as wide a range of activities as in entrepreneurship or work with many different organisations as in consulting.
Personal fit – who should do this career?
Many entry-level jobs don’t require a degree in computer science or even in a quantitative subject meaning that software engineering is open to people with backgrounds in humanities and social sciences. To enter, you need some basic programming skills and demonstrate a strong interest in software engineering. We’ve seen many cases of people with humanities and social science degrees get junior software engineer jobs with high salaries, just through learning on their own or through doing bootcamps.
Who does well in this career?
Not much is known about general predictors of success for programming, so the best way to gauge your chances is to try it out. We recommend that you:
- Try out writing code – as a complete beginner you can write a python program in less than 20 minutes, that reminds you to take a break every two hours. Once you’ve done that, try taking an intro to computer science and programming class.
Do a project with other people – this lets you test out writing programs in a team and working with larger codebases.
Take an internship or do a bootcamp.
By trying out programming and doing a project with other people you can get a good sense of whether you’ll enjoy software engineering. Many software engineers we’ve spoken to say the work is engaging, though working with large existing codebases and fixing bugs are cited as the less pleasant parts of the job. Software engineers tend to work shorter hours than many corporate jobs, with 40-50-hour weeks being typical (though this does vary by company and team). Remote work, flexible hours and freelance work are common. The best companies in the industry, like Google, are leaders in evidence-based management and are widely regarded as among the best places in the world to work.
The full report
Read our full report.