Software engineering at large tech-firms is a highly promising option that’s especially easy to test out. If you have good analytical skills (even if you are from a humanities background), you might consider testing it.


  • Gain great skill-set that's in short supply, opening up a wide range of options.
  • Excellent working conditions - often shorter, flexible hours, with possibility of remote work.
  • In the US, the pay is relatively high, especially early in your career - $100,000+ starting salary is possible


  • Mid and late stage earnings lower than in many other professional jobs.
  • Less opportunity to develop non-technical soft skills.


Career capital: 

Direct impact: 


Advocacy potential: 

Ease of competition: 

Job satisfaction:

Our reasoning for these ratings is explained below. You might also like to read about our approach to rating careers.

Key facts on fit  

Ability to break problems down into logical parts, generate and test hypotheses, willingness to try out many different solutions, high attention to detail, quantitative degree not required.

Next steps

You can easily test your fit by trying out coding, taking an intro to computer science class and doing a project with other people. Many people can get an entry-level job after around a year of part-time learning, or you can do a full-time twelve-week coding bootcamp, such as App Academy. Be careful to avoid low-quality bootcamps. A comprehensive guide to getting your first job is here.

Sometimes recommended

We recommend this career if it is a better fit for you than our other recommended careers.

Review status

Medium-depth career profile 

Full report

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.

Earnings potential

Software engineering is a well-paid career. Average US earnings for entry-level software engineers is around $100,000. Engineers at Microsoft start at 150,000, and engineers at Google start around $180,000 (including stock and bonuses). Successful senior engineers at Google can easily make $300,000. (source) However, It’s common for software engineers to “cap out” or leave after a few years.

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. Read our article on this difference.

If you want to make a positive difference through donating part of your income as a software engineer, you may be able to multiply your impact by donation matching programmes, which are common at large tech companies.

Advocacy potential

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.

Career capital

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.

Exploration value

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?

Entry requirements

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:

  1. 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.

  2. Do a project with other people – this lets you test out writing programs in a team and working with larger codebases.

  3. Take an internship or do a bootcamp.

Job satisfaction

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.

Want to work as a software engineer?

Please tell us if your plan changed. This is vital for measuring our impact, which allows us to fundraise and improve our research over time.
Help out

Think you should do something else?

Take our quiz to get more ideas. It’s only six questions.
Take the quiz