Sorry for taking so long to write my next post. I have even more drafts, and at least one that is a long, rambling explanation for my long absence. It’s been a pretty shit year and have been trying to find the right words to talk about it without ranting. Anyway, I thought I’d write something else for you all. Thanks for staying subscribed!
I’ll also quickly note that this post isn’t directed at my current employer, though they are not perfect. I’ll say, though, that none of my referrals at my current employer have led to a hire.
Sometime in 2014 or 2015, I was employed at Box (the file storage company) and they announced a shiny new Patent Incentive Program. The general counsel got in front of a room full of engineers and explained how they were trying to flesh out their patent portfolio, and that We Could Help! The session included a long list of slides suggesting the kind of things that were patentable (everything!) and listing off lots of hypothetical rewards (spot bonuses! generous rewards! swag!).
This caused a lot of excitement. My manager was especially bullish on this, and I ended up with my name on five patents. In hindsight, they’re all kind of bullshit. Just reading the descriptions makes it obvious why:
One is a way to redesign a website without changing the appearance so you could deploy the new code without rolling out the new look (spoilers: you have the redesign, then CSS to make the redesign look like the old site).
One annotates the DOM on a webpage with data attributes that fire off analytics events when you interact with the annotated elements.
One is a clever way to create Retina-friendly CSS sprites. (the code for this was open sourced)
The two that really had any use at all but were probably still bullshit:
One allows you to do AJAX-based navigation between pages on a non-SPA website in a way that only loads the parts of the page that changed. If you’re familiar with HTMX, it’s kind of like that, except it was automatic and degraded gracefully.
One outlines a system for creating a P2P network with gossip/consensus protocols built in that can be established using the metadata API from a file storage service1.
Five patents! Amazing! I did the thing! The lawyers were so happy. The attorney that I sat around with for hours describing the technology and going back and forth reviewing diagrams and technical wording said nice things to my director and the Box counsel.
And then… nothing.
There were no spot bonuses, or swag, or enthusiastic slaps on the back. It was complete crickets from anyone and everyone involved. Boy did I feel silly! I felt lied to and cheated (because I was effectively lied to and cheated).
At Box, Uber, and Stripe, you’re expected to refer candidates. Some companies even have referral bonuses, which were often quite generous! I referred many dozens of people in my career. Perhaps even hundreds. The recruiting teams would ask us to dig through our LinkedIn networks and list off everyone that we enjoyed working with. Stripe regularly hosted referral sessions where teams would sit in a conference room together putting together spreadsheets of people for recruiting to reach out to.
When folks that I very much enjoyed working with in the past reached out to me looking for work, I’d refer them with strong recommendations. I’ve referred some of the smartest and most talented people I know.
In the last decade, essentially zero of my referrals have led to hires.
Some referrals languished in the recruiting system longer than the person I referred was looking for work. Some referrals got to the recruiter screen and didn’t even receive a phone call. I’ve chased down recruiters to flag the referrals over Slack or in person, saying things like “It really doesn’t matter what team this person is on, they’re too talented to pass up.” And even bypassing the usual process didn’t help get them into an interview, let alone into the company.
Hey, employers? Do you know how embarrassing that is? Someone I know and respect comes to me asking to help get them into my company (they’re already interested!), I put them into the system (the one you asked me to use!), and then they either get no response or a summary rejection. It’s humiliating to have to explain to someone who is actively job hunting why it’s been weeks since I did the thing that all parties involved want done and there has been no followup.
For what it’s worth, I have to conduct technical interviews, and most of the candidates I interview don’t pass the hiring rubric. Someone applying for a position writing JavaScript who doesn’t know the (ten-year-old) syntax for a for-of
loop simply did not deserve to get to this point in the process when my strong referral did not. It’s indisputable that something is broken.
Besides doing wrong by the candidates and potentially hurting my reputation, the other issue here is the promise (from some companies) of a referral bonus. If I refer someone who I believe is excellent and they don’t even get a phone call, it’s a classic example of Lucy pulling the football away. The allure of a juicy bonus loses its juiciness when the criteria for the bonus isn’t taken seriously, and has the opposite intended effect when it feels like an empty promise.
To examine the recruiting situation a little closer, I see an impedance mismatch. The recruiters set up a pipeline. By default, they start at the front of the queue and work backwards. ICs get folks coming to them directly (often with urgency) with an expectation that these folks are already-somewhat-vetted and should be able to jump the queue with a strong recommendation. After all, we trust our people, right? A strong recommendation from someone we trust should carry weight?
The problem often isn’t that there’s no queue-jumping functionality that’s been implemented. It’s that there’s a chain of downstream processes that also need to be modified or bypassed or reordered:
Resume review
Hiring manager (or higher-up) approval
Recruiter screen
Recruiting capacity (allowing folks to skip the line with a strong referral makes the process slower for everyone else)
etc.
Getting a recruiter’s attention isn’t actually all that hard, it’s motivating a followup that seems to be hard, because it involves more people and processes. Nobody seems to have ever sat down to exhaustively think through the case, “What if one of our ICs gives us an urgent, strong referral?” Building exceptions into the workflow means a more complicated workflow (and a complicated workflow between humans, as well—this isn’t just telling two software services to talk nice to each other), and nobody wants more complexity or process.
I have a lot of empathy for this problem! As an engineer, I deal with complexity in processes almost every day. But being a Hard To Address Problem doesn’t mean that not addressing the problem is fine. In fact, the cost of not addressing the problem is so high that it undermines the whole point of having a referral system in the first place.
Let’s talk about another problem. Speaking on behalf of some of the people I’ve mentored over the years, something like this comes up a lot: performance feedback. Managers deliver biannual or quarterly performance feedback, and usually once per year this may or may not lead to a promotion. By and large, this feedback is taken very seriously by ICs. But then things happen:
Someone has been knocking it out of the park and get reorg-ed into another team or department, nullifying the things they’ve been doing because the new manager has no understanding of all the hard work the IC has been putting in.
Company priorities change and the thing the IC has been working hard on isn’t important anymore, and counts for less.
A new manager takes over the team and the performance feedback resets because the new manager can’t personally advocate for an IC that they have worked with for only a few months to get a promotion.
A manager leaves and the team reports to the skip-level, who has no time and no understanding of the work that anyone on the team is doing.
The IC gets assigned a project that is a poor match for their skillset and has no opportunity to work on something else. Back-end folks getting asked to build UIs, product folks being asked to work on high availability and disaster recovery projects, etc.
The IC does everything they were asked to do, and the following performance review outcome is “keep it up! this kind of work is how you earn a promotion! 🙏👍🧑💻” with no obvious action items. This can continue for a long time.
The list of reasons goes on and on.
As it turns out, great performance feedback wasn’t ever the criteria to get promoted and it never was. The performance feedback is the bureaucratic motions needed to tick a box so that a manager can quantitatively say “yeah, this person deserves an uplevel.” The real criteria is vibes and the professional relationship between EM and IC.
A lot of people feel burnt by this. Hell, I’ve been burnt by this. In my time at Box, I was passed over for a promotion to Senior 1 with the feedback that the independent promo committee didn’t know who I was. At Uber, I was passed over for a promotion from Eng 2 to Senior because I “didn’t make enough magic”—feedback from a manager I’d had for a couple months months. At Stripe, my promo from Senior to Staff in 2019 was delayed six months because (at the time of the performance review) the project that I’d driven was done but hadn’t rolled out to users yet and the “business value [hadn’t been] realized”. One of my mentees was working something like 60 hour weeks and—by my estimation—carrying his team, only to receive middling performance feedback from a manager that didn’t seem very engaged.
Whenever I hear a boomer raving about how back in their day, you’d stay at a job for your entire life and earn a gold watch and a pension and the respect of your ancestors, I dramatically roll my eyes thinking about all the people who have gotten passed over for a promo because the institutional machinery above them in the corporate hierarchy fell apart because in our quest to quantitatively promote ICs, the real key to getting promoted became “get your manager to like you enough to sit in a smoke filled room and advocate for you in front of their peers.”
Most companies don’t treat performance reviews with the grave seriousness that it deserves: if you yank your employees around with their career progression, they’ll feel cheated and (sooner or later) leave. Treating performance reviews without seriousness implies that you treat your employees’ careers without seriousness. It comes as no surprise it’s simply easier for an IC to bypass a farcical promotion process by quitting and going to another company that would just hire you as a Chief Senior VII Principal Staff Engineer with a hiring bonus.
Truthfully, the better outcome is for the company to be direct: “We have the budget to give everyone that is doing their job to a satisfactory level a healthy raise and one in fifteen people who are doing well a promotion.” Don’t try to avoid hurting feelings by sugar coating the fact that you simply can’t/won’t give everyone who deserves it the uplevel they have been working towards. If you think that’s bad for morale: I’ve got news for you!
Companies2: when you do things like what I’ve described, it’s personally embarrassing. Truly. It’s not upset that I didn’t get rewards for my patents3 or referral bonuses or more promotions. The frustration is that I was told to do X in exchange for Y, I did X, and there was no Y. Or I did X, and the things outside of my control that are necessary to get to Y fell apart. Or X wasn’t a real metric in the first place and getting Y was really an exercise in getting lucky. If I took the bait, I feel like an absolute fool. A Charlie Brown.
At best it’s a mistake that the system didn’t work well. At worst it’s malicious. I will give my employers over the last decade or so the benefit of the doubt and assume nobody did any of this on purpose, but that doesn’t change the fact that it feels _real bad_.
Whenever this sort of stuff comes up on the Orange Website, the comment section is flooded with folks writing exasperated replies sharing similar experiences. I’m in Slack groups with former coworkers and friends from the industry who largely have similar experiences. I know I’m not the only one.
At this point in my career, I’m done. I’m not spending hours or days filing more patents for a nice coffee mug at best, and I’m not putting my name and reputation on the line by proactively submitting referrals. I encourage the people I mentor not to aim for good performance feedback as their sole target for an uplevel because it simply doesn’t work that way. Obviously someone out there is getting referral bonuses and promotions4 but my lived experience tells me these systems are all too human-driven to reliably work.
My dad used to have a saying that he’d repeat like a broken record: “Never play another man’s game.” I don’t think you can get through life being an ideological purist with that philosophy, but as a heuristic for what’s going to pay off, it’s not a bad rule of thumb.
Please, companies, stop asking me to embarrass myself.
This was an interesting project because it unlocked the ability to have realtime functionality without standing up servers running web sockets. You’d read/write metadata on the existing Box metadata API to exchange WebRTC connection info, and the algorithm would do some magic and establish a Raft quorum that saves the state back to Box (using the standard file APIs).
There’s a story here (maybe I already told it??) about how I demoed a Trello clone, a Google Sheets clone, and a chat app built on top of this to Box’s CTO and he was completely unimpressed and had no interest in pursuing anything related to it at all.
or maybe just “Tech Companies:”; I don’t know if this is a huge problem outside of tech. I suspect yes but have no data.
Full disclosure: I have my name on one patent from Stripe. I was compensated for that patent with an enamel pin, a badge on my employee profile, a very kind thank-you note, and a high-quality coffee mug.
Full disclosure: I have been promoted over the course of my career.
Sorry I want to add two thoughts.
(1) Companies try to avoid hiring unemployed people. It sounds mean (kicking someone while they’re down) and unfair (plenty of good workers got laid off). But it’s a huge scarlet letter, like you would not believe. Like, do companies always and only lay off the bottom quintile? Of course not. But do they rarely lay off the top quintile? Yeah. Otherwise, they’d be shooting themselves in the foot. Yeah, it’s never perfect, and companies tell stories about how downsizing is performance-neutral. But you can trust them to mostly act in their own best interest. They’re not letting the BFF star go. They try to minimize hard feelings; they don’t want laid off employees to retaliate and tell stories about how they suck or even maybe sue.
So, when you try to refer someone unemployed, the company sees UNEMPLOYED. It’s like women and single men vs married fathers. All else being equal, they’re definitely going for the latter.
You might be wondering, well, what’s the point of referrals if they’re going to turn their nose up at unemployed people? It’s what they don’t say. They want you to help recruit stars from their competitors. Now, they can’t say, “Matt, please get someone you know from our competitors to apply to work for us.” That’ll invite retaliatory poaching from said competitors. So they leave that out. They want you to read between the lines.
(2) I’ve never felt emotionally embarrassed or ashamed for being fooled by a lie, half-truth or something that was true enough in the moment but had no follow through. Betrayed? Maybe a little. But more so, I just felt like I had a factually wrong view of the world, and being disabused of a romantic view is painful. To me, it’s more like, I thought 2+2=5 but as it turns out it equals 4. Maybe I should have seen it earlier.
I kind of feel like what you’re describing is common, and not limited to employment or any industry. Tech might be worse because of all the hype and hoopla and mission-y stuff. But, like, it’s kind of the human condition for people to lie, mislead or lack any follow through. It hurts to find out that you just can’t trust people, further than you can throw them. But like no one looks at you and is like “what a dumbass, fooled again by corporate propaganda.” Idk. People lie, mislead or flake out at the slightest provocation, discomfort or inconvenience. It’s just kind of shitty.
Really enjoyed this post and related to a lot of the points, especially around referrals not being effective enough (at least at larger companies in my experience). I did want to add something about how as a manager I don’t set my team members’ performance ratings or promotions just by my opinion of them; feedback from their peers at multiple levels is the main thing I factor in.