Stories about Software


Employers: Put Your Money where Your Mouth Is

I had an interesting exchange on Twitter a couple of days ago with Dave Schinkel. Here’s the most salient tweet:

Read More


Lifting the Curse of Knowledge

As most of you know, one of the biggest anti-patterns when you’re instantiating program slots is to forget to set CanRemoveOverride to true. But what you probably didn’t know was that the SlotConfig is — Just kidding. I lifted this from a post I wrote almost 3 years ago about legacy code I was working with then. I have little more idea than you do what any of that means.

Read More


Performance Reviews Simplified

If you were to ask people in the corporate world about the most significant moments of their careers, a lot of them would probably talk about annual performance reviews. That’s a curious thing. Anyone who talks about performance reviews when asked this question is not talking about an idea they had that saved the company hundreds of thousands of dollars or about rescuing a project that had gone sideways. Instead, their careers were defined sitting in a room with their managers, going through a worksheet that purports to address how well they’ve matched up against the company’s ‘values.’


Read More


Programmer IS A Career Path, Thank You

If you’re a programmer, think back for a moment to the first time you hear the career question. You know the one I mean, even if you don’t recognize it as the question: “do you see yourself on the architect track or the management track?” Caught off guard, you panic momentarily as you feel that you have about 5 seconds to decide whether your long term future involves lots of UML diagrams and flow charts or whether it involves lots of Power Point presentations and demanding TPS reports from underlings. If you’re like most, and you were to answer honestly, you’d probably say, “neither, really, because I kind of like writing code.” But you don’t give that answer (I never did) because you’d effectively be responding to a career development question with, “I have no interest in career development.” But let’s put a pin in that for a moment.

Imagine a kid going to law school and graduating to go work at a law firm somewhere as an associate, doing whatever it is that associates do. Now imagine a conversation where a partner at the firm pulls this associate aside and says, “so, have you thought about your future? Do you see yourself as more of a partner in the firm, continuing to practice law, or do you see yourself as more of a lawyer-manager?” I imagine the response would be, “what on Earth are you talking about? I’m a lawyer. I want to practice law and be a partner. What else is there?”

Why is it okay (or would it be okay, since this conversation would never actually take place) for an ambitious lawyer to say, “I just want to be a lawyer” and not for an ambitious programmer to say, “I just want to be a programmer?” For the purposes of this post, I’m going to leave that question as rhetorical one. I’m actually going to answer it at length in the book that I’m starting to write, but until the publication date, I’ll leave the why as an exercise for the reader and just posit that it should also be okay for a programmer to say this.

I’d like to see a culture change, and I think it starts with our current generation of programmers. We need to make it okay to say, “I just want to be a programmer.” Right now, the only option is to ‘graduate’ from programming because failure to do so is widely construed as failure to advance in your career. If you become a line manager (or the diet version, project manager), you stop writing code and become the boss. If you become an architect, you kinda-sort-usually-mostly stop writing code and kinda-sort-sometimes-maybe become sorta like a boss. But however you slice it, organizational power and writing code have historically been mutually exclusive. You can play around with teh codez early in your career, but sooner or later, you have to grow up, take your hands off the keyboard, and become a boss. You have to graduate or risk being the metaphorical ‘drop-out’ with the title “Super Principal Fellow Engineer,” who looks great on paper but is generally ignored or smiled at indulgently.


That’s going to change sooner or later. As someone who has looked for work and looked to hire pretty steadily for a number of years, I’ve witnessed an increase in developer salary that is both sharp and sustained. As the average software developer’s wage starts to creep into 6 figure territory, it’s simply not possible to keep the pecking order intact by paying overhead personnel more and more ungodly sums of money. Just as it makes no sense for a law firm billing out at $500/hour to hire a “lawyer manager” as a 1 mil/year cost center, it eventually won’t make sense to pay a quarter million a year to a pointy-hair, when Scrum and basic market forces both offer the allure of a self-managed team. In both cases, overhead work still happens, but it reports to the talent rather than ordering it around and demanding status reports.

How quickly it changes is up to us, though. We can change this culture, and we can change it pretty quickly, I think. The first thing you can do is fix it in your mind that being an “architect” or “project manager” or “manager” isn’t a graduation and it isn’t a rite of passage. It’s an agreement to do something different than what you’re doing now. Nothing more, nothing less. The second thing you can do is vote with your feet.

I’m not advising that you do anything drastic, but rather that you take stock of your circumstances. Are you at an organization where programming is clearly viewed as how you bide time until you get promoted to a boss’s chair? If so, consider adding a new criterion to your next job search. Look for organizations that feature prominent industry figures, such as conference speakers, authors, or people with some “tech celebrity.” These are the organizations that are the “early adopters” of the lawyer/partner dynamic of “best at the trade calls the shots.” If you hook up with these organizations, nobody is going to ask you what “track” you see taking you out of programming. They’ll assume that you’re there because you’re deadly serious about programming as a profession, interested in learning from the best, and interested in subsequently becoming the best.

Sooner or later, we’ll hit some kind of critical mass with this approach. My hope for all of our sake is that it’s sooner. Because the sooner we hit critical mass, the sooner you’ll stop having to explain that doing what you love wasn’t a backup plan for failing to rise in the ranks.


Be the We

There’s a moment at a job that you’ve probably never thought about specifically, but it’s a knee point of sorts. Think of arriving at a new gig that you take somewhere, fresh out of the interview process, pumped about the new opportunity and the 10% pay bump you’ve negotiated for yourself, and generally rarin’ to go. You’ve come out of an interview process in which you’ve presented a pretty rosy picture of yourself and so have they, so everything’s awesome.

Then you arrive for your first day with your passport to prove citizenship and your lofty expectations and, after a period of getting settled, you get down to work and see what’s going on. Maybe it’s a walk through the code base or your first standup meeting where it happens. Maybe it’s a department meeting. I don’t know. But somewhere, it happens. You see something pretty crazy that calls into question all of the awesome things you thought about your new Shangri La. Maybe the company is using Visual Source Safe for source control. Maybe “daily standup” is a manager sitting while 30 direct reports spend 2 hours furnishing status updates. If you think hard, I’m sure you can remember the first “these people are insane” moment that you had at any given company. But that’s not the moment that I’m posting about; that’s just a baseline moment to which we’ll return shortly.

That first WTF moment probably isn’t the last and, to some degree, this is inevitable since not everyone will do things in quite the same way. You respond to these early moments by asking questions of the people there: “so, what’s the backstory behind that 12,000 line singleton class” or maybe “why do you guys put up with code commits taking 3 hours?” And, what’s more, you probably make the case to remedy some of these things and, perhaps even have some success. You fight strategic battles but you don’t (and can’t) win them all, and at some point you and the company adapt to each other like an ice cube in a warm glass of water becoming coolish water. You change some things and get used to others.

And then the moment in question comes. It sneaks up on you when a new hire comes on board, looks at the code commit process you’ve trimmed from 3 hours to 2 hours and says, “what’s wrong with you guys that commits take 2 hours?” The moment happens when you say, “that’s not me, man — you should have seen what these goofballs were doing before I got here. Don’t lump me in with them.” Tell me this has never happened to you, I dare you. You wince and say, “it was like that when I got here!”

As one of my favorite movie characters (I make the distinction because I have no idea if the actual man said things like this) Doc Holliday said in Tombstone, “apparently, my hypocrisy knows no bounds.” I mention this because I’m about to advise against this in a “do as I say and not as I’ve done” sense. Over the course of my career, I’ve tended to disengage (and eventually leave) from situations that I found to be degenerate, rather than battling endlessly to correct them. This led to a tendency to keep myself at arm’s length from a group if I didn’t like things that were happening.


What I’ve come to understand is that there is no “me and them” except in the realm of your (and my) hollow excuses. As soon as you sign on with that company, there’s only “we.” I’ve learned the hard way that accepting this immediately results in better outcomes in the same way as the “fail fast” mantra. The best outcome is that you get there, ask questions about “why does our build take so long and how can we fix it,” and you start chipping away, making real progress that you can take pride in. Your investment of your own reputation in the endeavor provides strong motivation. Another decent outcome is that you can’t make progress and are forced more quickly to ask yourself, “do I want to be part of a ‘we’ that operates this way — do I want my name on this?” If the answer to that is “no” and there’s no sign of improvement, it’s better to exit stage left as soon as you can than to sit around, making sure everyone knows that you don’t actually think much of your group.

Really, that’s a terrible outcome for as long as it continues. You’re unhappy and you look like an excuse-offering malcontent. Your peers resent you because they perceive (probably correctly) that you’re bashing their previous work or throwing them under the bus. It’s a bad situation all the way around, and it can be avoided, I’ve learned over time, by getting to “we” as quickly as possible.

So when transitioning to a new job, assignment, team, or whatever, start talking immediately about what “we” do. It will align you with your group, generate earlier feedback for you on whether it’s a good fit or not, and probably bias you over the long haul to evaluating mutual compatibility more carefully up front.


Help, My Boss Sucks!

I might be accused of link bait for a title like this, but I actually get a decent amount of questions that, when you distill them down to their bare essence, amount to this title. The questions are often packaged in narrative (possibly rant) form and almost invariably summed up with an apology for all of the detail. Please don’t apologize for that level of detail. It’s not that I enjoy hearing about your miseries, but I think that there’s definitely a shared catharsis that occurs when recounting or listening to tales of corporate stupidity with a narrator that’s powerless to stop it.

My Expert Beginner series and eventual E-Book resonated with a lot of people largely, I think, because of this dynamic. The experience of dealing with an entrenched incompetent is so common in our industry that thousands and thousands of people read these posts and, thought, “hey, yeah, I had to deal with a guy just like that!” And I’m small potatoes — the DailyWTF is an entire, vibrant site with tens of thousands of subscribers and a number of authors and editors dedicated to this kind of thing. If you want to go even bigger, think of Dilbert and his pointy haired boss or the Peter Principle.

Assuming, however, that commiseration with others isn’t enough to bring the joy back into your life (or at least to remove the angst from it), the question then follows, “what should I do?” It’s at this point that one might expect to stumble across some kind of insipid faux-answer on LinkedIn or something. It’d probably go something like this:

Top Ten Tips to Tame a Terrible Tyrant

  1. Take up meditation or yoga and learn to take deep breaths when your stress level is getting high so that you can react calmly even in the face of irrational behavior.
  2. Ask yourself if you’re not part of the problem too and do some serious introspection.
  3. You don’t have to like someone to respect them.
  4. Talk to human resources and ask for discretion.
  5. Have a heart to heart and explain your concerns, being courteous but firm.
  6. Enlist the help of a mentor or respected person in the group to make things more livable.
  7. Empathize with their motivations and learn why they do what they do so that you can avoid their triggers.
  8. Heap praise on the boss when he or she avoids behaviors you don’t like in favor of ones that you do.
  9. Seek out a project that puts you on loan to another group or, perhaps, minimizes the direct interaction with your boss.
  10. If all else fails and you’re at wits’ end, perhaps, maybe, possibly, you might want to consider some kind of change in, you know, jobs — but do a ton of research before you do anything and make lots of idea webs and charts and make really, really sure that this is what you want to do because it’s a huge decision.

Honestly, go out and google something like, “what to do about a bad boss” and this is the sort of platitudinous, enumerated non-answer to which you’ll be treated.  It’s manicured, politically correct, carefully considered, diplomatic, and a load of crap.

Let’s get real.

What To Do When Your Boss Sucks

  1. Form an exit strategy.  That’s it.  There is no 2.


Wait, Wat?

Yes, you read that correctly.  I don’t advocate that you take up yoga or work it out on the heavy bag or recite “calm blue ocean” or empathize or anything else.  If you find yourself miserable at work day after day because of a boss with whom you are fundamentally incompatible or if you find yourself googling “what to do about a bad boss” or if you find yourself writing to someone like me to ask for advice on what to do about your bad boss, you’re in a fundamentally awful position that’s probably shaving hours and days off of your life.  Whatever appeasement strategy upon which you may choose to embark is only going to mitigate that — it won’t alter it.  You need to take control of your destiny and that requires an executable, measurable, and tangible plan of action.

I’m not advising you to rage quit or do anything rash — that’s an awful plan (or perhaps a non-plan).  What I’m suggesting that you do is start laying out a sequence of events that removes this person from your life.  There are a lot of ways that this could happen.  Obviously, you could quit and work elsewhere, but you could also plan to stick it out until the boss retires in 18 months.  Perhaps you start taking classes at night so that you can transfer into a different group or maybe you find some team-lead type that acts as a buffer between you and Mr Spacely.  It could be that you do something as unusual as becoming a huge advocate for your boss to upper management so that he’ll get that promotion that will take him to another division or, at least, away from dealing with you directly.  Maybe you initiate controlled explosions inside of your own ears so that you never have to hear his terrible voice again and he can’t deal with you unless he learns sign language.  Go make yourself a brainstorming list — no idea short of criminal malfeasance too farfetched — and capture every imaginable path to your emancipation.  Once you’ve got that list in hand, start narrowing it down and firming it up until you have several strategies that you can work simultaneously, all timeboxed and with contingency plans.

You need to have measurable goals against which you can measure progress and you need to understand when to pivot.  A good plan would be something like, “I’m going to get that certification that will make me a bit more cross functional and then I’ll start volunteering for work over in Bill’s group in my spare time.  Within 3 months of that, I’ll casually broach the subject of spending some time in that group and within 4 months, I’ll make it official.  While that’s going on, I’ll talk to HR within the next month about the idea of a potential transfer.  If after 4 months, none of that is going well, I’ll start interviewing for other positions.”

Now when you’re looking at your life, you’re not seeing an unending string of misery to be mitigated only with non-actionable platitudes like, “be more understanding” and “ask yourself if you aren’t partially responsible.”  Instead, you have a plan of action that you believe, if followed, will lead you to being happier.  Because here’s the thing — if you’re fundamentally incompatible with a boss then “who is responsible” is a non-starter and being more understanding isn’t really going to help.  There’s a Protestant Work Ethic, “Pain is Gain” underpinning to all of this that’s really not appropriate.  Is it an inappropriate sense of entitlement that must drive you to say, “I shouldn’t have to work somewhere that my boss makes me miserable?”  Many would argue yes, but I’m not one of them, and I think that’s silly.

If you’re overly picky or sensitive, you’ll wind up job hopping, getting stuck somewhere or, perhaps, have trouble finding work.  That’s how you pay the piper for being too picky or sensitive and, if those things start happening, maybe you should embark on a course of introspection.  But if you’re miserable under a boss, that’s real and there’s no way it’s entirely your fault.  It’s not your sole responsibility to figure out a way to prevent someone from making you miserable and you ought to view this as a no-fault problem to set about solving.  That’s where the plan comes in.

A boss is someone who should be removing impediments from your path to allow you to be as productive and awesome as possible.  That’s not feel-good BS — it’s the way to get the most value and productivity out of knowledge workers.  No boss that truly embraces this mandate should be making your life miserable, even if you are an over-sensitive, uber-picky prima donna.  If the boss is making you miserable on a daily basis then he’s an impediment and not an impediment remover.  Since you’re then responsible for removing your own impediments, there’s only one thing to be done with this boss: remove him from your life.

That’s All Well and Good…

I realize that this all probably sounds rash and maybe you think, “easy for you to say,” but it didn’t just happen to become easy for me to say.  I planned for it.  I’ve spent a lifetime optimizing for my own happiness and satisfaction with what I do and, when that temporarily wanes, due to a boss or anything else, I form a plan, follow it, and fix the problem.  And I do this by thinking in terms of diversification and dependency.

If you take a job at Acme Inc, settle in for a 10+ year stay, and let your resume gather dust, then you’re largely dependent on Acme Inc for your well being via income — you’re putting all of your eggs in that basket.  If Acme then burps out a bad manager and puts him above you in the org chart, you find yourself in the same position as a cable company customer: “yeah, we’re awful, but good luck doing anything else.”  If it seems daunting or hard to plan at this point, it’s because you’re pretty coupled to Acme.  You still can and should make a plan, by all means, but that’s why my advice might seem cavalier.

I have contingency plans all the time, and they range from W2 opportunities to 1099/B2B work to royalty streams to oddball, go-for-broke schemes like moving to the country to be a hermit and try my hand at writing novels.  Some of them are clearly more realistic or feasible than others, but they all exist and I’m in a constant state of assessing my happiness and weighing my options.  Don’t confuse this with fickleness or disloyalty in me and I’m not advocating those things in you.  If I could find something that made me consistently happy, work-wise, for the next 2 decades, I’d happily take the consistency and stability, and I cheerfully advise you to do the same.  But when life or companies throw crap situations at you don’t hesitate to start executing contingency plans to bring your happiness level back to where you want it.  Your happiness is something that you can’t count on anyone but you to monitor and it’s not just important to your quality of life — it’s important to your quality of output as a knowledge worker.  You and your reputation can’t afford for you not to be happy.


A Study in Mistrust

I witnessed a rather surreal series of events some time ago. A software group lost its line manager to the proverbial greener pastures and was sort of temporarily adrift in a leadership vacuum. The organization didn’t immediately backfill the role and the team sort of lurched on for a little while, unsure of who would be transferred in. During the course of a search for a replacement, an interim manager was appointed, and the team promptly quit. Yes, you read that correctly. The team quit. I don’t mean they quit on him the way a sports team “quits on a coach” by tuning him out. I mean that the entire development team, within an incredibly short period of time, resigned from their positions. The world of software people is a strange one where they can often have new jobs within days or certainly weeks of deciding to look. But, I digress.

I’ve been watching the British take on Sherlock Holmes of late, and that has inspired me to spend a little bit of time thinking of a name for this case. After discarding such inanity as “The Case of the Missing Team” and such drollery as “The Adventure of the Vanishing Devs,” I settled on “A Study in Mistrust.”


The game’s afoot! (But first some backstory)

To solve the case, and lacking the formidable powers of deduction that Sherlock Holmes brought to bear, I’m going to rely instead on history. Labor has a rather rich history of mistrust once societies grow beyond the level of “tribe” where things tend to operate democratically or communally. The reason for this is that the origin of the corporate labor model involves foremen whipping indentured servants, slaves, and laborers who were failing to construct pyramids and the like quickly enough. You probably wouldn’t trust people either if the proposition they offered you was, “do this or I’ll injure you.”

Of course, we’ve come a long way since antiquity (though not without regressions). Feudalism replaced “do this or I’ll injure you” with “do this or I’ll let others injure you” and “do this or you’ll starve.” It’s not exactly a meteoric rise up Maslow’s hierarchy, but one supposes that hunger and possibly realized threats are a little better than immediate threats. Serfdom eventually gave way to the Industrial Revolution, which by and large replaced “do this or I’ll injure you” with “do this or you’ll go hungry and possibly end up in debtor’s prison.” And so, another relatively unremarkable step was realized. But then labor laws came about, removing Gilded Age practices like sharecropping and tenant farming from the equation. Actual gains were made and social safety nets created, resulting in a situation where not laboring in employ wasn’t necessarily as bad as it had been, historically. The unemployed still don’t have a particularly great life, but walking away from a job no longer constitutes a visceral, immediate threat to your well-being.

If you go all the way back to the labor of antiquity that was not cooperative (e.g. hunter/gatherer societies) and consider what caused the original power imbalance, you’ll find a lot of things like hereditary station in life. Your dad was a laborer and whip-wielder’s dad was a foreman, so whip-wielder gets to whip you while you labor. This doesn’t exactly engender a lot of mutual trust in the first place, and the nature of the situation makes things worse. Stacking pyramid stones sucks, and no one would want to do that, so you have to whip people to make it happen (or invent some religious story like telling laborers it’s worth it because even though their lives suck, they’ll totally get a better seat on the ferry to the afterlife for their troubles). The whip-cracker doesn’t trust the workers to work and, not surprisingly, the workers don’t trust the dude that’s whipping them.

That (lack of) trust story didn’t change a whole lot as the workforce gradually shifted from slave-oriented to feudal to early capitalist societies (not that this was a linear journey, as evidenced by the African Slave Trade). By the late 1800’s there wasn’t any (much) whipping going on, but your boss, who was also your landlord, might evict you if you didn’t work to his satisfaction or might fire you if you didn’t pay rent. Boss doesn’t trust the peons, and the peons don’t trust boss. This brings to mind classic and iconic factory imagery of someone strolling around with the clipboard, making notes, and taking laborers to task for failing to sew buttons properly or assemble widgets quickly enough. The lazy workers don’t trust the overbearing foremen and vice-versa, and all parties are aware that the work sucks.

Interestingly (and absurdly), the factory/foreman model (along with a masochistic, heaping helping of Protestant Work Ethic) is largely what informs the operation of modern corporations. Think of some kind of garden variety, generic office satirized by works like The Office and Office Space, and what do you picture? I bet you quickly form images of employees finding ways to linger at the water cooler while mid-level managers say, “so, what’s happening…. yeah, so I’m going to need you to go ahead and limit your breaks to 10 minutes every 3 hours and punch in and out of the break room each time you enter so that I can check… yeah.” No doubt they monitor employee Facebook usage to ensure that the lazy louts aren’t misappropriating company time.

Over the years, the outfits have changed and the cruelty (at least in the corporate world) has been mitigated and moved away from physical, but the basic lack of trust between the two parties has withstood the test of time. “Do this stuff that sucks or I’ll do bad things to you.” We accept this as a pretty standard way to operate and shrug it off with inane banalities like “welp, they wouldn’t call it work if you liked doing it,” and “I work to live; I don’t live to work.” In a world of mutual mistrust, the employed and the employer have a sort of festering but peaceful cold war of equilibrium.

This approach tends to work well enough for jobs done by rote and other types of labor, but, not surprisingly, it sucks pretty hard when it comes to knowledge work (loosely defined as people who “think for a living”). That is, yelling at doctors to “doctor faster and with fewer mistakes” doesn’t seem to lead to better health outcomes. The main barrier to accomplishing knowledge work isn’t the same as the main barrier to stacking pyramid stones. It’s hard to get people to stack pyramid stones because it’s boring, back-breaking labor that’s simultaneously not worth much from a market perspective (it requires no skill) and not worth doing from an individual perspective (who needs the hernias and slipped discs) — the ideal solution is to automate. But with knowledge work, the main barrier to accomplishing things tends to be some kind of creative block, which is ideally addressed by stimulating environments conducive to creative thought.

There’s a new norm emerging, and it’s driving things like the Agile movement, startup, “perk” culture, casual/flexible office environments, remote work, etc. The new norm of which I’m speaking is the idea that you get the most productivity out of knowledge workers by making them comfortable, relaxed and happy. And the element at the core of all of this is trust. Gone is the “do this stuff or I’ll do bad things to you” contract and in its place we find a new employer-employee contract: “if you deliver value and get things done, we’ll make it worth your while and try not to bother you more than we have to.”


And so, Watson, only one piece remains missing after all of this background. Why would a team of knowledge workers in this brave, new paradigm just up and quit? (I’m resisting the urge to start this next sentence with “elementary.” You’re welcome). They’d quit if they were forced back into the old style of contract when they’d been used to the new; going from being trusted to being guilty of laziness until proven innocent would do the trick. And fast. And that’s exactly what happened.

I’ve written previously about how ridiculous it would seem to go from a well implemented agile process to waterfall. This is a similar concept. Going from a situation with the trust contract to a situation with the threat contract would be worse because it doesn’t just seem inefficient and weird — it would feel dehumanizing. And, in an industry where the demand for knowledge workers is through the roof, a knowledge worker in this position would quit and quit fast. And that is what the whole team did “A Study in Mistrust.” They reacted predictably to a whip-cracking newbie manager that wanted to “set the tone” from the start.

It’s worth considering your own situation and, if you have people reporting to you or you’re a non-org-chart thought leader, it’s especially worth considering the situations of those you lead. The ideal situation is one in which the employee and employer benefit mutually from an arrangement of trust, but if your situation is less than ideal, take care with how you handle it. Bravado and shows of force are not going to lead you to new outcomes. Both players in the relationship and signatories to the implied contract have a vested interest in finding a way to create or repair the trust.


Breaking Free of the Golden Handcuffs

In a comment on my post about how to resign from your company, I was asked about advice for a situation where you don’t like your job, but they’re paying more than any other competitors in the industry.  In other words, what to do when leaving the company would mean that you’d personally take a haircut, financially speaking, and have to go somewhere for a smaller paycheck.

I refer to this situation as “golden handcuffs,” though I Think that term applies more to firms specifically offering you financial incentives aimed at retention, such as delayed vesting in your 401K, lump sum bonuses for staying on, etc.  I personally think that a salary well above fair market value (which is, ipso facto, what we’re discussing here) is just another form of this — we’ll make you stay by offering you money you can only make by staying.

But regardless of terminology, the question is, “what do I do about this state of affairs?”  As I see it, there are a number of solutions.  I’ll briefly cover some common sense ones first, and then get to the more interesting solutions.

Obvious Solutions

First of all, you could always just leave and take a reduced salary.  You’d obviously need to set your affairs in order financially to accommodate for the lower paychecks that would be coming your way.  A good way to do this might be to estimate what you’d command on the market, ratchet down your budget accordingly, and put the surplus in savings for a bit to help smooth the transition when you do make the move.

Another obvious solution is that you could simply “suck it up” and keep at your current job.  It’s all well and good for people to say “money isn’t everything,” but money does have real world, practical uses, like medical bills, mortgages, and children’s tuition.  It might be that, however much you don’t enjoy what you’re doing at work, you need the money and will just have to grin and bear it (though this can be a reasonably temporary solution where you bide your time until you’re clear of some obligations).

Last up here is the Hail Mary, which is sort of a modified version of “suck it up,” wherein you go out looking and interviewing but with the stipulation that you receive pay comparable to what you currently get.  It could always be that you’re simply assuming that you’re overvalued but really you aren’t.  Honestly, the single biggest predictor of your next salary is your current salary.  You might be surprised at how readily a new firm will pay you what you’re making or a bit more.  But, if you’re accurate in your self-valuation, you wind up in “suck it up” mode indefinitely, but at least you’re constantly looking.

Now, with those out of the way, here are some interesting options.

Supplement Your Income

So, you have a job that you really don’t like and you’re there 40 hours per week (and not a minute more, amirite!?)  Perhaps you don’t even give them quite that many because of organizational inefficiency or unstructured-unstructured time and maybe that’s even why you want to leave.  Whatever the case may be, there’s a decent chance that you’re not exactly dedicating all of your spare brainpower to your current gig for as long as your golden handcuffs keep you and the company reluctantly married.

Take some of your spare time (or perhaps some of your unstructured-unstructured time at the office) and secure another line of income.  This could be something like moonlighting or consulting for money, but the reality here is that you’re tying up extra hours on top of (or in lieu of) current work hours.  So, even if this gets you extra income to make the jump to something lower paying, you might have to work 40+20=60 hours at the new gig to have the same income as just 40 at your current gig.

A better solution is to work on something that generates passive income for you.  It could be something like a rental property (I mean, you typically don’t wind up with golden handcuffs without a bit of gold in the mix), but it could be something more in line with your day-to-day.  For me, Pluralsight authorship has helped to give me a decent amount of career flexibility.  Perhaps you could monetize a blog, write a book, or something else along these lines.  This is not an overnight solution, but it’s a career option to consider over the long haul.

(Please note, I’m not encouraging you to misappropriate your company’s time to pursue your own financial interests.  If you choose to do that, it’s purely your own ethical conundrum — I’m encouraging you to economize downtime not otherwise accounted for, such as commutes, quiet home time, or cases where you literally have nothing to do at the office and couldn’t even be helping the organization with a side project)

Orchestrate a Non-Lateral Move

Speaking of what to do in your spare time that could help, how about brushing up or solidifying your credentials toward the next career step?  Are you a software developer?  Time to shoot for Senior Software Developer.  Already a Senior?  Shoot for Architect?  Already an Architect?  Dev Manager.  You get the idea.

This type of career jump can be somewhat hard to negotiate, but it comes with an expected increase, that, in the case of golden handcuffs, might translate to a lateral move from a salary perspective.  However, it’s anything but lateral for you as you’re now in a position to resume a career of growth and get COLAs and merit increases that pace the industry.

Admittedly, this can be difficult, but it can also be doable.  Identify the position title that you’re after, and then look at common job descriptions for it, focusing on the responsibilities.  Those are the things that you want to be able to tell people in an interview that you are currently doing.  So, if you’re gunning for Architect, ask to sit in on formal code reviews or architecture meetings or whatever the grand code poobahs at your company do.  Work your way into these types of responsibilities and then, in interviews for this career-advancing move, you can say, “well, it’s not official in my position title, but I have been doing the role of X for a while now.”  It’s not as much of a no-brainer as going from Architect at Acme Inc to Architect at Beta Inc, but it should get you a fighting chance.

Make Your Skill Set More Marketable

So, let’s say that you lack the spare time to secure passive/other income (perhaps you hate your job because they work you 60 thankless hours per week) and you don’t think you can swing a non-lateral promotion.  What you can do is identify why you’re comparably devalued on the market and then do something about that.

A common scenario might be that you’re using dated or obscure techs.  Your company pays you handsomely to maintain a maze of code written in Cobol and VB5 because there are like 4 other people in the world with that combination of skills and they refuse to lose you.  Meanwhile, you hate writing code in Cobol and VB5, but recruiters aren’t exactly knocking down your door and calling you a “A Full-Stack Ninja Rockstar.”  Well, your company is probably good and hosed no matter what, but there’s no need for you to keep sinking with that ship as they buy weird, old decommissioned machines capable of running a compiler that no longer exists.

If you have spare time, start writing some Ruby or C# or whatever in your spare time.  If you don’t (because they’re mercilessly working you 60 hours per week), start finding ways to bring the new stuff into your day-to-day.  Sell management on letting you write some new functionality in a more modern language.  Or just do it, reasoning that it’s better to beg forgiveness than ask permission.  Find a way to get some kind of modern tech plausibly onto your resume, and watch your options improve.

Change Your Company

I’m not sure who said it originally, but I first heard a quote that I love from the .NET Rocks guys.  “Change your company… or change your company.”  The context, as you might imagine is that if you’re unhappy, you should try to change the way your company does things and, failing that, you should leave for a more suitable company.  What I’m advising you, Golden Handcuffs, is actually the converse of that — quitting ain’t an option for you, so try changing your company.


A company offering you golden handcuffs presumably needs you around.  This gives you some bargaining leverage.  If you’re exhausted or miserable because of working conditions, talk to HR about it.  If it’s the techs or the fact that you’re surrounded by Expert Beginners, start a grassroots movement toward improvement.  Or, perhaps, secure an assignment where you’re more on your own and can have some creative freedom and autonomy.

The key here is to identify the things about the company that make you happy and develop actual strategies for addressing them.  Changing an organization can be exhausting and it’s often a long-play, but it’s doable.  In my career, at times, I’ve emerged from such efforts battered, tired, and war-torn, but ultimately successful to some degree.  You can do this too — the pay is already good, so make the rest of it good.

Time Is On Your Side

To wrap up, I’ll note that the one common thread here in your favor tends to be time, provided you’re not just twiddling your thumbs, running out the clock to retirement (and even then, you might argue that it’s on your side).  Most of these solutions take time to implement and will have a higher probability of success, the longer that you can stick out your current situation.  For instance, I’ve implemented organizational changes that only really took root after I’d left, and it took me years of blogging, writing, and mentoring before I turned any of my moonlighting activities into passive revenue streams.  Had I been desperate for a change but unable to secure a competitive paycheck, these things wouldn’t have been my game-changer by any means.

It may sound like cold comfort if you’re in this situation right now, but assuming you can’t simply take the income hit or continue to suffer indefinitely and check out, you’re going to have to strategize and bide your time.  But it’s my experience that once you lay out a plan and start acting on it, you’ll feel a renewed sense of purpose and see that proverbial (cliched) light at the end of the tunnel.  There’s a pretty good chance, in fact, that lacking a feeling of real purpose is at least part of what’s bumming you out about your job in the first place, since it’s clearly not money.  Here’s a chance to take it back.


A Developer’s Guide to Recruiters

More and more of my posts these days are in response to reader questions, but this one actually isn’t. However, I’ve been asked about specific aspects of this general theme frequently enough that I figured this was a good subject to cover. I’ve dealt with a lot of recruiters in my career, both as a candidate and a candidate seeker, and this has put me in a position to at least have an informed opinion about the subject. It’s something that’s at times overwhelming and often counter-intuitive, so hang with me, and let’s take a tour through the subject. Even if you’re a savvy job-hopping veteran, maybe I can at least offer you a different technologists’s perspective.

First Up, Check Yourself

Okay, so there are a lot of recruiters out there, and you’ve probably seen a less than stellar display from some of them. “5 Years of Experience with Swift.” “Mad XML coding skills.” “C-Pound a plus.” It’s common for developers to laugh together at these antics. There are even (hilarious) twitter accounts lampooning this. It can also be annoying to get repetitive emails from some organization about jobs that are not fits for you or to have a guy call you three times in a day, saying things like, “I couldn’t help but notice you hadn’t returned my first two calls.” I get that.

But here’s the thing. You’re incredibly, ridiculously fortunate to be in a position where so many people are saying, “hey, please come interview for this job for more pay” that you find it annoying. I’m not saying “you’re fortunate” in the sense that you lucked into it — I know this isn’t easy work — but that you’re fortunate the market is and remains so strong. It can be overwhelming at times, but imagine the alternative of being stuck in a dead end job and being thrilled when some company wants to schedule a phone interview after you’ve sent out 100 resumes through monster.com or something. You might not even know what monster.com is, and that’s because you don’t have to go looking for jobs like other people. That’s the reason that recruiters exist — because the only way to find software developers is to go prying them loose from other firms, and it’s not like CTOs are going to take it upon themselves to start cold-calling competitors’ developers to offer them interview opportunities (though some larger companies do have staff recruiters that do this).

Also to consider is that recruiters are humans, and often they are humans probably no more interested in cold calling you than you are in receiving cold calls from them. Their paycheck depends on calling up a bunch of people who are most likely to sigh angrily and tell them to lose their numbers. That’s not exactly the stuff dreams are made of, so you might extend them a touch of sympathy and understanding if they’ve built up a thick skin and don’t seem overly sensitive to your social signals. They’re out there trying to make a living by getting you job interviews.

The Nature of the Game

Alright, up front caveats aside, the next thing to understand is how the game actually works. Follow the money and understand everyone’s motivations. Understanding everyone’s motivations is the key to knowing whether you’re being fed a line or whether you should take what you’re being told at face value.

Recruiters are sales people. Their customers are companies that need software developers. Their product is mutually beneficial employment agreements, which really means that their product is you, developer. Recruiters sell you to companies. Kinda literally. Typically, their cut is 20% of your first year’s pay, give or take. So, if Devs’R’Us places you with Acme Inc for a starting salary of 100K, Acme Inc. writes Devs’R’Us a check for 20K, and the individual recruiter (typically) gets some kind of commission on this. (This obviously doesn’t apply to companies with internal recruiting staffs, except that I’d wager their recruiters are still incentivized with a commission structure.) If things blow up before an allotted time period (often 6 months) and you and the company part ways, recruiting firm has to cough back up their cut in the form of a refund.

So, you’re a “customer” of recruiters the same way that you’re a “customer” of Facebook or Google — you aren’t. You get a benefit for free by allowing something of yours to be sold to a bidder (your labor, in the case of recruiters, your ice bucket challenge videos in the case of Facebook, and everything short of your soul in the case of Google). Understanding this is the key to understanding recruiter behavior.


So Hot and then So Cold

This leads to sort of a weird arrangement. Typically, when you hear from a recruiter, you’re more than likely to ignore them or politely decline their invitations. But, if you don’t — if you show some interest — suddenly they’ll start blowing up your phone with interviews on which they want to send you. “Let’s pencil you in tomorrow morning for a phone call with Intertrode and how does your Thursday look for an in-person with Initech, and also my boss, the senior recruiter, would like to get on a call with you, and…” Wow. But then you say no thanks on Initech and Intertrode says no thanks on you, and suddenly you never hear from the recruiter again. Curious, you call and leave a message, and nothing. Maybe they get back to you halfheartedly.

Here’s the reason that this is happening. When you decide to stop ignoring the recruiters of the world, you suddenly become “fair game.” What the recruiter then does is evaluate every one of its clients that are seeking candidates and send you on a bunch of speed dates, trying to be the one to place you before anyone else snatches you up. But if none of those things works out, you’re yesterday’s news and not really worth revisiting until later when they’ve filled enough positions and taken on enough new openings that they can cross reference you against a bunch of new things.

Of course, not all recruiting firms are identical in their approach, but this is extremely common. I can’t tell you how many times I’ve heard from a recruiter that was extremely excited about a few gigs or even a single gig, and then radio silence for 3 or 6 months, only to have this repeated again and again. Recruiters’ clients are the companies, so they systematically go looking for people that would match that particular vacancy. Once they find you to match that one, they’ll economize by considering you for any others as well, but after that initial wave, it’s on to the next set of people.

If you can find a recruiter or a recruiting firm that is developer-focused — that is, one that gets your resume and talks to you, and then regularly checks in with you about potential positions — hang onto this one and partner with them on a long timeline. This is not common and it’s a nice resource for you.

They Say the Damndest Things

When you’re actively engaged in the interview process courtesy of a recruiter, the recruiter wants everything to go well. They want you to show up on time for the interview and make a good impression. They want the interview to go well and both sides to be impressed. They want things to sail along, resulting in offer, acceptance, and employment for at least six months. Cynically, that’s it, anyway. In reality, they probably want both sides pleased over the semi-long term so that companies keep giving them business (though they also depend on market fluidity, so they probably don’t want anyone sticking anywhere for too long). They want to pluck you from companies and put you in a new job as quickly as possible because higher churn rate means more money. Toward that end, they’ll say a lot of things, some of which are solid advice (such as their position on counter offers, described here), and some of which are nonsense.

Bear in mind their goal and the fact that they don’t mind a bit of reality distortion to achieve that goal, and it’ll be easier to understand why they say what they do and whether you should believe it. Here are some things that I’ve heard multiple times from different sources that you shouldn’t let fool you:

  • “Why don’t you come in for an in person interview with us?”  Nah, don’t do that.  It’s not a good use of your time.  They basically want to make sure that you’re not going to embarrass them and cause them to look silly to their clients, so they’d prefer to make sure you can dress and act like a human.  You can offer to do a chat over Skype, and they’ll usually be fine with that.  I personally just decline outright with no offer of anything because there are plenty of fish in the sea.  Almost invariable they say, “oh, yeah, that’s okay.”  If you’re employed, you don’t get that many absence excuses — don’t waste the ones you have going to meet with recruiters.  A lot of the savvier recruiters will often ask to meet you 20 minutes before your interview, so you could even suggest something like that.
  • “It’s okay for you to call in sick again, people do it all the time.”  No, that’s not true.  People don’t call in sick on a Monday morning and then again on a Wednesday afternoon “all the time.”  To be clear, the recruiter doesn’t care a lick if you get in trouble or jeopardize your current role — in fact, they’d probably prefer it because it would make you more likely to accept an offer, should one be made.  Do not ever listen to recruiter ‘advice’ about how to handle your job search when it comes to your current employer.
  • “We really need to get you over there today or tomorrow because they’re probably going to fill this role soon.”  Don’t rearrange your schedule as part of a pressure sale.  One of two things is happening here.  The first is that the recruiter is trying to light a fire under you to move quickly, in which case, who cares.  Schedule things when they make sense for you, not to let the recruiter squeeze in a commission before month’s end.  The other case is that the company is really scrambling to fill a role, and if that’s the case, you’re probably better off moving on anyway.  I mean, can you picture a company like Amazon, Facebook or Google saying “we really need a warm body in here in the next few days, so even though your resume is impressive, if you’re not here by Wednesday we can’t use you?”  That sort of reeks of desperation and I would consider it a red flag.
  • “Yeah, it’s not technically a senior title, if that’s the kind of thing that matters to you, but this is a great opportunity that you should take.”  Senior title.  Certain pay grade.  Certain benefits/perks, whatever.  If you have requirements you’ve made clear up front, don’t let them wheedle/coax/beg/manipulate/browbeat/guilt you into thinking that you’re being silly or overly picky.  Your requirements are requirements for a reason, but the recruiters don’t care at all about that reason or your ambitions.  If you want to leave your current role to become a “Senior Software Engineer” somewhere, don’t let them cause you to doubt your goals.  They want their placement fee, no matter what your title/pay/benefits/etc.
  • “Look, I make more money if you make more money, so I want to get you as high a salary as possible, but you really should take this offer as-is.”  Yeah, well, let’s talk expected value.  If there’s a 100% chance of offer acceptance of a 100K offer, there’s a 100% chance of the recruiter getting 20K for an expected value of 20K.  If there’s a 50/50 chance of an offer acceptance at 110K, the negotiated wage, the recruiter has an expected value of only 11K (50% chance of 22K and 50% chance of zero-Ks).  And they know it.  Like real estate agents, they don’t want you to have the highest wage — they want you to sign the offer.
  • “This is really a great opportunity and you should take it.  I’ve helped place billions of developers just like you and I know a little something about this industry.  Think of how much it will benefit your career and your personal life and everything else to blah, blah, blah….”   You don’t need life coaching from a recruiter.  This ‘advice’ when there’s an offer in hand is something you should utterly and completely ignore.  Think of the conflict of interest.  It’s like a car salesman telling you how important car ownership is when you’re contemplating a purchase.  Of course they’re going to say it, whether or not it’s true.  So it’s literally just noise.  Tune out the recruiter and make your decision.

You may hear these exact things, variants thereof, or even arguments I haven’t encountered, but the important thing is always to keep in mind how they make their money and what their motivations are.  Their goals are mostly aligned with yours — you both want you to be placed in a new role that makes you happy.  But to you “makes you happy” is most important and to them “placed in a new role” is most important.

Working Effectively with Recruiters

With your goal and their goal being pretty similar, it’s not terribly hard for your relationship with them to be a beneficial one.  Here are some tips that I’ll offer for getting the most out of working with recruiter:

  • Decide your requirements for changing jobs ahead of time and be crystal clear about them when talking to any recruiter.  In fact, state up front that you’ll immediately shut down the interview process if at any point you discover one of them won’t be met.  If they believe you on this count, they’ll have no incentive to try to shoe-horn you into something with the hopes that they’ll figure out how to persuade you to take it.
  • Be firm about things, but be polite.  Sales pitches of any sort can be annoying, but keep your cool.  Stick to your guns, make your position clear, but resist the temptation to get worked up in any way.  They are, after all, trying to help you in general.
  • Screen your phone calls.  If you’re actively engaged with a number of recruiters in a job search, you’ll probably get a lot of calls that might be awkward to take during the day.  They might also be pinging you with needless status updates or check-ins.  Your mileage may vary, but I’ve generally found it helpful to let them leave messages and call them back later.
  • In advance of dealing with recruiters, decide on your preferred times of day/week for phone interviews and recruiter calls and also decide on your preferred medium of communication, such as email, text, phone call, whatever.  Make this clear to the recruiter up front.
  • Let them address and cover your mistakes.  Just like they’re trying to sell you on the company, they’re trying to sell the company on you.  If you had a brain fart and thought your phone interview was tomorrow morning instead of this morning, call the recruiter and ask what to do.  Most likely, they’ll apologize to the company and say it was their miscommunication.  Smoothing over logistical snafus is something they’re good at and usually willing to do.
  • Let them help you negotiate and do things like thank you notes.  I know I said that they’ll want you to accept offers as is, but once it’s clear that you won’t be deterred from negotiating, they’ll turn right around and apply the same shtick to the company about you.  Having this intermediary is nice because it defrays conflict between you and someone who is about to be your employer.  In general, the recruiting firm is good at maintaining the best face of both you and the company to the other party.
  • Avoid giving recruiters specifics of leads/offers you’ve obtained through other recruiters.  They’re clearly just going to try to talk you out of whatever it is, so there’s really no need to have the conversation.
  • Whatever happens, don’t take it personally.  Ideally, you land a job, and the company, recruiter and you are all happy.  But maybe you get two offers and then decide to take the other one.  Maybe you even accept an offer and then quickly switch to taking a better one (or decide to stay put).  Maybe you pass on an offer.  There are a lot of end-games where recruiters might resort to more desperate techniques: lecturing you, affecting anger, sadness or disappointment, telling you that you’ll never get a better offer, even vaguely threatening you.  It’s all part of the game.  I promise you that no matter what they might say to you and how you might react, they’ll call you in three months about a new full stack senior role as if nothing ever happened.  It might be offensive to you, but it’s just part of the game.

Recruiters provide a service that matters to our industry where job hopping is common and demand is through the roof.  They grease the skids for us to be able to move fluidly between gigs.  The paradigm isn’t ideal, but it’s the best we have for now, so you might as well get used to the idea that you’re going to be playing this game and then, and enlist their help to play it well.

Recruiters are really just sales people, and the relationship between developers and sales people is generally a somewhat reluctant ones.  We’re makers that want to build things so well crafted that adoption is a no-brainer and requires no selling.  Sales people are relationship-oriented and deal mainly in people.  Within organizations, these groups often have natural friction, so the friction only increases when the software people are the product being sold.  But if you can get past the intense weirdness of this arrangement and work effectively with recruiters, it will only benefit your career.  Work with a lot, find firms that you like and work well with, and remember them for next time you’re on the market.  You won’t regret it.


How To Quit Your Job

Before you get any ideas, this isn’t about Amway; I’m not going to follow “how to quit your job” with an ellipsis and then a bunch of promises about how you can make a 7 figure income emailing pictures of cats to people. In fact, this post has nothing whatsoever to do with whether or not you depend on having a job. I’m not offering advice on how not to need a job or how to “quit the game” or anything like that. I’m speaking quite literally about how to resign from your job when the time comes (usually when you’ve accepted an offer from another organization) and all of the considerations around that. I’ve received a surprising (to me anyway) number of requests for advice on this topic, so I thought I’d share my thoughts. As someone who has managed people and who has moved around some, I certainly have perspective on the matter that, perhaps, you will find worthwhile.


Before I get right down to it, I’d like to make a quick note about “rage-quitting.” Don’t rage quit; be a grownup. Okay, moving on.

Prelude to Quitting

Before you decide to quit a job (consciously, anyway) you generally dip your toe into the job market, sending off some resumes, doing some phone interviews, etc. This is the phase in which it feels like you’re doing something kind of wrong but exhilarating — cheating on your current employer (or at least flirting). You’ve grown tired of your situation and you’re starting to daydream about a new one where they don’t follow such a stupid development methodology, you won’t have to deal with Steve from two rows over anymore, and they even have ping pong tables. Ping pong — do you hear me?! So why does this make you feel a little guilty? Well, it should — the game is setup this way. You have to sneak around, claiming to be sick when you’re not and doing other quasi-unscrupulous things. It’s a bummer, but it’s the way the game is played, unfortunately. Perhaps a better system will come along and obviate this practice.

Until that happens, however, you have to make do. It might be tempting to tell your employer what you’re doing either for the sake of honesty or to make them sweat, but resist this impulse. You don’t want to tip your hand at all because it’s option-limiting for you. If you throw in their face that you’re out job-hunting, they may scramble to please/keep you in the short term, but they’ll certainly start forming contingency plans in the long term. And, it also makes you sound like a prima donna.

If you think that your employer can correct whatever is causing you to want to look elsewhere, state your case without threats. If you’re paid below market value, come in with data from salary.com, your last few performance reviews, and a level-headed pitch for more money. Same general idea if you think you should have more responsibility or a better title. Don’t bring threats into it — and make no mistake, that’s what telling them you’re going to look for other jobs is — instead, sell yourself. If it doesn’t work, thank them for their consideration, tell them they’ve actually convinced you that they have the right of it, and start lining up interviews. Hey, you gave them a chance.

When you’re lining up interviews, space them out and separate the wheat from the chaff. (This is mainly applicable to programmers, who will be inundated with interview requests in today’s economy.) It can be tempting, especially if you’re disgruntled, to book 12 interviews over a Monday-through-Friday span, but what plausible, non-suspicious reason do you have for a run of absence like that? Your supply of mornings to come in late, afternoons to sneak out early, and random “sick” days is going to be quite limited, particularly if you’ve just made a pitch for a better title and been refused. Use these wisely. Filter out all but the best opportunities. Don’t take ‘interviews’ with recruiters (they’ll cave — just tell ‘em you’ll call a different recruiter). Feel free to push back on things and let them go for a week or two. It’ll be okay.

A bird in the hand is worth two in the bush, and your current job is in hand, earning you money. Until you have an offer, it’s clearly your best prospect.

Dotting I’s and Crossing T’s

After a bit of sneaking around, your activities paid off. You managed to snag a good offer and you’re ready to march in and let everyone know that you’re moving on to bigger and better things. Settle down, because you have work to do first. First of all, you need to sign the offer and have it returned to you, counter-signed, before you have anything of substance (and theoretically, an employer can even go back on a signed offer letter — it’s not a contract, per se — even though it would be bad faith). Next, you need to see what the offer is contingent upon.

Are they going to call your references? Do a background check? Credit check? Drug test? Something you’ve never heard of before like an obstacle course or feats of strength? These things aren’t mere formalities — they’re grounds for rescinding the offer. Do not give notice at your current job until all of these things are taken care of. Never done any drugs in your life and nothing in your background to hide, you say? Great, but that doesn’t mean a false positive is impossible. It’d certainly be a bummer if your offer got yanked because some other Joe Smith made the local police blotter for stealing a car. It’s a situation that could likely be straightened out, but you’re in no-man’s-land until it is.

Make sure there are no possible obstacles before you take an irrevocable step with your current employer who is, still, even with contingent offer in hand, your best prospect.

Actual Resignation

Alright, so no one dropped a bunch of poppy seeds into your urine and no one sharing your name stole any cars recently, so everything went smoothly with the offer and contingencies. Now, you’re ready to make it official. But, what to do? Tell your manager in passing? A phone call? An email, since that’ll be an awkward conversation? How do you drop this bombshell? None of the above. You’re going to type up a letter of resignation, sign it, and bring it along with you to a one on one meeting that you’ll request with your direct supervisor (perhaps someone above that person in the chain in an odd situation such as your boss being on vacation for a week or something).

Yikes, so what to type in the letter? Not much. Make it very short, polite and unremarkable. Here’s more or less what I use:

Dear {Boss}:

Please accept this as my formal resignation from the position of {your official title} at {official company name}, with my last day being {date of last day}. I very much appreciate you giving me the opportunity to work for {informal/abbreviated company name}.

This decision was made very difficult by the fact that I have thoroughly enjoyed my time and experience here. Please let me know how I can be of assistance with any knowledge transfer or final work over the next {duration of notice period}.

Again, thank you very much for the opportunity to work for you.


{your first and last name}

Put a header with your address on top of it on the right and the company’s address, C/O your boss on the left below it, leave 5 lines between Sincerely and your name, and sign it once you print it. This is not the venue for a soliloquy on how you’ve grown with the company, and it’s not the place to skewer people you hate. This is basically just going to go in a folder somewhere as proof for HR that you left voluntarily rather than them firing you. It’s not likely anyone will even read it.

With that in hand, schedule some time with your boss to talk and, when in there, get to the point. Say something like, “I just want to let you know that I’m going to be resigning, effective X date, and I’m happy to help with any knowledge transfer or whatever you need, and here’s a letter to that effect.” Don’t send an email or make a phone call or leave a note or something. Grab a few minutes of the manager’s time, look him or her in the eye, and offer your resignation.

Also, offer two to three weeks of notice. Two weeks is pretty standard, and most prospective new employers will understand up to three weeks of notice before you start (a little extra notice and maybe a long weekend for you to decompress or something). Giving less than two weeks is poor form (and no new boss should expect this of you). Giving more than three weeks seems like it’d be a really courteous thing to do, but in reality, it’s just kind of awkward. You take on a dead man/woman walking status once people know that you’re leaving and things get kind of weird. You really don’t want to drag this out for too long.

Keep it Classy

Once you’ve handed in your resignation, the reaction you face is likely to vary. If you’re close with your manager and have a good working relationship, they probably expect it. If not, you’re going to be catching the person off guard, so expect reactions that range from disappointment to dismay to anger to sadness. On occasion, you might even get happiness, if they don’t like you (or if they really like you and don’t like the company very much). Having been on the manager’s end of the table, I can tell you that you’re almost never expecting someone dropping by your office to say, “hey, I quit,” so expect a bit of unguarded emotion from the manager before they get their bearings.

All that said, it’s fairly unusual for a manager to have a real outburst of any kind. The most common reaction will be to ask you why you’re quitting (even if they already know), and at this point, it’s vital to stay classy. There’s nothing for you to gain by launching a volley of negativity at them — just say that you have an opportunity that you think is a better fit or a chance to advance your career or whatever. Be positive about your new gig — not negative about the current one.

On the rare occasion that you are subject to a hissy fit, take the high road. Deep breaths, calming thoughts, and level-headed coolness are your allies. If it gets too heated, you can always leave the room (I mean, what are they going to do to you?). Go in knowing that yours is a position of strength and don’t worry about things like, “what if they fire me on the spot?” Not to say that it would never happen, but a manager or higher-up berating or even firing a quitting employee is spectacularly stupid. If they’re doing that they might as well hang a sign in the building that says, “if you’re going to quit, you’re better off doing it without notice!” Managers and leaders need notice to arrange a replacement, line up knowledge transfer, craft a message about the departure, etc. Knowing all of that should help you stay calm in the face of whatever happens. But, nothing much will probably happen beyond the obligatory, “sure hate to see ya go, but good luck!”


The Counter-Offer

Assuming that your boss or someone higher in the food chain hasn’t acted like an idiot in reaction to your quitting, a common thing to which you’ll be exposed is the counter-offer. Michael Lopp calls this an attempt at a “diving save.” On Monday, you tell your boss that you quit, and later that afternoon or evening, boss has a meeting with the CTO, some other managers, and maybe even the CEO in which they discuss your offer of notice. Since programmers are so hard to hire and keep these days, it’s decided that they have to try to keep you. So, Tuesday morning when you come in, you have a meeting invite asking you to come to that conference room way across the building with the leather chairs and the little fridge with sodas in it, and there on the meeting roster are a bunch of people that have always been too important to be in meetings with the likes of you. Until today, that is.

In this room, they smile and offer you a soda, and they tell you how important you are to the company. They tell you that they have your best interests at heart, and they warn you that a lot of people who leave wind up being unhappy elsewhere. Then, they lay the good stuff on you. They’ll bump you from Software Engineer III to Software Engineer IV and bump your pay by 9, count-em 9 thousand dollars per year. You lick your lips and do a little quick math, realizing that’s $750 extra dollars per month and, even after tax, a pretty nice car payment for the new car you’ve been needing. Heck, it’s even more of a bump than the offer you got from the new company. Should you take it?

If you want to hear arguments as to why counter-offers are a bad idea, just ask any recruiter to whom you talk. Recruiters work by taking a percentage of your first year’s salary from the company that hires you, and they lose that cut if you sign and then decide to stay. Counter-offers are recruiters’ mortal enemy, so if you ask them about whether you should accept a counter offer, you will be treated to a polished, well-rehearsed, convincing argument that counter-offers are such a terrible idea that it’s not unheard of for them to lead to cancer. They’ll tell you about how the company is in a bind but once you agree they’ll start trying to replace you. They’ll tell you that bosses don’t like to have a gun placed to their head and will resent you. They’ll tell you about the dreaded HR matrix and how if you accept a counter offer you won’t get a promotion for 8 years.

But here’s something I’ve never heard them say, and the reason I tend to think that accepting counter offers is a bad idea. Returning to the relationship metaphor from earlier when I mentioned the idea of “sneaking around” on your employer, consider what a resignation is. You’ve had kind of a vacant stare for a while and a feeling that something just isn’t working. You go out, flirt a little with other companies and then decide, “you know what — it’s over — time for a change!” You muster up the courage to take that plunge and have that difficult conversation, and your partner is then hurt and perhaps a bit in denial. After sleeping on it, though, bargaining starts the next day. “Alright, I know you said that you aren’t happy, so here’s what I’m going to do: you get to pick the pizza topping every Saturday instead of us alternating, you never have to come to my parents’ house except on Christmas, and I’ll take over the dishes and the vacuuming.” You’ve initiated a breakup due to existential unhappiness and the other party responds with an appealing set of superficial improvements. So do you then say, “Gosh, I was pretty unhappy, but really, every Saturday night we can have mushrooms and pepperoni? Hello, relationship bliss!” If so, how long before the blank stare comes back?

In the article I linked, Lopp says the following of the diving save:

Diving Saves are usually a sign of poor leadership. People rarely just up and leave. There are a slew of obvious warning signs I’ve documented elsewhere, but the real first question you have to ask yourself once you get over the shock of an unexpected resignation is: “Did you really not see it coming? Really?”

The question then becomes whether you really want to work at a place that only addresses your discontentment at the absolute last conceivable moment. Do you want to work at a place that’s only interested in your happiness when faced with your eminent departure? There’s probably a reason that you want to go, and that reason is probably tied heavily into a corporate culture where you’ve felt that no one who mattered was interested in championing your cause. You’re going to get that $750 and buy a car, and then it won’t be an awesome sum of money but rather ho-hum, just what you make. Your life will be basically the same as it was before they shoveled that money your way in a desperate attempt to keep you. They’re not going to consider you almost leaving a wake-up call to stop taking you for granted; they’re going to consider you a problem solved via bribe.

The Awkward Two Weeks And Exit Interview

Let’s assume you’ve politely declined any counter-offers that are made and you’re just riding out your last two weeks. First of all, continue staying classy and maintain a positive attitude. This is not the time to tell off people that you don’t like or make a lot of snarky comments. Be polite and helpful with knowledge transfer activities and finishing up any last work. If you disagree with who is going to be replacing you on things, keep that to yourself. These shouldn’t be hard things to do and it shouldn’t be hard to stay optimistic — you’re going to be free soon and there’s a light shining very clearly at the end of the tunnel.

At some point, HR will want to bring you in for an exit interview in which they ask all sorts of candid questions about your time with the company. Let me be clear about this — there is zero upside for you when it comes to being honest about criticism of the company. The smartest course of action is for you to walk in there, smile, and tell them how wonderful the company is and that you really hate to leave but it’s just too good an opportunity to pass up. Why? Well, what’s going to happen is that your responses are going to be reviewed by various manager and VP types as matters of feedback for improving the company. So the very people that might later offer you references or even hire you back later (stranger things do happen) are going to be seeing your feedback. And, those people are humans who probably won’t enjoy reading about how they’re “completely clueless” or “incompetent” or whatever you might feel like saying.

I’m not telling you not to be honest. I’m just telling you that there’s no benefit to you in being honest beyond how momentarily cathartic it might be to tell someone what you’ve really thought this whole time. It might be that you have friends working there and someone giving feedback about how everyone hates some activity or has real problems with some person might help your friends that will continue to work there. Fine, great, go for it if you want. Just understand that there’s no upside for you and there’s definite potential for downside.

Last Day and Beyond

Your last day will probably be the weirdest. You should spend some time making the rounds, saying your goodbyes, exchanging contact info, and wishing people well. I would also recommend an offer, if appropriate and within the bounds of your new employment agreement, to consult here and there if your former group/boss needs it. Typically this sort of consultation is easy, extra money for you and ensures a good professional relationship on an ongoing basis. Even just the offer will probably be well received, even if politely declined.

Once you’ve left, keep contact with your friends if so desired, and perhaps go for a drink or meal now and then. But on top of that, I’d keep in touch with former managers or people in authority positions as well. At minimum, if they like you, they can be excellent references. But on top of that, they may leave and go elsewhere and want to hire people. Or the landscape may change at your former employer and it might be worth considering again for you. Or maybe none of that is the case, but hey, what does it cost you to be friendly and exchange an email with someone every now and then? I’ve been around for a while in this industry and in a variety of roles and I never once have found myself thinking, “ugh, I wish I hadn’t stayed in touch with that guy!”

Throughout the whole bizarre and awkward process of leaving a job, the main thing to remember is to be classy and professional and always to take the high road. It can be tempting to do otherwise and leave in a blaze of sour grapes, telling people what you really think. But your career is really a fancy wrapper around the concept of your own earning power, and your earning power is your ticket to comfort and security throughout your life. It’s not worth jeopardizing for a youtube-able moment that might go mildly viral for a few days or something. Take the long view and do your best to leave organizations with an even more positive view of you than they had when they made you the initial offer.

Acknowledgements | Contact | About | Social Media