IT Meritocracy. Part 9: Is Unscientific Enterprise Software Worthy of Google Compensation?

Alex Rogachevsky
19 min readApr 22, 2018

--

Be Selfish When It Comes to Your Income

I am ashamed to admit, that my entrepreneurial drive to develop the next generation of business software for information-centric SMBs at the fraction of Oracle and Salesforce costs is largely based on the denial of the new, slashed in half IT wages and relentless (engineering) attempts to restore my compensation to the pre-outsourcing level.

It’s hard to say, if I would have come up with Px100 out of boredom, if the “evil” corporate IT paid me $300–400K a year — current Level 6 wages at Google. Amazon, Facebook, and Google don’t want me, along with the 99% of programmers on Earth, specializing in unglamorous and unscientific enterprise software. Mind you, their recruiters reach out to me every year. Doesn’t mean much, since I have no dissertations or “algorithms” to impress the next interviewer there.

Is it selfish to equate meritocracy with money? Wish everyone was driven by such “selfishness” and asked “What’s in it for me?” when it comes to income. No politician (or employer) would have been able to play their games, forcing or tricking you into a money-losing decision in the name of something non-material: wars (on drugs, terrorism, whatever) or equally mythical “perks” and “work-life balance”. Start thinking about your own pocket, and everything will become crystal clear.

I wish my ambitions put me on the entrepreneurial path earlier. I wish I didn’t settle for the comfortable $90/hr upon coming to the US in 1996. Many, e.g. Musk and the two Google founders didn’t want to work for the man a single day in their lives. I didn’t see that light in my 20s, despite starting my career with the same complete products in the same founder-level principal engineer capacity. I interned, alright. Though never had demeaning “first jobs” of the burger flipping or bug-fixing kind. I got a taste of delivering a complete business automation solution on my own at the age of 19, when I designed and developed one of the first Belarusian (bond) trading systems. Sure, I made tons of beginner mistakes — also early, to avoid them throughout my career.

The “big picture” stayed with me ever since, especially when I came to the US and started from scratch, tasked with untangling spaghetti and writing glue code — a far cry from architecting and delivering complete solutions I was trusted with in Belarus in my 20s. Yes, my motive to come here was selfish. American IT paid 5x more. I traded the wide open space and big opportunity in the scary collapsed post-Soviet economy for American corporate stability. Naively thinking that I could start low, be a good boy, do what my bosses wanted from everyone around me, and quickly grow by outperforming my colleagues.

It doesn’t work this way. Doing your job well only leads to reaching your cap faster. I predictably reached mine in two years — just like it happened prior to that in Belarus. The “outsourcing” came a few years later, lowering that cap and making me feel not only underutilized and under-appreciated, but also grossly underpaid. Everyone knows where to go now: to Google and Facebook. There weren’t any employment options during 2000s. The “big tech” led by Google only started offering its current $300K+ compensation packages well into the 2010s.

Getting a taste of something real at the age of 19 had a profound effect on my career: if that term applies to the capped corporate existence. Could I increase my cap? Sure. If I didn’t know what I wanted and was OK with the crap non-technical IT bosses decided to pay for. Or equally technically illiterate Silicon Valley VCs invested in. I want to become financially independent. Not by morphing into something the struggling industry wants me to — to realize IT department budgets or hype startup vaporware and “exit”.

I don’t want to become an “enterprise architect” to dole out “vague technology” advise to C-level “stakeholders”. Chasing ML and other “science” du jour to apply to Google is not my thing either. I know what I’m good at — automating trick business processes. Did quality programming stop to matter? Outside of the handful of “big tech” employers?

I know what I can deliver. Did I need to work at Oracle or Salesforce instead of hourly-paid consulting? They are not different from an average dysfunctional IT department — including the pay. Nor they would have welcomed my specialty: 10-100x efficiency, threatening the man-hour revenue model.

Here I am: wondering how I ended up between the current B2C and B2B worlds. Building mine.

I don’t think my situation is unique. Other than buddy-buddy Stanford-Harvard “serial entrepreneurs”, most startup founders make their inventions because, despite all HR dissertations on employee development and utilizing one’s strength, they cannot realize their potential working for the man. This series reception shows I am not alone. About time we build the new world together — after 20 years of IT stagnation.

History of IT Wages

I am not obsessed with Google. It’s just a benchmark. A milestone, that deserves recognition. Never before anyone officially offered software engineers more than MBAs. You read it right. Officially. Not as fake entrepreneurial hourly “consulting” rates. Not as stock options or other “profit sharing”, though it is part of compensation packages at Google. As an official salary.

Contrary to the popular belief, software engineer salaries weren’t high during the good, pre-outsourcing times. 1999s Office Space wasn’t far off comparing programmer salaries with construction worker’s. It wasn’t a pigment of Mike Judge’s (the writer and director) imagination. “Permanently employed” senior developers made $60–90K tops at the time. 99% of solution provider companies pictured in that movie looked exactly like Initech.

Of course no one above average wanted to work there, so the industry came up with an awkward solution: making skilled engineers hourly-paid “third-party” “contractors” — exempt from the rigid corporate salary grids.

The latter bring sweet memories of the good old Soviet Union with its eternal state-set 120-rouble salary for all engineers.

Same work, same cubicle, same 40-hour week: translating into $90/hr x 2000 = double salary. That was in 1991. $115/hr = $230K in 2001, right before the tidal wave of outsourcing hit. Use the official inflation rate, and you’ll arrive at the current (2018) Google L6 package of $400K. No mystery at all.

Did CFOs and other non-technical bosses welcome those rates? A rhetorical question. They coped with them, hating “contractors” more than ever. Right until they “discovered India” (on a massive scale) in 2002. Contractors weren’t wiped out. Instead our rates were adjusted to match the salaries — yes the Initech ones, slightly raised due to inflation to a $100K. Both rates and salaries followed the inflation ever since, rising to $150–160K today and their $80–90/hr hourly equivalent: same experts were paid in 1990 if you recall.

What IT contracting has to with Google? If you weren’t in the industry during the 2000s, the future looked quite scary. Everything was back to pathetic “permanent” salaries. Google paid the same $110–120K, as everyone else. We had nowhere to go.

We couldn’t fight back, pointed to a hundred people in line for his/her job. Our bosses told us, that programming had always been a commodity, and only deserved half of pre-outsourcing wages. The order was restored. The MBA geniuses fixed the glitch, similar to Milton’s payroll one in the Office Space.

It didn’t matter if $5/hr code monkeys could do the job. There was the next guy in line, and the next, and the next… Until your boss found the one with adequate (equal to yours) skills? No. Until the requirements were reduced enough to be feasible for code monkeys, and the technology dumbed down to match their skills: of writing the code that didn’t fail immediately i.e. servers not crashing within the first hour due to critical errors and resource leaks.

Many consider it the way of life nowadays, devising clever ways to mitigate spaghetti code — via “magic” deployment containers and “resilient” servers, that restart themselves. I remember how it was before: the infinite server uptime, interrupted only by planned releases.

Slave labor doesn’t work in creative occupations.

Sorry for overusing this statement. IT CIOs removed “creative” from the equation, while Google chose to remove “slave” — albeit supporting its strategy with the adequate compensation only in 2010s. Engineers didn’t have any wage reference in the 2000s. We kept guessing what’s fair: what it would have been if the job market wasn’t flooded with slave labor. There was nothing supporting our numbers to argue with the greedy bosses. Until the “big tech” emerged — compensation-wise.

Whether skilled enterprise developers are welcome at “algorithmic” Google is a different topic, but at least today, any $160K “senior” slash-”architect” engineer can counter daily “We are paying you so much” and “You are our second highest paid programmer” by pointing at Google and saying “there”.

Has Enterprise Software Development Always Been a Commodity?

Google and Facebook made it clear — they don’t consider programming a commodity skill. Is their code really different from one automating business processes?

I had my doubts, watching the industry in 2000s and 2010s. Do enterprise software developers deserve Google compensation at all? The majority of us not only lacks CalTech, MIT, or other academic and scientific regalia, but also will not pass the infamous “algorithmic” interviews. Are we really an inferior race?

Is everyone working on forms, workflows, and databases a code monkey? Is coding complex business rules in Java only marginally more advanced than attempting to do it in Visual Basic: scripting Excel spreadsheets or Access forms? Is a 100+ screen ERP nothing, but a collection of 100 Excel spreadsheets? Or 100x Wordpress “website” that can be done by a 100 of amateur Wordpress or Drupal coders?

I am curious what Googlers, Facebookers, and other B2C software engineers, who’ve never set foot in an IT department, think about IT. How much they know about people working there? What they picture us doing? “Buying” instead of building? “Integrating” “legacy” systems? Fixing never ending bugs? Using DIY tools to build a product with a few mouse clicks?

Unfortunately that’s today’s IT. Have the activities above resulted in a single working product? A rhetorical question. It’s “buy” vs. “build”. No one builds anymore. Only “integrates” something built years ago.

One may think enterprise programming just disappeared. Not that our non-technical MBA bosses happily acknowledged software engineering existence during the good pre-outsourcing times. The “expensive” technical “mumbo-jumbo” must have been such an annoyance for them.

They desperately sought ways to eradicate programming. First by mythical DIY tools never touched by an end user, nor helping in any way a professional programmer. Then came “almost-turnkey” “packages” that required hundreds of man-months (and millions) to “customize” and “integrate” — a poorly disguised custom programming in amateur “business-oriented” languages, as intelligence insulting for a real programmer, as the aforementioned DIY “builders”.

Do algorithmically-minded non-IT programmers, along with all non-programmers inside IT honestly think, that a complex mission-critical business application is a collection of dumb forms and tables (spreadsheets) mapped one to one to the equally simplistic tabular (aka relational) database? Is all enterprise software development a scaled up freelance work e.g. a couple-page online brochure Wordpress (Drupal, Sharepoint, etc.) “site” grown to hundreds of pages by hiring hundreds of amateur freelancers to develop one page each?

An MBA wet dream, isn’t it? Reducing mysterious “overpaid” programmers to the rank of a common assembly line worker — with the appropriate pay.

Haven’t “business people”: IT bosses, VCs, and others, controlling the money, been telling you the same thing over and over? That allegedly “scientific” Google and Facebook do something amazing, while you are paid for “coding data entry forms”. If that was the case with business process automation, no one would have needed anything more, than Excel.

Before I address the source of those follies, I want to bring up this guy:

Using the common 80/20 rule, there were eight Milton losers for every two true programmer Peters in pre-outsourcing “IT organizations”. Still surprised our bosses didn’t respect us, frustrated with even $50K (or $50/hr) Milton salaries? Planning to replace useless Miltons with 5–10x equally useless code monkeys, that could theoretically fulfill the Infinite Monkey Theorem?

Unfortunately the late 90s technology still required Milton-level “coders”. It all went downhill from there. The MBA outsourcing dilemma: pathetic Miltons or hard to control Peters with their incomprehensible technical mumbo-jumbo? Why not get rid of them both?

It’s natural to fear and eliminate the unknown. Master business administrators try to solve clearly technical problems with the “administration” taught to them in business schools: facilitating the work and hoping for a statistically favorable outcome. They tend to justify things they don’t understand: expensive products (and people) by giving them mysterious dignified qualities along the lines of “science” and “architecture”, they have no idea about either.

What else to expect, if they are taught to rely on connections, (academic) regalia, and statistical “reputation”, instead of researching, what’s behind those. That’s our engineering domain: getting inside a complex machine and figuring out what makes it superior: mechanically, electrically, or programmatically — rather than a “trusted brand”.

Lastly, there is an inherent human insecurity and desire to feel important — by making everyone around you inferior. MBAs will never stop their attempts to diminish programming.

Am I venting? It’s not about recognition and respect for me. I’m past that. It’s about the project success — not via facilitation, motivation, mitigation, and other managerial activities. By getting the f_ck out of engineers’ way — like it is at Google, devoid of formal (functional) managers. There is only space for technical people in a technical project team.

No, it’s not the mysterious “science” behind Google’s success. It’s the absence of technically clueless “leadership” at all levels, allowing engineers to simply do their work.

Unfortunately it went the opposite direction in B2B IT. The non-technical crowd felt awkward around skilled engineers and forced them out (many to B2C “big tech”), making business process automation a non-technical activity.

Pre-sales, post-sales, vague high-level “architecture” (to sell something), “integration” of sold “packages” and old aka “legacy” modules, “customization” of “almost-turnkey” software... Sales are great, but where did incomprehensible for MBAs programming go? Out of sight, to the other part of the world?

With all “buy” over “build” bias, someone has to build the software to buy, integrate, and be “consulted” on. Who builds it? How? Oracle or IBM? Aren’t they busy supporting their old crap? Which has always been a profitable “revenue model”. Oracle never cared to catch up to Salesforce technologically. While the latter joined the IT Consulting Food Chain as well with its 20y.o. technology, largely based on Oracle’s.

Either way, nothing new has been built in IT after Salesforce: for nearly 20 years since the CIOs learned from the Y2K “aversion”, that they can get away with zip-tying and duct-taping the old crap. Duh? They discovered the overpopulated third world and got their hands on the seemingly limitless supply of slave labor to do that.

Honestly, very few working products were built before the 2000s. The pre-outsourcing IT failure rate of 70% was nothing to write home about — even compared to today’s 90% failures of “outsourced” projects. IT departments have always been money sinks to hedge against taxes via obscure R&D losses. Another common enterprise software employer — funded startups have always hyped vaporware to “exit”.

Clearly, no one’s paying for quality programming — irrelevant to realize an IT department budget or bribe someone to sell a vaporware startup. We are paid to “look busy”.

Does it make programming any less important? Do 70+% failures need to be the way of life? Do smaller information-centric businesses need to copy-paste between Excel and primitive Access (Drupal, Sharepoint, etc.) form-filling apps, since the newest and the best of breed ERP vendor: Salesforce cannot offer anything different form spreadsheets or free Zoho form apps under $500K?

Do we need to wait until the real Y2K, which will happen in 10 years, when the propped up 1970s mainframe cripples under the mountain of bugs made by code monkeys, zip-tying and duct-taping it? No. We need to finally apply normal diligent programming to business automation domains. The programming our non-technical bosses always feared.

Quality Programming. Nothing Else Matters.

Google wasn’t founded by gods. Facebook is a conventional PHP blog engine, not a result of some divine intervention — of “scientific” or another kind. Amazon is a straightforward e-commerce company. There are very few scientists in white lab coats there. The majority of “big tech” employees are normal programmers.

The world outside the “big tech” (called IT) has never known real programming, busy with eradicating it through DIY tools and “outsourcing” it out of sight.

What is that “real” programming? I’ve never worked at Google, Amazon, or Facebook, but I have plenty of inside sources, let alone Quora and other revelations. And having worked with many Google APIs and read millions of lines of its open source code, I have a good idea, what’s going on there.

Googlers write somewhat over-engineered, but nevertheless neat and robust object-oriented and functional code. Speaking of the former, maybe it was my bad luck, hired at dysfunctional and mismanaged IT department and solution providers… Maybe it is the LA, and things are different in the Silicon Valley... Somehow after 20+ multi-million projects I’ve been involved during my consulting tenure, working for Fortune 100 corporations everyone knows and adores, I’m yet to see a single piece of minimally object oriented C++ or Java code, that doesn’t look like a “struct with functions”.

Some call developers who type that stuff “coders” (vs. programmers). There is a more precise term: “kiddie scripters”. Freelancer-level scripting != programming. Here we go again about MBAs wet dreams of treating a cohesive 100+ screen ERP as a 100 one-pager freelance “website”. To be fair, it’s been like that long before the 2000s outsourcing bonanza. MBAs didn’t dumb down IT projects in 2002 to accommodate the cheapest code monkeys. Most of corporate IT software was already dumb before that.

Worse, it was us, programmers, accepting spaghetti we were tasked to work on. What else to expect from the majority of IT workforce: cubicle dweller “survivors” doing the bare minimum due to zero reward for quality programming and equally demotivated job hoppers, cramming the trendiest abbreviation tutorial to move on, hoping to get $5K more at the next job for the “rare” (for the next six months until bodyshop-supplied code monkeys catch up) skill?

Everyone in IT knows, that making an effort and designing a robust object hierarchy, augmented by precise functional programming pieces (expressions, lambdas, etc.) injected at the right places doesn’t pay off. Our bosses would take it for granted at best.

That was before 2002. Now everyone needs to worry about being “outsourced”. Or canned at the first sign of recession for no other reason, than being “too expensive”. With sincere “sorries” and “thank yous” for your effort. Naturally no one wants to make the effort anymore. Whether a confident Googler can devote him/herself to quality programming, knowing that everything else: the money and career future is covered.

One thing quality programming is deceivingly not — for every manager, expecting it because “we are paying you so much” ($150K in 2018), is a “norm”.

Beginner bugs and “communication problems” (business requirements comprehension failures) are. Most of the currently employed software developers never grow out of beginners regardless of their “years of experience”.

True fire-and-forget programming and its results: the software, that keeps working, seamlessly evolving through changing business requirements, is only norm among the few top professionals. Complex programming comes naturally to them — just like it is to others at the top of their trade. A fighter jet pilot confidently executes the combat turn. A neurosurgeon makes a precise cut. An NBA player makes an impossible three-point throw. No magic. No scientific white-papers or another mysterious “ingenuity”. Just aptitude and years of training/experience. How many fighter pilots, neurosurgeons, or pro basketball players the world has? True programmers?

That’s why “normal” quality programming is only happening right now at a handful of companies that lured those programmers with a 2–3x pay and great work environment. Did it pay off in an ROI sense? Did those pros make a difference at “big tech”?

A better question is if they can make a difference in “outsourced” IT. Not exactly. Googlers and other single-purpose consumer software creators don’t have the attention span to handle thousands of convoluted business rules and government regulations. Those of us, who do, used to untangling the unglamorous business logic Google doesn’t want to touch with a 10ft pole, definitely can apply the same quality programming to create Google-level software.

It’s not black and white: “buy” over “build” or vice versa. Google understands, why and how to build unique software modules in house. It “buys” too. E.g. with all its money it didn’t develop own programming languages, sticking with the industrial grade Java family and C++, since nothing else is radically different. It didn’t develop its own IDE for Android. But it builds lots of state of the art internal tools — after careful research and conclusion, that it’s simpler than trying to adapt (“integrate”) third-party ones.

Googlers do it because they can. Because that’s what skilled engineers do for living. They work at an engineering company, duh?

The accounting classification of IT as a “cost center” vs. engineering (departments and companies) as “revenue generators”, doesn’t change the technical perspective. Similarly to the foundation Google is built on: its state of the art internal tools, every business project is unique, requiring a specific engineering solution. Therefore every IT department is also an engineering company, whether MBAs like it or not, trying to “outsource” incomprehensible and hated engineering to another part of the world.

Forget clueless MBAs. If you, a college-educated engineer, blissfuly accept the current way of life, thinking, that chasing a few hot abbreviations will get you ahead, you do deserve you halved (at best) post-outsourcing wages.

Do you have that “What do you want from me?” look on your face right now? I am not patronizing. Merely asking: what is it you deserve Google wages for? Do you work on something comparable to the state of the art consumer tech Google specializes in?

Maybe when you asked your boss for a raise and he/she told you the usual “We pay you so much” (“You are our second highest paid developer”, “Others don’t make nearly as much”, etc.), implying your occupation has always been a commodity, it really is — in your case.

What are you doing to change it? Is it your manager’s or his/her boss fault, a genius like you is not assigned Google-level tasks that deserve $400K pay? You know the answer to that. You let some recruiter submit you for an averagely shitty and underpaid job, willingly signed the offer, and sat on your ass ever since, hoping you wouldn’t get laid off when the recession comes.

The $400K (a Year) Question

What is it exactly Amazon, Google, and Facebook do to offer their senior (e.g. Level 6 at Google) engineers $400K compensation packages? Since I am unhireable at those B2C companies. I can only speculate, based on my inside sources.

We know the “big tech” is into data and other computer science now, evident by the academic hiring bias and their infamous “algorithmic” interviews. See my previous post about those. Is it really the mysterious science they pay $400K for? Based on Google’s current “scientific” image, non-technical Forbes technology trend observers probably think so. Along with the rest of the technically illiterate population.

Is it too much money? The “big tech” is highly successful. So are Oracle, Salesforce, Deloitte, and Accenture — as far as the Wall Street is concerned quarterly earning wise. It’s capitalism. Companies don’t willingly spill their profits into their (non-executive) employee wages. It must be something else. Uhm… the supply and demand? Are L6 Google engineers all rare MIT PhDs and other top scientists? I doubt it.

Google’s original search algorithm is not a secret anymore. Amazon is an e-commerce and infrastructure (AWS) shop. Facebook never tried to hide, that it is a PHP blog engine, not fundamentally different from another PHP tool: Wordpress. Sure, it has lots of ML analytics now to aggregate marketing data and target ads. Based on the quality of the latter e.g. showing me Indian outsourcing firm ads, let alone stuff I’ll never care about, Facebook appears to be a yet another “affiliate marketing” website, that’s joined the ranks of SEOers and other spammers. The AI (ML) part of Facebook marketing is average at best — compared e.g. to Quora’s. I am not going to speculate about D’Angelo’s departure. It is what it is. What’s up with the wages though?

Is “science” pitched as everyone’s career future there, just like it is “management” in IT? I know, it looks like I am trying to prove a theorem about the handful of “big tech” companies being 100% engineering ones i.e. employing engineers instead of researchers/scientists. ML is engineering too. ML specialists are (Python) programmers tasked with implementing ML algorithms invented somewhere else. How is it different from regular C++ and Java programming? Which can be algorithm-heavy in the enterprise space too. Fintech immediately comes to mind.

One way or another, Google and Facebook find the top talent and utilize it 100%, rewarding its engineers with 3x industry compensation. The question is what is worth such reward? Nothing, but good engineering. What else can it be?

The term “generalist” (applied to engineering) came from Google. Contrary to another IT folly: chasing the “hottest” frameworks and tools, L6 engineers at Google are not narrowly specialized “scientists” rewarded for some rare abbreviation in their resume. I’ve never worked there, but I personally know a few. The “big tech” pays its engineers for… good engineering: knowing what they are doing and getting things done: delivering complete solutions that require several programming languages, databases, along with non-technical disciplines like business analysis and planning/management.

It’s not rocket science. A generalist is capable of all of the above with no corners cut — being an expert in all of his/her technical and non-technical disciplines. Essentially senior Google engineers are founders and CTOs of their projects. IT employs smart and capable people too, yet pigeonholes founder-level developers in little front end, back end, integration, DevOps, and countless other roles due to its circa-1800 factory model: the army of dumb “workers” reporting to the “manager”. If a founder-level engineer wants to grow in IT, he/she would have to give up engineering and become that manager.

What CTO-level programmers do at Google and Facebook? Their job. I described the concept here. 10–100x programmers are not algorithmic or scientific geniuses. They simply avoid mistakes made by everyone else. There is no middle ground. One is either a pro athlete, racer, soldier, doctor, and last, but not least software engineer; Or not at all. It is the mediocrity of hired by the dozen so called “coders”, that makes the true programmers shine.

Not only quality programming and “coding” don’t mix. The former eliminates the latter. Not by (another MBA wet dream) training code monkeys to become pros. By eliminating low-level “coding” through automation.

Having established, that Google and Facebook are not scientific labs, but normal software engineering companies, what kind of engineering they specialize in? They invented many tools and frameworks e.g. the new databases to handle their enormous data sets. So did countless open-source inventors. Is Google or Facebook in the database or another programming tool business like Oracle? No. They use those databases internally.

I am sorry. As much, as some Hollywood screenwriter wants to dramatize the “big tech”… As much, as Silicon Valley VCs want to hype their nominal ex-Googler CTOs as top (AI, whatever) “scientists”… It’s just boring and uneventful quality programming, Level 6 software engineers are paid $400K to do at Google.

Are you a CTO-level generalist? Do you write quality code? Yet not paid even half of the L6 compensation package? Nor were Larry and Sergey when they founded their company — with nothing, but quality programming. Find your own foothold to jump up off — turning good programming into money. That’s yours, not your manager’s or HR department’s responsibility.

And lastly, we will offer Google wages.

--

--

Alex Rogachevsky
Alex Rogachevsky

No responses yet