Large tech companies should be training engineers

As of 2/28/2022, Amazon has 27,910 openings in software. When I checked again on 3/14/2022, that number had shot up to 29,239. If New York City was entirely inhabited by software engineers, Amazon could hire roughly 1 in 300 New Yorkers tomorrow. According to, an L6 software engineer can expect to make roughly $357,000 USD at Amazon. This is just one tech company of many. Besides Tencent and Amazon who are great at leveraging their balance sheet for the long term, many tech companies see huge cash positions and increasing cash flows and do not seem to have enough cost efficient channels to deploy capital. There aren't enough engineers to hire. This results in ever higher salaries for engineers.




The great irony of it all is in the competition for tech talent, anecdotally the number of software engineers who are friends and are either retired or in a position to retire in their 30s-40s is high. It's quite possible that the long term result of this environment is, increased compensation may result in a smaller talent pool.


Software means high return on invested capital (ROIC) because you can scale software to millions with very low incremental cost. In today's world, because the technology is so good, you do not need to be a stellar engineer to build scalable software anymore. Now, you can be perfectly mediocre and scale software to millions with a touch of a button. It's a high leverage industry. With high ROIC, you can justify quite a number of things.

(Source: Morningstar)

The above is the cash flow/balance sheet of Google. If you saw a business that looked like this in an industry that wasn't software, you might think two things:

  • Incredible cash flow

  • This business could probably accelerate

In fact, if you saw cash grow at the rate I think there's an argument to be made that management has poor capital allocation track record and the balance sheet is underlevered. Currently with inflation high and negative real rates, it could be argued that great capital allocators would short the USD and spend it on cash flow generating activities. What kind of management team doesn't know how to cost effectively deploy capital while losing out on purchasing power due to negative real rates? The answer is probably most tech management teams because of the aforementioned lack of engineers. This would arguably be inexcusable outside of technology.


Meanwhile, COVID has opened the door to remote work. The US isn't the only place where amazing engineers are born. I've worked with many great engineers born in emerging markets. In 2018, Mary Meeker noted that 56% of the most highly tech founders were started by 1st or 2nd generation Americans.



It's quite possible that one of the great arbitrage opportunities for corporations and a great way to lift the brightest out of difficult economic circumstances is to teach people how to code. There is some precedent for this. As an example, WorldQuant, a quant hedge fund, in 2015 started a free accredited university, WorldQuant University specifically to teach financial engineering. WorldQuant is a fund that has 5B AUM, according to Wikipedia. Apparently it's quite rigorous/respected. While WorldQuant might have 5B AUM, Google has 20.945B in cash and 67B in free cash flow in December 2021 according to the most recent 10K. To put the above into perspective, my alma mater, the University of Waterloo, in 2021, pulled in roughly $734.09M USD in operating income and it's enrollment in 2020 was about 42,000 students. That is, to run a great "conventional" university is roughly 1.1% of Google's free cash flow. Presumably this would be a high bound because it is unlikely that having a professor write on blackboards repeating the exact same lesson for years is the most cost efficient means of teaching. Today, as evidenced by the plethora of cats on the Internet, we now have online videos.


I could be wrong, but as far as I am aware, there is not a single major tech company training people how to code from scratch to the point of being productive in the workforce. They certainly have the balance sheets and the economic justification to do so, however.


Net-net, the argument goes:

  • There aren't enough engineers to go around.

  • This is a bottleneck for tech businesses so these tech businesses have growing cash flows and no way to spend them. This results in sky high engineer salaries which probably results in lower ROIC per engineer.

  • There are smart people all over the world.

  • Large tech businesses have underlevered balance sheets. If return on equity (ROE) was lower, it could be argued that many of these businesses suffer from poor capital allocation.

  • Large tech businesses can probably accelerate their businesses by solving their own bottleneck and training engineers.

  • By increasing the number of engineers, the supply side of supply demand curve increases, likely increasing ROIC per engineer.

  • If successful, in the long run, this may singlehandedly unblock a large tech organization's capital allocation bottleneck.


As a corollary, by training more engineers, there is an argument to be made that it'd help solve wealth inequality. If there are more engineers, especially in emerging markets, there is more money being made in places where money isn't normally made in such quantities. So, you know, save the world and accelerating business sounds like a win. There is probably a strong economic argument to be made from a PR standpoint.


Now, the bear thesis. There are a great deal of risks and reasons not to do this. Among them:

  • Cost.

  • Moat. Great engineers, once trained, can simply leave.

  • Execution risk. Many great universities churn out bad engineers and yet, they have been doing this for a long time.

  • Interest rate/macroeconomic risk.


With regards to cost:

Quite literally every competent engineer I have ever worked with has mastered self teaching. This is an absolute necessity because the software industry moves quickly. Since I have started programming over 10 years ago, the paradigm for nearly everything from data to frontend to devops has completely changed. One corollary of this is, if students are self taught and resources are online, the high cost of education in a traditional university environment should become a fraction of what it normally would be. An expectation of the program should be that students can self teach given the right material to study bringing down cost.


What would a reasonable cost per engineer be? Well, Georgia Tech came out with an online masters degree in CS which seems to be reasonably regarded. The cost for the entire degree costs ~$7,000.


With regards to moat (engineers leaving once educated):

There are likely many potential solutions. One of such solutions might be the following.

  • Promise a top tier education that is "free" with some stipulations.

    • For a student that comes from a place where they are effectively coming from nothing, this is nothing short of a promise of a better life.

  • The best students are offered jobs and do not have to pay for their tuition.

  • The absolute worst students are kicked out of the program as they would in any other academic institution.

  • For all students who do not get a job offer or opt not to work for the company in question, charge an annual % or $ such that cost of providing the education is recouped.

    • As the demand for developers is so high, it seems even subpar engineers seem to find fantastic jobs in this environment.


With regards to execution risk:

As with all efforts worth doing, there exists execution risk. Not to discount the difficulty in training engineers, but I think the following facts increase the likelihood of success:

  • Many leading post secondary modern educational degrees in CS or engineering are already severely lacking.

    • In my own education which is arguably one of the world's better engineering educations, I was commonly taught concepts and ideas that are a decade or more out of date. From what I gather this is not uncommon.

    • Most of the best, most qualified engineers already work for corporations. When I was at Microsoft, Leslie Lamport worked a few buildings away from mine. Geoff Hinton and Guido van Rossum, are other examples of leaders who have defined and work in industry. Corporations already have the most qualified people to teach working for them.

    • From personal experience being a middle manager/former entrepreneur, most engineering students coming out of universities are taught overly theoretical, difficult to apply content. I am not sure how this is possible, but I recall a leading university's students not touching a database throughout their undergraduate degree. Why someone would pay for such a lacking education, I have no idea.

  • Corporations do not have to go it alone.

    • Corporations can partner with post secondary institutions, other corporations, or existing MOOCs to decrease execution risk.

  • Most large tech corporations have excellent brands.

    • If you talked to the average high school student as to who the absolute best employers are, they would likely name the large tech corporations of today. This increases the likelihood that the best and brightest around the world (especially those without means) would consider applying.


With regards to interest rate/macroeconomic risk:

As of the time of writing, the war between Russia and Ukraine is raging, the US Fed has earmarked rate increases to combat rampant inflation, we have had several years of muted GDP growth as a result of COVID, people aren’t having babies, many countries are now competing for the same top tier immigrants, and to top it off, the world isn’t allowed to come together and just enjoy the Olympics.

During the mortgage backed crisis of 2008, I was a student looking for internships. As an electrical engineering student, the only jobs I could find were software jobs. In fact, they were still plentiful and still incredibly well paid. That was 14 years ago. Software is still eating the world, as Ben Horowitz would say. A near worldwide collapse of the financial system did not do anything to decrease the long term growth of the software engineering salary. Today senior software engineers make significantly more so it makes sense to invest in increasing the supply of engineers.

With regards to allocating capital instead to M&A activities:

All the following numbers are as of the time of writing. The current equity risk premium (ERP) is roughly 5% and the highest ERP since 1960 was 6.45% in 1979. Goldman Sachs currently has an end of 2023 10 year Treasury yield projection of 2.45% where today it’s 1.721%. If we are conservative and double Goldman Sach’s projection to 4.9%, a conservative presumed difference in discount rate could be: (6.45+4.9)/(5+1.721) = 159%. To translate this to English, what this might mean is, in the most optimistic case, if a business’ valuation is only attributed to its cash flows (rather than assets et al.), you might be able to buy a business in the future for roughly 1/3rd off (or more in the case of a sell off).

While I believe that this may be compelling and should still probably be done, opting for M&A over hiring/training engineers is essentially a statement where a core competency of a business is no longer to create products but to acquire them. In a business where innovation is the core value creator, it’s my belief that in order to adequately compete, a business has to flex that innovation muscle or opt for a fate similar to Palm, Jawbone, Oracle, IBM, etc.

In summary, it's my belief that good capital allocation in tech businesses could mean they would invest their huge cash flows/cash positions, directly train engineers, remove their ROIC bottleneck, and therefore increase their own long term ROIC. The result, if successful, would be, more value created for shareholders/customers, increased global prosperity with increased employment worldwide, and a less wasteful balance sheet/cash flow statement which simply loses value due to negative real interest rates.

As I wrote this, Google had announced that they were investing 100 million USD in education. So it’s nice to know, maybe this isn’t a crazy thought. Likely what happened was Sundar read my Google Doc draft and copied me (kidding). An article on the topic can be found here:


  • We currently have negative real interest rates (nominal interest rate - inflation rate), so idle cash loses purchasing power

  • Many large tech businesses have too much free cash flow/cash lying around being unproductive

  • The bottleneck is there aren't enough engineers, resulting in insane salaries, non-productive cash flow, and lower than possible ROIC

  • Large tech businesses can solve the problem by directly training engineers, thereby unlocking the means of generating cash flow from assets on the balance sheet


Popular Posts