This is my account of being employed as a Senior Software Engineer while only having the responsibilities of an intern at Pivotal from October 2013 to October 2016.
2 replies (most recent on top)
Read the original post and the entire thing here: https://matt.sh/commit-this
This is my account of being employed as a Senior Software Engineer while only having the responsibilities of an intern at Pivotal from October 2013 to October 2016.
I worked from home for three years with a $220,000 salary, traveled a total of six times, two SF, one Seattle, three to Europe, and contributed thousands of lines of features/fixes/optimizations to high profile projects, all the while never being granted responsibility greater than what you’d give a middle school intern.
After being treated oddly for a couple years, I tried to clarify with HR what was wrong. HR quickly, after first ignoring my request for six weeks, declared the company investigated itself, the company decided the company did no wrong, and also, just by the way, your position is now discontinued and will you please sign a severance release of non-disparagement. The severance wasn’t tempting enough, and they refused to negotiate beyond a token “how about one extra week.” So, I passed on their $50,000 severance bundle which included the typical “you must never say anything about what is wrong with this company” clause. No dice. hashtag silence breaker.
Why did nothing work at this weirdo company? It comes down to three interleaving dysfunctions:
The company teased self-valuations upwards of a billion dollars. Dozens of employees were taking home over a million dollars a year in sales commissions. At the same time, company stock was worthless for regular employees. At founding, the company allotted about 13% of company stock for employee ownership. The rest was allocated to corporate backers and shady “customers, but also investors, but also customers.”
Managers were trained to double down on rhetoric about how “every employee has ownership in this noble endeavor, so you should feel personally committed to go the extra mile even without pay.” Yeah, great, a percentage of a diluted percentage of a percentage of underwater options. I’ll get right on giving all I can.
The company was in a nosedive from the beginning. It was founded from the dregs of other departments of other companies where nobody could extract value. The products were snake oil and executive goals pushed sales above product stability. In fact, sales was such a priority, shady sales people would happily commit frauds of technical ignorance then just laugh all the way to the bank with their million dollar take-home-pay commissions while customers never received functionality they were promised. Don’t worry though, selling imaginary features is a problem addressed by never-ending support or high priced post-purchase pair-programming consulting engagement add-ons.
At one point, sales people pushed imaginary made up “value prop” features (“unlimited scalability!” “zero downtime!” “infinite realtime deploys!” “auto healing mesh!”) when, in reality, the product could do about 4 changes per second without needing a global cluster reboot. This discrepancy caused some customers to refuse to pay recurring invoices on their multi-million dollar 5-year-deployment-schedule architectures from hell. Totally normal, right? Sales fraud leading to customers refusing to pay for contracted services happens every day. Nothing a few friendly panicked CEO-to-CEO calls can’t smooth over. After all, CEOs never lie. We know CEOs have superpowers to fix structurally incompetent software architectures overnight.
While sales people were pulling down million dollar commissions, managers also had it made. Managers had a promotion treadmill they could idly sit on and increase their salary with no extra responsibility. Managers had extra bonus programs, special dispensation towards selling stock directly to The Holy Cult CEO (because they’d be underwater otherwise and daddy manager needs a new house for his irresponsibly growing family), yet employees actually creating the company’s products would get no promotions and inexcusable 1% yearly raises.
Executives and PR also loved to brandish sales figures in public based on imagined future bookings instead of actual committed sales (VSOE? Topic 606? Who cares? It’s all marketing!). Executives and PR made sure to never mention one-time consulting revenue versus product revenue even when the company was essentially a low margin pair-programming agile body shop scam.
The entire company had been a curious financial failure since the beginning, only propped up by unwarranted crony investments. They were founded to “compete with AWS” even though they had no hardware or hosting of their own, they were founded to “win hadoop,” when everybody was moving away from hadoop to more real time processing architectures, they were founded to “teach the world how to make software,” when they can’t even run their own internal designed-by-22-year-olds-and-run-by-19-year-olds ruby apps.
Turns out, “win hadoop” resulted in layoffs and completely exiting the hadoop market even though the company promises it is the only company capable of writing software in the entire world. If a Cult of Agile can’t even prop up their own lies for three years or score an exit outside of selling bodyshops to senile executives, how can they possibly provide value to customers?
Don’t worry about the senile executives though. Turns out they are well taken care of no matter what happens to the rest of the company. Misaligned incentives much?
The company was founded formed in 2013 using failed products already in existence at other companies since 2009, but nobody noticed details like undeliverable vaporware when you’ve got sycophantic NYT coverage of your billion-dollar-out-the-gate company launch.
From the beginning, executives kept saying the company was “IPO ready from day 1.” The huge lie kept getting called on over the years. Employees started bailing en masse soon after the 8th all hands meeting where executives continued to treat any employee doubt or concern as irrelevant while espousing their own delusions of grandeur. The writing was on the wall and people started to run away as fast as possible.
After two years, the CEO of this billion dollar noble endeavor just up and left. When a CEO leaves two years in because he “reached retirement age,” that’s not a great confidence builder. If you were so close to retirement, why take on an entirely new company? Maybe because you thought it would be an easy cash out—you didn’t think reality would strike and you’d be discovered for failure and fraud and inability to execute time and time again. That’s okay though, just hand off the company to your bloated, slovenly, zero-posture assistant whose name literally means “I’m going to rip you off.”
…and that’s just the start. Where did it go from there?
Managerial instability is a great way to reduce employee confidence. Make sure each employee has a new manager at least once every 10 months. Make sure each manager has different ideas for how subordinates should behave towards management and towards the company itself.
Over 3 years my manager was replaced 5 times, each time in an entirely different department.
- Manager 1: October 2013 to June 2014
Manager was from acquired startup, so he left at the end of his vesting.
Since this manager was acquired and not directly hired in, he wasn’t part of the brainwashy personality cult of agile superiority as some of the later managers.
- Manager 2: June 2014 to November 2014
I was re-parented to manager’s manager.
- Manager 3: November 2014 to January 2016
Manager 2 left, so I was placed in an unrelated department. Manager 3 was fairly hostile to work we were doing because our work was independent from the rest of the company and we didn’t have to interact with the company’s fraudulent goals at large.
Manager 3 was also a True Believer in the Holy Mission of Agile Pair Programming and the Infallibility of CEO Directives.
Manager 3 eventually removed all recurring check-in meetings from my calendar and cut off contact with me for about a year. I literally got Milton’d from Office Space. Forgotten, but direct deposit kept working. My bright red Swingline stapler kept me company in those dark times.
- Manager 4: January 2016 to April 2016
Received an unexpected email saying “You’re being rotated.” What did that mean? I don’t speak weirdo agile cult language. Turns out they meant “You’re being assigned to a new team for X weeks.”
This new team was basically “staff augmentation.” Staff Aug is where one company hires out a second company’s employees for day-to-day tasks. It’s basically extremely low value consulting where you’d place uneducated and unproductive nitwits for daily CRUD maintenance work or server babysitting. Oh, and this department was 80% travel too (Monday-Thursday out of state every week). Nope. Not part of my job description.
- Manager 5: April 2016 to October 2016
Process? More like Recess
- Sales, Support, Software
My entire raison d’etre for being hired was to create a sales and support offering for an existing open source project the company was paying to develop. They wanted to do a typical licensing/warranty and support offering, but they needed proper sales parameters as well as someone to actually do the support (me!) and the technical presales calls (me!) and the technical sales presentations (me!) and customer architecture reviews (me!) and the bugfixes (me!) and the feature enhancements (me!).
The arrangement was simple enough: company would basically sell “Open Source Support” on the product I worked on, then all support issues going directly back to me. During any support downtime, I’d work on the project itself. Almost makes you wonder why the company was needed here at all—they were basically reselling Matt as a Service.
I spent my first few months creating training materials for front-line support and sales teams. I made sure our support site was the #1 Google result when searching for “[product X] support”.
We started getting fruitful inbound sales requests when my support site went live along with associated promotional pages.
Digression: All About Sales
“inbound” sales is like a grocery store. You walk in because you want something, you see they have pigeon meat for $3.99/kg, you accept their price, then you complete your economic transaction. Easy peasy.
“outbound” sales is the classic ‘steak-n-str—ers’ treatment. outbound sales is cold calling. outbound sales is relationship building. outbound sales is the used car sales of enterprise software. If you’re operating in good faith, you help customers who can benefit from your product, but they just don’t know it yet. If you’re operating in bad faith, you’re running a scam on customers: instill FOMO, play ego games, get your CEO to tell their CEO they should buy your product without consulting any technical staff for feasibility studies (after all, the CEOs are on each other’s boards to do shady insider purchasing sales fluffing), tell them they’re getting in on the ground floor of the next technology revolution and they must, immediately, begin building software with a silicon valley state of mind, which of course only you can provide.
Within a few weeks of launching the paid support service, we were getting half a dozen inbound requests every week. The requests were pretty basic because The Company refused to provide any public pricing (your typical sleazy company sales practice—how much does it cost? i dunno, how much you got?) A typical two week long six email exchange would go like:
“Hi, what are your prices?”
“Thanks, where are you located?”
“Why? I just want your prices.”
“Sales is regional, so we have to send you to the right region.”
“I’m in X”
“INTERNAL FWD: customer in X requests prices”
Most sales people didn’t want to engage with customers (and half out would outright refuse) to arrange support.
I saw a dozen inquiries just dropped on the floor.
The sales people were on a major commission incentive to sell the company’s other high-margin, high-fraud, low-utility products, so they didn’t care about our one-off open source support offerings. Time spent closing one $20k to $200k open source deal would distract from their personal commissions on a $5 million cloudgasm deal. Selling $20k of yearly support doesn’t help you reach your goals for that tasty $1 million illegitimate take home commission.
You can lead sales to a customer, but you can’t make them set up a webinar.
People don’t exist
At one end, you have dozens of employees taking home over a million dollars a year in commissions plus executives with negotiated heads-i-win tails-you-lose bonus programs.
At the other end, you have employees who create your products being treated like unwanted interns because development and engineering isn’t given recognition for generating revenue. Obviously only sales and executives are money makers. Developers are just an unneeded, low skilled, interchangeable burden reducing your profits because they have non-commission-based salaries. Why not just fire all your developers then sell what they made without fixing or improving anything—wow, infinite profit!
Over the next few years I tried to introduce process to unstructured development environments (failed: project owner enjoyed his “i only do what i want and i don’t like communication or teamwork” workflow).
I tried to provide experience from my background running production services to projects run by people with no production experience (failed: project owner enjoyed his “i write everything from first principles and don’t consider ‘servers’ to be a real world problem since everything works on my macbook air”).
I tried to introduce better process and repeatable testing into fly-by-the-seat-of-your-pants workflows (failed: project owner said his home server did all the testing he wanted and nobody else’s tests mattered, even though he repeatedly pushed out broken releases with failing tests).
I tried everything. But in the end, the project owner just said he owned everything and nobody could tell him what to do. He would oddly conflate constructive feedback as “being told what to do.” I tried asking my managers to get involved. My manager asked the project owner to make about 5 software changes to help the company. Project owner just ignored the requests. Managers were powerless to intervene or resolve anything. We just had to wait for things to change on their own. We just had to remain subservient to a laughably stereotypical sheltered ego.
Overall, this was not tiny software. These were not tiny problems. This was software used by tens of thousands of companies running off a development process resembling 1993 hacker living in their parent’s basement. lol open source! Nobody cares as long as the package deploys, right? It’s not like security or reliability or design or efficiency or growing a sustainable team matters in software these days—just write it, commit it, then ignore all feedback because you are right and the world is wrong.
I tried to improve things. I failed. I moved on. Welcome to my life.
This is where we start to slow down. The rest is an outline of where this article would have ended up if I wanted to write a book-length tome/rant of experiences, but the utility of an extra 20,000 words here seems low.
If you think any section seems worth fleshing out, let me know.
Work on a project
as a subordinate
as an unwanted subordinate
on a project the company doesn’t actually own
project is owned by an individual
an individual who doesn’t believe in teamwork
but the individual is employed by your company
realize your cow-orker gets to personally profit off all work you do
because he has a “special contract”
saying the company has no control over his work and he owns everything
and proudly brags about his criminal acquaintances in the news
saying all work is his, owned by him, and the company has no rights to anything
also in consideration: cow-orker is under weirdo foreign employment
meaning there’s not a huge work/success incentive
github issues? “oh, i just look at the 3 most recent issues when i fell like it and reply if i feel like it”
it’s cheaper to keep weirdo foreign employees who work 3 months a year rather than fire them
because company would have to pay 15-24 months severance after firing (see: “weirdo foreign employment”)