A brief update on why I’m not in Canada
It’s been a while since I did general life updates. For anyone with me long enough to have read my plans circa ~2023, you may have gathered that I did not, in fact, move to Canada!
Throughout 2023 I worked somewhat diligently on getting my house ready, talking with a lawyer, and coordinating with my work about the move. My work had agreed to assist me in getting a work permit, facilitating the entire move. But midway through 2023 and with these plans developing, things got weird.
For starters, the tech labor market veered into chaos, with companies laying off workers and calling for a return to office despite healthy profits. It did not escape me that I would be in a scary position if something happened to my startup while I was in Canada on a very specific work permit and had to find some other role.
More specific to my situation, my work fired my manager and the incoming one immediately seemed to be gunning for me. I still don’t really understand this, as we hadn’t interacted in the two years I’d been at the company. He came in and immediately told me that reading past feedback from my bosses he wanted improvement in areas a, b, and c.
I was surprised since my past managers had given me proactive raises, elected me to lead teams, and agreed to send me to Canada. I assumed I had misunderstood their feedback or missed the criticism and really took it to heart. Eventually, I set up time to meet with my old managers and ask them about it since I had apparently missed their critical feedback. Both were stunned. They said they had said nothing about me needing improvement in <a, b, or c> and that new manager had clearly misunderstood. They reiterated my ‘growth’ areas were related to my goal of moving from Senior to Staff. I was able to pull up my annual review after that, and see that it was as I remembered.
Would it surprise you to learn that the tenor of my relationship with <New Manager> did not change after I politely refuted their statements and tried to figure out where this all came from?
I won’t bore you with the rest of it. I think at some time or another, EVERYONE has a teacher or coach or boss who seems to hate your guts for no apparent reason. I was grateful that I had eight years of work experience where I have been well reviewed, promoted early and off cycle, and asked to lead teams telling me I was not the issue here. It became clear that it was too risky to move to Canada with the fraught dynamics at my work, so I backed off the idea. End of that.
A series of unfortunate events
Layoffs and turmoil
It seems inappropriate, but when my layoff occurred in December 2023 I felt sincere relief. I had spent the whole late summer and fall working weekends to try to appease my boss who it was clear had some ax to grind with me. I had just finished pulling overtime for Black Friday Cyber Monday toting my laptop around to Thanksgiving, and was completely depleted.
I can’t talk too specifically about any hypothetical agreement I may have reached related to the severance, but I’ll leave this general comment: negotiate your severance. I’ll also repeat some advice I heard somewhere but don’t remember the origin of: If you ever feel you are being singled out at work, in a good way or bad way, sit up and take notice. I had receipts. I had leverage. I noticed being singled out immediately in a very bizarre way, before this boss and I had even worked together for a week. I took notes.
I left the entire experience feeling actually empowered. I was in a position where I wouldn’t have to worry about my finances for a hot minute. It should have been a gutting experience, but it wasn’t. My track record before this job, and even with 3 prior managers at the same company, told me that this was not a ‘me’ thing.
The only real dark spot on my horizon was the tech hiring climate. From my own time recruiting I knew things likely wouldn’t pick up fully again until a couple weeks into January. I felt like spamming out applications would just get me sent to the bottom of a pile to not be revisited until the new year, so I decided instead to focus on self-study and plan and plot and scheme about my next moves.
I enrolled in the algorithm study program Formation and decided to take this bad situation and make it work for me, finally take dedicated time to learn all the algorithms I felt like I never got a handle on as someone from a nontraditional background.
The best of times, the worst of times
More than once I’ve had people tell me they find me “intimidating” or “impressive” when they hear my background. From my perspective, it is hard to believe anyone would feel that way, given that I’m just a former recruiter and ‘ugly duckling of software engineering’ and sometimes feel that my career has just been a string of endless embarrassments and imposter syndrome panic attacks.
At my first job, I was such an uneducated street rat that they had to specially reissue my job description to even hire me since I had no higher education. Can’t count the number of times someone asked me if I was an NC state grad and I awkwardly mumbled some half-truth about school back in Maryland. (Finally finished my unimpressive sw eng degree from a no-name school in 2022 with a soundly mediocre 3.74 GPA).
Galaxies and supernovas of embarrassment and inadequacy dogged my entire tech career. I’ll never forget the time I assumed Vuex was the VueJS equivalent of JSX and rambled about it incoherently to someone who knew a lot about Vue, or the time I didn’t know what Conway’s game of life was and a colleague guffawed “Did you even TAKE computer science!?” Until very recently, the extent of my experience with ‘traditional algos’ was failing to implement quicksort so spectacularly in an interview that I became slap-happy and just started babbling. I couldn’t have told you about different sorts, or trees, and had an ongoing years-long mental block about reversing linked lists.
For that reason, it was legitimately shocking to me to like Formation so much. I tested out of several sections of content almost immediately. The program was split into a mix of self study, tests, group sessions, and 1:1 peer sessions. I was stunned to often be the best one in my sessions. I was good at trees. I was good at depth first search. I was good at backtracking.
For things I remained bad at (Hanoi towers, reversing linked lists) I simply created brute force workarounds. Like remembering NECN, CNEP, PEC, CEN for linked list reversal, or ‘SAD, print, ADS’ for Towers of Hanoi.
I used deranged mnemonic devices related to Beyonce or alliteration to remember the difference between sorting algorithms. When it came time to do the ‘career prep’ sections of the program like mock interviews or practicing the STARR technique, the instructors told me I was one of the best they’d seen. Guess being a former dumb recruiter sometimes still pays off after all, as much as tech people may hate them.
Rough out there
You would not have known there was all this progress happening from the outcomes of my interviews. Maybe due to the layoff and the real need for a job for once, I found myself in the ironic position of being as good at algorithms as I’d ever been but freezing worse than ever in interviews. It seemed entirely random if I would choke or not, it could happen on problems I’d done numerous times and knew perfectly. I embarrassed myself numerous times to the extent I wanted to dissapear not only out of the interview, but the planet.
Instead of Formation desensitizing me to interview type material, it almost seemed like the reverse happened for a minute: like bad interviews gave me the yips, and I started freaking out and going blank on any Formation assignment with a timed component. Normal sessions, I’d still be best in the class but I began failing Formation benchmark assessments over and over if there was any element of the exercise being timed.
Worse than that, my opportunities to even GET to fail a code test were incredibly limited. I’ve been in tech since 2016 and haven’t had such trouble with a job hunt since I had ~1 year experience and no degree. Here I am with almost a decade of experience AND the degree, and the vast majority of my applications weren’t even getting me to a recruiter screen. I would assume this was me, other than:
My resume was largely the same as my last job hunt, except now I also had the degree and even more experience, as well as some new experience with in-demand stuff like AWS
Formation had also reviewed my resume and workshopped it with me
Over and over, I would apply to jobs where I fully met the eligibility criteria and get blanket rejected. The lack of traction is maybe what made me so jumpy and prone to freezing in the code challenges. Despite all my progress with algorithms, the job hunt felt extremely hopeless.
The upswing
The burnout and emotional upheaval of the last job left me diligent although unexcited about the prospect of a new job. I was in hustle mode, I needed one, I studied all day and applied prolifically - but wasn’t really excited about the idea of joining a new team, any new team: with one exception. NVIDIA. (I have had NVIDIA-mania for basically my entire job hunt, it is the ONE place that could get me excited about a new role, and I’m still sort of in shock that’s where I’m landing).
The chip and AI giant had acquired a startup I worked for in 2018 and I’d wryly laughed about them all being millionaires by now due to the stock prices. I’d even applied for NVIDIA on a lark at one point, they were hiring someone to maintain a greenfield project I’d built back in 2018 that they’ve continued using, largely unchanged. Despite my putting in the cover letter that I built the product, I was autorejected immediately (to my amusement).
I do have some advice coming out of this whole thing, and two pieces of it would definitely be:
build your network before you need it
this is the time to call in those favors
I had gotten by in the golden era of software engineering jobs without ever really having to call in personal connections or ask for referrals. I’ve been a diligent cheerleader, giving people referrals, making introductions, mentoring, and signal boosting all these years but I’ve never really asked anyone to do the same for me. Unbelievably, I’ve had the luck I have with mostly cold-applying. Seeing the bleak reaction to my applications though, I realized if there was a time to work personal connections, this was it.
I was honestly touched that anyone that knew me back in 2018 when I was a little baby programmer even WANTED to refer me - the person who did actually refer me to NVIDIA was the same one who had to hear me babble on about Vuex thinking it was similar to JSX as a baby dev :woman-facepalming: Apparently the referral was enough to break through the big company hiring apparatus, and I began interviewing dually for two different roles at NVIDIA.
Shroedingers candidacy
Being a big company, there were a lot of fits and starts to the whole process. My first interview was like a dream - I felt like I hit every mark (almost). My interviewer asked me to review some Python code, make style and functional suggestions, and predict what the outcome would be if different parts of it ran. Another section of it had something like a linked list or graph class to implement basic methods on and I got to show off some of my new Formation skills, for once not freezing at all. Although I thought I did near-perfect, I didn’t hear the outcome of that one for…several weeks.
A recurring theme through the whole process was that I was too terrified and wanted it too much to follow up or ask for status updates. I felt like, “if I don’t know its dead, it’s not dead”. It became a running joke that it was Shroëdingers candidacy.
My second interview I felt went poorly. My interviewer was a non-Python guy and wrote some slightly unusual Python code I had to sift through, and we seemed to not communicate fluidly - he’d bring up points I made earlier like he hadn’t heard them a couple times, I also forgot something embarrassingly simple about RegEx. We never hit a good rhythm and I felt awkward and unimpressive about my performance, pretty sure I flunked.
Again, I didn’t follow up. Several more weeks passed. Not rejected yet not rejected yet not rejected yet was my mantra. Meanwhile, I had f#$%-all else going on with my interviewing, crickets in response to my applications. I was being legitimately stupid and putting my eggs in one basket, but some tiny voice in my head kept saying “it’s mine” about NVIDIA. I was, as the kids say, delulu.
Sheer force of will made me feel like I could stubbornly think into existance some happy outcome where I went to the current tech darling and also got to work with my old startup friends again. It felt preordained, like fate, even though I don’t believe in any of that. Going to such a cool company also felt like a massively satisfying middle finger towards the old company after they’d caused me so much misery.
All the sudden the snails pace activity turned into a maelstrom: I heard back to back that I’d passed the first two rounds of interviews for Job A (including the one I did badly on) and the preliminary interview for Job B. My referrer told me no one they had previously referred had passed any interviews, so clearly I was doing something right as unglamorous as my performance felt sometimes.
Suddenly it felt like everything was happening way too fast, and I was scheduled to have 9 interviews for the two different roles across a two day period. Time sped up and deep dread crawled into my bones.
The interview process
People have asked me about the interview process. I think I signed an NDA so I can’t talk about it too specifically, but will comment in broad strokes. I am proud to have gotten through it after hearing from my friend that none of his other referrals got anywhere.
Here’s what I’ll say about interviews there: like any big company, it varies a lot from team to team. I have heard some teams do very traditional Leetcode-style questions. I only got one of those and it was at most medium difficulty. Primarily I got more practical questions like debugging and code review, as well as some technical behavioral questions and two system design exercises. I’m competent at system design in broad strokes but I hadn’t gotten to that section of Formation content, so I certainly am not able to give a FAANG level performance. If they were looking for someone super flashy and polished I would have failed.
I obsessively texted out tedious status updates to various people forced to listen to my NVIDIA-mania the entire day.
When it ended, I felt - actually good though. The team had a focus on internal tooling for tech people, which is my FAVORITE FAVORITE thing to build, I love technical stakeholders. The team also had a security focus, and I’ve worked in that area before and my degree also wound up being Software Engineer & Security. While I don’t have any hacker-level chops I find it a bonus to get to work in that space, its an interesting area. I ended the day feeling hopeful.
Life is never that simple, so of course unlike past job hunts this good-juju-feeling did not translate to a speedy phone call telling me I got the job. I was plunged back into a swamp of anxiety algae to languish and rot for several days before I’d hear an update. I just mumbled to myself about shroëdingers candidacy some more and tried not to think too hard about it.
Then FINALLY. FINALLY. I got the call. The recruiter said she heard the day of my interviews but couldn’t tell me until it was approved, so that feeling I was feeling of clicking with all my future teammates was not one-sided. It sounds like there was a quick consensus which makes me so happy.
After getting the offer, one of the career coaches at Formation told me that for his money, he’d rather go to NVIDIA than FAANG, and also that he’d heard their interviews were very hard. That coach said I was the only person he knew to interview there and actually get an offer. I felt the universe side-eyeing me, incredulous over that one.
Her? The ugly duckling of programming? Really?
Really!
Takeaways and advice
The first thing I’d honestly tell anyone job hunting right now is that it is rough out there, and to protect your mental health.
There’s a concept called ‘locus of control’ that I’ve been thinking of a lot related to this. Having an ‘internal’ locus of control means you examine how your actions affect your outcomes, and take ownership of what is happening in your life. An ‘external’ locus of control would be blaming your crummy boss for not advancing, your parents for not sending you to a good school, your rotten luck on not winning the lottery, etc etc. Generally mature, self-actualized adults want to have an internal locus of control. But you know what? Honestly, f@#$ that in this job market. You are just going to feel terrible about yourself for things that are way bigger than you.
I completely own that I was a basket case as a junior dev and had absolutely nothing going for me, but I’m equally willing to own the good and I will say - at this point, I am a picture-perfect candidate. I have about a decade of experience with relevant, in-demand technologies. I have a strong track record of steadily increasing responsibility and being selected to lead teams. I hold a patent for my work, I hold not only a STEM degree but even more specifically a software engineering one. I am a perfect candidate on paper for a ton of things I applied for. It didn’t seem to matter one bit.
A sad specter of things to come
For me, it was a frustrating glimpse into a very possible permanent future state. I know a lot of programmers who even now, are sure AI won’t hurt our field. I have always been pessimistic about this. Seeing the job market, and seeing employers want to pay me less now with 8 years exp than I made in 2019 with 3 years exp was so disheartening. Overnight, I saw senior jobs go from ~200s easily back down to ~125(!!!). It is clear that as soon as they can do away with treating us well or having to hire us at all, they will.
It also left me feeling very hollow about the state of my generation. I feel like I came up hearing so many variations of “well you don’t have a degree, of course you can’t expect to make a good living” or to my peers “well you have a humanities degree, of course you can’t expect to make a good living”. So many of us said, “OK then, I’ll go get one of those STEM degrees”, “Ok then, I’ll go get one of those STEM jobs”. I did it all. I did everything I was “supposed” to do. And it seems depressingly clear that it may all have been for nothing.
As the job hunt got bleaker and bleaker I thought about what I could even do with myself if I was unable to ever get a software engineering job again. At one point I had thought of pursuing technical project management. I have been so single-mindedly focused on becoming the perfect software engineer and pursuing this path that was supposed to represent opportunity and stability, all those other skills have atrophied. Even the hyper-specific degree does me fewer favors. I, again, put ALL my eggs in THIS basket. Seeing such a clear premonition of a future where I wasted all that time, energy, and money was extremely demoralizing.
But for the immediate future, I am at least in OK shape. My best estimate is that I am extremely lucky and if I have even a few years ahead of me before this field is unrecognizable, it will still be a life-changing turn of fortune for me.
Advice
If I had to give advice, in no particular order of importance:
(as I said already) this is the time to use your network, even if you aren’t a networking person or don’t like doing it
My personal view is that I would have been happy to park somewhere safe even at a significant pay cut, the job market was that grim. Data suggested to me that it was very likely I would wind up taking a 30k+ cut from my last role. I would not expect to be able to turn your nose up at opportunities if you get laid off
My own experiences suggest that getting through the hiring apparatus is the biggest fail point, it may be more important than ever to use unconventional means of getting traction like dm-ing people on LinkedIn or asking for introductions
I’m also hearing far more offers getting pulled than in years past, so I’d be careful about your negotiation posture even though that sucks to say
Fairly grim, but that’s all I’ve got. Along with, for my money I’d start planning for a career pivot in five or so years. Once the dust settles for me emotionally, that will definitely be something I’m thinking about. I can’t believe I’d even consider this but I might look at going back to school for something like electrical engineering to set myself up for whatever future comes. I need to do more research about the possible fate of other fields before I’d make a choice like that, but. Yeah.
At the end of the day, I’m also fully willing to admit there is just an element of luck in all this. So hang in there and don’t beat yourself up about it if you’re having a hard time on the job hunt right now.