Job Hunting in 2022
mhlakhani.com
mhlakhani.com
That's all I needed to hear. Back in the day, the college you went to opened (or shut) doors to get interviews. And most people, who did not attend an Ivy League school or similar, rejected the concept as being anti-meritocratic.
However, today, it's the same thing -- just replace college with the company(ies) you list on your resume. A shitty programmer with a bad attitude from Meta, Google, etc. is far more likely to get opportunities than the best programmer in the entire insurance industry, or the person who wrote the greatest dry-cleaner management software. It's quite unfortunate.
I don't believe my post suggested any reasons.
> it guarantees a reliable floor competency
I disagree. FAANG experience only demonstrates that, at one point, somebody believed you could do the job. There are dead-weight employees at FAANGs (and everywhere of course) who don't really have much competency (or perhaps one very specific competency that's only valuable in that specific role at that specific company, and virtually nothing else). There are also people who were once terrific, but have burned out, turned focus towards their family, were amazing at some obsolete tool/language, etc, started (or stopped) using drugs regularly, etc
I do agree that recruiters are not looking for rockstars but just anyone to fill a spot.
If by that you mean "won't be willing to be exploited by working 70hr weeks and weekends" then that's a whole different conversation.
They will tell themselves sweet little lies all day about how their need for external validation and appearance of being busy / important is actually in service of their family.
They lack the ability to reflect, put something more important above them when there is no validation, and won’t take honest ownership either.
Sure, but if they were able to fool everyone enough to remain employed for a while (and didn’t depart on bad terms), then they’re likely to be able to do the same again, which means everyone (who is relevant to the hiring decision) wins.
And in fact I have become very critical about people coming from FAANG when hiring into a smaller company. The problem is that they are often overestimate their abilities, aren't easily able to adjust from a big corp into a more dynamic, fast environment being hands-on and - which is the worst - don't see the problem with themselves but with their employer.
That being said, there are certainly brilliant people at FAANG. But most of those don't apply at smaller companies anyways. Leaving me with candidates that aren't a good fit, despite having a great resumee.
- A recruiter from Google reach out to me about an Engineering Manager position - I’ve never managed anyone in my life.
- A recruiter from Facebook reach out to me about a senior software engineering position even though the last job I had at the time that had an official title of “software engineer” was two years prior and I had no details about what I did and the company I worked for was unknown
- two recruiters reaching out to me from Amazon about “exciting software development opportunities” - while it clearly showed on my LinkedIn profile that I was working at AWS.
- There's a first time for everything, including management
- The facebook thing is a little weird, but if you had some software experience, and two years isn't THAT long ago, it may be worth a try. As much as everyone says you need perfectly crafted resumes, sometimes there's detailed information missing. People know your only human and capable of being a bit vague on a resume, or entertaining opportunities you didn't initially envision.
- As far as I understand, this isn't weird at all. It seems the culture at Amazon is to hop around teams, if desired... I think you only have to put in 18 months to be an "unrestricted free agent". I've been told that a big part of success at amazon is predicting the right time to leave doomed teams.
There has to be a first time managing a team, no? Some people view changing roles from IC to leader as career progression.
Maybe the recruiter saw something positive on your resume and thought: hey, this person might make a great leader and maybe they’d be interested in a next step in their career.
However, judging by your reaction, you probably aren’t / weren’t ready so win/win.
Besides my LinkedIn profile where I was reached out at is purposefully sparse.
Meh. Most of the ex-FAANG people I worked with at non-FAANG places continue to apply super duper mega scale practices to human scale products and completely fail at what matters.
Yes the rich and smart have a head start, they are dealt better “cards” at birth. That’s true for EVERYTHING in life. That has nothing to do with software.
The goal of my reply was to encourage others and make them believe they can do it too. I endured some hardships on my journey (no connections to the tech industry, went to an average state school, etc). Others will be enduring much more, and i acknowledge that.
Perform miracles at BUSINESS and you may not even be recognized for it. You might also not get recognized for doing absolutely nothing.
Offer them a job and find out.
> the required skills there are ‘getting things done in a company the size of Google’
this sounds like a fake excuse to exclude someone who has demonstrated a high degree of ability and skill, but doesn't fit your mental image of what a Google employee should be -- otherwise known as gatekeeping
Doing the same type of work at AWS gets a congratulatory email and is just a drop in the bucket.
I’ve also gone through interview training. We are specifically told not to consider where you got your experience or education from as long as you meet the standards. While they don’t bring me in for coding interviews, I’ve been on interview panels as part of the system design section. I know this to be true.
Otherwise known as “culture fit”?
I say that sarcastically. Anywhere I see “culture interviews”, “our culture”, or “culture fit” I think it’s one of those bull shit jobs type things, and used as a get out clause in the hr tool box.
For the big companies, culture fit often feels a bit cult like. It’s no longer a job to pay the bills even if you enjoy the work, instead you have to believe the company is changing the world, eat, sleep and live the company values etc etc.
I came straight from a 60 person company to AWS. It wasn’t pretty and I was hired for a remote position during Covid
Hard to believe that all of the fancy google tools haven't been replicated in open source yet. Software people love writing tools to make writing software easier - what's up?
Compare that to posting on Stack Overflow and praying for a high quality response.
It really didn’t matter where you work if you could pass the DS&A monkey dance interview, you could get a job at most of the tech companies.
I did a slight pivot to fall into BigTech. So I didn’t have to.
This alone excludes most people from quitting first with nothing lined up.
First, even if this is true, are you seriously arguing that people with relevant work experience from biggest tech companies getting opportunities is anti-meritocratic? (And no one is just handing out jobs, they still have to do well at thr interview)
Besides this even true? I personally know lots of people who in big tech that haven't previously worked at big tech. These companies hire tons of fresh grads out of college too, and not everyone is from ivy leagues, in fact from my experience, most are not.
The Ivy League filter feels and kind of is unfair, but for new grads it's really really difficult to find good signals and big tech gets two or three orders of magnitude more applicants than open positions.
The key takeaways, coming from someone with a similar background:
* Rely heavily on your personal network to both identify worthwhile opportunities and for referrals which, in the Before Times, pretty much guaranteed an interview
* It's worth thinking through what type of job would make you happy _before_ you get an exploding offer
* They had a _full_ pipeline, interviewing every day for three weeks straight. It's a grind, but you definitely get "in the zone". Additionally, setting this goal ensures that you are being properly proactive/aggressive in pursuing opportunities.
* You will probably see a design interview at any FAANG or hot startup. The classic one I've seen like 5 times is "how would you design a social media feed?" I still do not know the "correct" answer to this question.
I don't have hard evidence for this but it seems that the demand is still very strong for experienced engineering managers. I am curious to hear if the author interviewed for SWE positions or engineering manager positions have they have filled both roles in the past.
As a married man nearing his 40s I can't imagine doing this. I need to keep my full time job to support my family, so just quit and focus 100% on prepping is not an option. Assuming a 5 1-hour round interview, I would need to take PTO or somehow juggle my calendar to take interviews. I'm horrified at the thought of taking one week off and doing interviews for 5 days straight. I guess I'll cross that bridge when I get there.
That’s by design. Most places don’t want people like you. They want pliable, naive employees who will kill themselves for the company and not count their hours.
Fortunately, there are still lots of good startups, small and medium sized companies that pay well and actually respect your time.
Along with past experience on CV this should be enough to assess whether a candidate is suitable for the 3 or 6 months probation employment.
If after all this you still can’t decide whether the candidate is a match and worth keeping permanently post probation, your hiring and working processes are seriously broken. I don’t understand then need for multiple, hours long, dozen interviewers processes.
For senior positions, I would rather spend an hour or two talking through hypothetical scenarios, including design decisions and teamwork. I want to hear deeper knowledge from a candidate, not "do they know valid syntax and are they able to solve trivial problems".
As in all things, it depends on the company that is doing the hiring and the role they are being hired for. In some cases, "senior" roles are basically individual contributors with a few years of experience. In others, a senior should be able to translate business requirements into a big picture technical solution, break down the portions of the stack they are familiar with, and explain what assumptions are made and what unknown factors need to be sussed out in order to plan a proper implementation.
The latter portion is difficult to do with a take home assignment without careful planning for the follow-up interviews. 5 hour round-robin interviews typically (in my experience) end up being "live leet code" sessions that don't represent day-to-day work at all.
So the game becomes to avoid hiring someone like that at all costs, because once they are hired they are impossible to get rid of.
I wish employment was more like contracting - you give someone a trial for a few weeks and then end it it’s not a mutual fit. No long interview necessary - the job is the interview.
If they are a NNPP, gathering the necessary documentation and putting them on a PIP or shuffling them to another team is likely an easier path.
I think what might be happening is a vicious feedback loop of
* companies hiring too many smart engineers
* those engineers are in turn very bored and don’t have much to do so they check out
* not much gets done so more people get hired to do more stuff.
First, many more applicants than positions. If you've got 100 for a single position, then selecting the best 10 out of that set will look like a high hiring bar when it is 'just' a "we don't have time to interview everyone." And many positions get many more than 100 applicants per position.
Next, the aspect of job hoping that has become fairly common in the past decade. If the average tenure of the person hired in the last 10 years is decreasing because the person can get paid more by switching companies then the other side of the push will be to raise the bar so that the new hire will require less onboarding and be able to be productive faster. If the company is using Kafka in house, and it takes two months to really get to the point of understanding it and the person leaves after a year, that's two months lost. So, instead hire someone who understands it and only requires a week to pick up the peculiarities here so that when they leave in a year you haven't lost a portion of the time getting them familiar with the tech stack.
Lastly, it is a pain to fire someone. You need documentation about their issues and that it is performance related and that its not done during a 30 day window where they've fired 49 other people and that HR is ensuring that they've got the CYA on a wrongful dismissal documented. And then, even when you do fire someone, you've got to go back and reopen the position and hire again and that takes two months from the time you submit the job description to HR to starting a new person along with at least a week of manager and interviewer time in the process.
The safest thing for a company to do is move them over to a team that does low priority, low impact things and never promote them in an engineering capacity. Note that sometimes when you move a person from a dev job to a QA or operations job you'll get the person coming back with constructive dismissal which takes time to handle.
Yes - I can manage my calendar better, but then people would get suspicious, or I'd be worried some emergency comes up.
When I used to interview, I'd just start having more "doctor appointments" or what not and block off a few hours. Also, these were back in the days of going on-site for interviews. My engineers who quit did it all remotely, even the final round (covid times...) so it's more manageable.
One needn’t interview at so many companies. If one is in no rush to quit then just spread interviews out over a much longer time.
Or just do a few interviews per week while working like most people.
A pity since the TC game is played by pitting companies against each other in a bidding war. I guess I'll have to figure out my strategy when the time comes.
As a kid, I went to Disneyland exactly zero times. There are hasher realities for many.
“Well my notice expires at my current job in two weeks but I’d like to take a short break in between to decompress / spend time with my family.”
“Obviously we’d like to have you as soon as possible but we don’t want to keep you from your family. How about six weeks from now?”
“Works for me.”
Obviously different companies/roles will be differently flexible and bigger companies will be more tolerant of delaying start by longer. And you can only do that if you get a job offer somewhere. But the parent comment wasn’t even suggesting taking holiday to interview for a week straight right?
Before you respond that I don’t know what it’s like juggling a family and I must be a fresh college grad, the 74 in my username has significance
There is no "correct" answer to it. It is an investigation into how you break the problem down and approach it. When presented with a challenge to it, how do you then look at it and consider how to solve it.
The Codeless Code - Case 83 Consequences http://thecodelesscode.com/case/83?topic=interviews
I honestly think I'd be physically incapable of doing this. I'm on the HSP side and even a single set of interviews is enough to drive me into an insomnia/anxiety cycle for weeks. I can't even imagine what this would be like for me. Albeit I admit it's the best way to get the job you want. Maybe I'm in the wrong industry...
More people than you might imagine take Xanax to get through interviews.
But if a normally functioning person needs to start Xanax for the purpose of getting through (let's admit it) a power-play hazing ritual that has little to do with the job, then maybe that person and the rest of us should go tell those companies to take a hike. The EEOC should, as well.
You know, that's actually a great idea I never thought about. I'll see if I can get a script next time I go through interview loops. Might make the process less hellish for me, I hope.
> Maybe I'm in the wrong industry...
I wonder this as well for myself. I really like software development, but the interviewing is just getting to be too much. It would suck to have to change careers away from something you're pretty good at and really like just because of what basically amounts to hazing.
I prefer the 'choose your battles' approach. Interviewing at 3-5 places (not 35), and being prepared to 'win' before I start, as well as possible.
I do find the marathon interviews are difficult, but the difficult parts for me are front-loaded - the initial anxiety, gradually building to being desperate for a break (or to escape) around halfway through. But then like a runner in the zone or coasting through the second half of a double shift on sleep deprivation, the latter part is relatively smooth.
Interviews are conversations, not fights.
https://www.goodrx.com/conditions/generalized-anxiety-disord...
Kind of says something about the amount of cultural sway technologists actually have.
Hard to find the right balance.
re: your last question - I interviewed for both SWE and EM positions, depending on what was available at any given company. At companies that had both roles open, I talked to folks to understand what they expected out of EMs vs engineers, as it varied a lot - and then I picked whatever was more appealing to me. In aggregate I went for 70% SWE / 30% EM roles (roughly)
I'm curious about the rough models which exist.
Pure people manager - HR admin (compensation evaluation etc), professional development, project management, team resourcing, etc. Tend to see this less in very small companies.
TLM (Tech Lead / Manager) - Does all of the above, plus also acts as a tech lead for the project - technical design, mentoring, and possibly some coding. Tend to see this less in very big companies. TLM are typically first-line managers, I've not seen a TLM that manages managers (i.e. Director level).
Rarely, hybrid engineer/manager - Does all the above, plus expected to contribute significantly to coding. Honestly it's a red flag for me to see a team hiring for this archetype, in my opinion it's a pragmatic stopgap you might find yourself with as a small company, until you can hire an engineer or manager to split the role; it's not something you should explicitly hire for.
Sometimes, product lead as "mini-CEO" - manages the team/org and owns product direction. Typically will have a tech lead on the team to own that side of things. This can grow into a Director position, managing the team managers and still owning the product function.
Some archetyes for dedicated Staff engineers (typically the equivalent IC-track level to a team manager): https://staffeng.com/guides/staff-archetypes
My first company out of college actually banned it as a practice - EMs were not allowed to be active contributors.
I know at some companies, it’s actually a requirement, or at least heavily encouraged, for a manager to spend at least 20% time writing code.
And then some places are a mixed bag.
I can see both arguments! Just good to know that a company has a coherent philosophy on the issue.
It's also not fun to be waiting to hear from the places you're really interested in while you've multiple exploding offers. One of the offers exploded before the date I was told it would. On the plus side I was able to use the offers as leverage to speed up the process at the job I finally did take.
If I have to do it again I will set some sensible limits on myself.
The first time I found a bug in a company's take home project spec rather spoiled them for me. And sadly, that's not the only time that happened! A candidate who puts more effort into it than the person who created it gets rewarded by feeling confused or like they're missing something because it doesn't add up? Nope, not great.
And now, 15 years further along, the idea of investing 4+ hours of my own time without even a human to ask questions of or discuss things with just has no real appeal (I've seen some that expect 8+, even).
IF I ever needed a linked list, I’d use collections.deque like a professional.
Oh, and they took issue with the fact that my files were named in CamelCase instead of smake case.
Overall I think any form of take-home/leetcode is just depressing.
In my last job hunt, I flat out declined further interview if I was requested to do a take home assignment.
I have the total opposite experience. I have rarely done well on a live code problem, I clam up. Tbh it’s humiliating, not representative of my actual skill set, and a waste of everyone’s time.
The amount of time I’d need to study to be good at live coding is less than doing a couple take homes for companies I’m actually interested in.
Then there's the follow up - often a rejection with no comments on the code whatsoever. Or you get completely ghosted. Or, and this is the real kicker - they finally ask you to come in, where they have you do leetcode on a whiteboard anyway.
If the process was "Here's what we're expecting, turn it in by X date, we'll have you do a review with the team, and assuming all goes well, we'll talk about an offer at that point" I would be a lot more open to them. But that's never the process.
Honestly, after getting a rejection with motivation 2 times now, I’m leaning towards rejections without motivation being better.
I just do not care to see how utterly arbitrary a lot of the reasons are. The basically come down to ‘you did some things I personally didn’t like’.
It gives us an actual chance to work together professionally on a real thing. I get actual pay. The company gets something actually useful (not just a puzzle solution). The team can keep their focus on the bigger stuff. It's kind of a win-win.
It does need to be something rather small and non-critical, yet relevant enough, which might be a little more difficult than just picking a generic puzzle. And requires a little extra setup for the contracting and pay. So I can see why many don't bother.
Having so many interviews makes you feel more relaxed for every interview because you become numb to it. You don’t care if you flunk your FAANG interview because you already have a good chance with a mid-sized smaller company, which makes you even better for the FAANG interview.
I did over a dozen interview loops when I was looking last year and I felt great and at the top of my game.
How is the technical interview process valuable _for companies_ at this point when it seems to be evaluating how well you can prepare for their specific leetcode interview, and how well you practice the incantation of the system design problem (make sure you follow the template and the pattern!) - do they really think they're selecting the best candidates, and not the most practiced interviewers?
Beyond the barest basics, 99% of the time the only thing that's genuinely relevant is whether or not the team wants to work with the candidate. Almost nothing else that is relevant is even knowable until after they're actually working. Exceptions only prove the rule.
It's a sham but I guess it makes someone feel like they've contributed value somehow.
Also note that the OP said they found the coding questions were mostly easy/easier than they expected so maybe the amount of work required (for older/more experienced candidates) on preparation is not so high? I dunno.
For example - there's a big pushback that any hiring manager worried about a candidate who don't have required skills they could learn in 6-12 months is "quibbling". Is this a generally held belief? In the startup space in particular, most folks I interview frequently have consistent < 2 year stints at most if not all of their prior companies. Expecting a 12 month ramp-up time on a particular piece of technology needed to do the job would be an immediate no-hire from me. If I personally joined a company and couldn't meaningfully contribute for the first year, I would consider that a complete failure and expect to be let go. Do other people feel differently? Perhaps this expectation is more applicable to larger companies than startups?
When I asked the Mesa devs how long ramp-up was I was told around 12-18 months.
When I was working on ChromeOS we expected about 6 months of ramp.
I guess it’s just different projects and jobs at companies. I would never hold my breath to find a candidate that had experience in any of the above.
But the real thing is, every company has its own processes and procedures, its own legacy and proprietary code, its own business and product goals in its industry, etc. That's where the real ramp-up comes in. 6-12 months is not a bad ramp-up target.
Would you really rather have someone who knows new tech XYZ very well and can hit the ground running with no ramp-up, but breaks process, refuses to touch the legacy code, knows nothing about the industry, and builds things counterproductive to your business goals?
Or would you rather have someone who doesn't know new tech XYZ at all and needs to ramp up, but will gladly pick it up while also learning and adopting your processes, legacy code, industry, and business goals, in order to contribute to the best of their ability?
For that, you not only need to learn the new tech, but a whole lot more. Learning the new tech is the least of it. And industry/domain experience isn't perfect but is worth a lot.
Yes, they should be able to meaningfully contribute fairly quickly, even with things that are new to them. It'll take a while to get really good though. But while they're ramping up on everything else anyway, why not let 'em ramp up on the tech? It's a relatively small thing in the big picture.
It’s not an either/or someone with experience should be able to do both, at my current job and my prior two jobs, I was specifically hired because the manager was looking to bring on someone who could lead initiatives and was a subject matter expert.
Well my last two jobs prior to my current one - the current company I work for has quite a few people who know my specialty well…
A candidate can get started on our stack fairly quickly, but it’d take months for them to understand the greater context.
If you are fairly skilled programmer, somewhat senior. These layoffs don’t matter.
I assure you that you won’t die of hunger if you quit/are laid off. Plenty of demand for non-coasters.
So many people have mentally checked out of their current jobs but are too lazy to grind leetcode and go through interview loops. Unless you are in a financial crunch or have other issues like visa sponsorship, getting paid for 6+ months to fully focus on the next step of your career sounds like a dream.
Microsoft/Google/Meta/Amazon/Salesforce and the like are spending many billions of dollars and unknowingly setting up the largest startup incubators in the world right now (and getting nothing out of it in return).
I've been going to the gym 4-6x/week for the last couple months. I cannot get myself to do almost any leetcode even though I should be doing it. I've just accepted I'll not work for a while longer and keep going to the gym anyway.
That grind set mindset, “you can do anything you set your mind to, so you can only blame yourself for not having {life goal}” is a recipe for depression and burnout
They may make more money anyway. Whether or not that means they’re more successful is a different question.
It's a fucking investment dude.
You invest those hours to have higher salary / cooler job / be better, etc.
You don't want to put X hours of effort into something that may make your 8h/day work better?
Your social life probably ain't gonna disappear if you'll spend a few hours a week for a month or two on learning
I've been working + getting degree on weekends for 6 years, so I kinda know something about lack of time.
Don't get me wrong, I'm not saying everyone should be doing LC. Just don't act as if there was some tremendous trade off required to learn it
Wondering why they are giving such big serverences. Surely its not out of goodness of their hearts. 7 month severance at google seems a bit over the top to me.
- absolute crickets, which made up about 33% of the "rejections" after a phone screen. This was unheard of pre-layoff rounds, but I understand that recruiters themselves suffered a lot of losses in this wave so I somewhat get it.
- "We only hire SREs, and any role leveled Senior+, in San Francisco, there's too much context to offload remotely for leader roles" (this is, itself, such a glaring red flag that I was considering walking from this process anyway)
- "You mentioned your preference to not do Coderpad-style interviews, and sadly, we only hire based on timed+video call Coderpad interviews, good luck!" (I basically never ran into this pre-2022 despite my stance on this issue almost never changing in my career, this was the cause of several rejections this time)
- A subtype of the above, bombing a surprise (or once, "forgot to ask ahead of time and got scheduled for one that I decided to go to anyway") Coderpad/l33tcode/etc. style interview. Rejections on all but one of these, where I advanced and backed out for other reasons.
- Being an SRE not married to Kubernetes I've learned is now often akin to no longer being an SRE. In fact I now question whether I truly consider myself "an SRE" in the current startup climate's sense of the word anymore. As an egregious example, one interview asked me to rate my skills and opinions on Kubernetes specifically. I answered honestly that I thought it was the right tool for many jobs, but not all jobs, and that I wouldn't claim to be a guru at it as I often use other tools that fit the tasks at hand better. Rejected.
I also had someone candidly tell me that they deliberately select for candidates who have put extensive time into preparation because that correlates with effort and the willingness to work under crunch conditions in the job. Gross, but effective.
Joking, but this also a true story.
Feels like an artificial wall too - many companies don't approach the scale where this stuff matters, so getting that experience is hard.
There are "layers" to the signal you can get from system design interviews:
1. Are they aware of "big concepts", indexing, sharding, queues, scheduling, etc.
2. Are they comfortable actually using and manipulating these abstractions in an academic sense? e.g. new college grads may have never used an index, but can walk me through how we might use one to solve a given problem.
3. Do they have experience operationalizing these concepts? e.g. in DB design questions I love it when candidates are able to walk through a zero downtime migration plan from before and after we add a feature.
4. Related to 3, How do they weight tradeoffs in the system? Do they drill down into product requirements to help inform these tradeoffs?
A system design interview often lets me say: "They're not experienced enough at our scale for me to want to hire them at level X, but I'd hire them at level X-1"
All this said, I do think more companies should try to draw design interview questions directly from their own company experience e.g. imagine we didn't have feature X, how would you add it to the product?
I think pulling specific ideas from your actual system is full of traps. These are probably problems you've thought of - both actively and passively - for days, months, or even years.
The person you're interviewing has had no such benefit, and it might be very hard for the interviewer to be able to separate what they think is reasonable and what is actually reasonable.
The first time you give the interview certainly, but you have time to formalize and tune the interview. Write down what you're going to ask, what signals you're looking for, the quality of a solution you expect. Socialize this with engineers who weren't directly involved in the design of the system, ask for their feedback.
You can usually iron out a question in 10-20 interviews and make it really stellar within a 100. I know that's a lot of potentially wasted hours, but the ROI in terms of candidate quality is worth way more.
By having that rubric down it becomes easier to make the objective choices (that can be backed up with HR). Additionally, that same question (with the same rubric) can be used by other interviewers for other candidates and overall, you would hope that the same candidates would get the same thumbs up / thumbs down evaluation no matter who asked the question or considered them.
How does one approach this?
https://martinfowler.com/books/refactoringDatabases.html https://databaserefactoring.com/
https://www.observationalhazard.com/2022/05/my-experience-wi...
1) It can feel like it will sabotage your chances even if it raises awareness of your situation. Firstly because you cannot help but "call out" some of the hiring practices/people, and secondly because, well, must be something wrong with you if no one is snapping you up, right? Which leads into...
2) A lot of really obnoxious folks like to pounce on this and "blame the victim", and then reference stuff like this post to show how "it must be your fault", etc, and "ain't nobody got time for that". It's hard enough to deal with impostor syndrome kicking the brains in without inviting the mob to kick as well.
3) It's depressing to think about it, much less to write all that down where it becomes an objective thing that cannot be ignored. Especially if you've tracked everything in detail (I have). Much more pleasant to sell off your belongings and pretend you're just embracing minimalism and forget about it.
4) Feels a lot like begging, and there are many complicated reasons why people mostly don't like to do that.
People are also not interested in hearing troubling stories because everyone has a troubling story. They want to hear how you succeeded because they want to emulate that success. They want to learn the "one small trick" that will lead them to finally getting the job of their dreams.
The interviewing causes a lot of stress to me. Even though I have never failed a coding interview, I utterly hate doing these. (Thankfully I've never had any hard leetcode problems thrown at me - I would have failed miserably.) I have also been a lot on the other side of the table, though I found even that to be a big source of stress to me. I personally believe these coding tasks are only good for filtering out the bad candidates - you can't use them to find great candidates. The last big company I worked at gradually steered towards harder and harder coding problems, until one day I just pulled out of the interviewing process as I felt that I personally would no more get hired.
I wish more companies would be more flexible in their interviewing process. Like, I have several open source projects which mostly revolve around various forms of static code analysis - why do I need to prove that I can write fizzbuzz?
Recently I had a pretty nice coding interview where the main task was not about me writing code, but instead reading the code that a junior developer had written and helping him sort out why the code doesn't work and how to improve it. This was the most real-work-like task I've experienced, I even found myself enjoying it.
Most of the rejections I've had have been along the lines of: "While we find your technical skills excellent, you don't really look that motivated / we think we might not have the right kind of challenge for you."
So, I'm in a bit of a dilemma. If I would strive to send out more resumes, most of these jobs are likely something that I'm not overly excited about, and so I will get rejected because I don't look committed enough. But if I try to look for a dream job, then that will likely never happen. I feel like I'm doomed either way.
During this whole job search I did get one offer, but I rejected it, as I heard rumors about the owners of the company being complete assholes. (Like monitoring workers through security cameras to make sure they're working at their desks.)
Thankfully I've had enough savings from my previous employments and I tend to live a fairly cheap life. Nevertheless, my savings are starting to run low now, which adds pressure to finally find a job. Well, I still have the option of selling my second house (so I'm still far from being financially ruined).
11 out of 13 seems like a really extremely good hit rate. Even a 50% offer rate would be really good so I'm guessing this person is way better at interviewing than most of us.
As most of these interviews were in in October/November I wonder if it would go as well now? Or in 2 or 3 months?
However the most interesting stat is missing: compensation offers. I bet offers being handed today are across the board lower than even just 1 quarter ago.
Being more selective (3 to 5 places instead of 35) could've maybe gotten a 75%+ hit rate (but also might've missed the best one).
Maybe someone who has been in the other side of equation can explain, what are the common reasons would get someone discarded before an interview and is there really no way to communicate those better to the rejectee?
1. Far under-qualified. People apply for senior positions with literally 18 months of experience ALL THE TIME. Seriously... ALL THE TIME.
2. Too many technologies on your CV. A lot of resumes will just list every language or technology on the planet. Its a shotgun technique to just list everything and hope something sticks. The problem with this is that you can't be good at everything. When you say you are confident or even expert in 30 different languages, then it just tells me I can't trust anything on your resume.
3. Titles that don't make sense. Your titles at companies should be standard. Don't put "Javascript Ninja Pro II". Wtf is that? Just put "Software Engineer II - Javascript". Also, in the vein of job titles that don't make sense is someone who worked as a junior engineer for 6 months, and then their next job is as a Senior level engineer. This is scary common, seriously. You're either lying or delusional, either way I'm moving to the next CV.
4. Colorful resumes. Resumes should be text documents. A colored line below a header or little highlights are fine, but its not a graphics design job. Cutesy resumes just make me worried that someone is overcompensating or hasn't been in the industry enough. A lot of cute resumes have tons of whitespace and design to take up space and make a light resume fill fuller. These resumes are super common with bootcamp grads. Maybe bootcamps are selling resume templates as art projects. Don't know, don't care. Usually a well qualified engineer will want a text dense resume so they have more space to brag about all the amazing things they have accomplished. If youre using space for fancy designs then you probably don't have enough content on your resume. It's essentially wasted opportunity.
5. Resumes with Personal Photos. DO NOT EVERY SUBMIT A RESUME WITH YOUR PHOTO ON IT. I have a rule that I automatically reject any resume with someone's photo. It's too risky. I can either get accused of favoring a certain race/gender/ethnicity/etc or being prejudiced against them. So instead I automatically reject any resume with a personal photo. You can be the worlds best engineer and you won't get a call back from me because you added a personal photo on your resume. A lot of companies have this rule too. So if you are adding your photo to your resume you are doing far more harm than good to yourself.
6. Too long. Most resumes should be 2 pages. If you are just getting into the industry and only have < 3 jobs then you should use 1 page. If you are a veteran than use 3 pages. Never go above 3 pages. Anything above 3 pages will get cut. Three pages is enough to give even a staff-level engineer plenty of space to talk about their accomplishments. Anything more than that is an autobiography and I don't have time for it. Learn to cut fluff and give me your greatest hits on a resume. You are just trying to get an interview. You'll have HOURS in far-too-long interview process to give us your verbal autobiography. Save the greatest hits for the resume/CV.
7. Pattern of short job history. Some companies might not care. But if you have a consistent pattern of only working somewhere for 6 months (again, very common) then it tells me you are just job hoping. I know the saying that this is the best way to get a raise in tech. But if youve had 4 jobs in 2 years then I won't waste my time. It will take you 6 months to even start to provide value at the company, and i don't want to be replacing your position twice a year. Im fine with a single job that has a short stint. Just as long as its not a pattern of behavior. Its really common to get resumes with engineers that have 6-8 jobs and only 3 years of experience (Its very common). I'm not delusional enough to believe that our company will be the one you stick around with. So I move on from this. As long as you have an average pattern of at least a year with jobs, then you're fine. If you worked contract, this is different and you should list that in the job description.
8. No good bullet points. With each job you should list things you accomplished. "Built the website using Javascript and React" is not an accomplishment. If you don't have specific accomplishments to list and everything about each job is superficial, then I will assume your contributions at the company were superficial.
9. No Progress on Resume. Your resume should tell a story. If I look at someone who has worked somewhere for 3 years and didn't get a title change or promotion during that time, then I get worried that they aren't providing good quality work. Good engineers get promotions. I'd expect to see that story as I read down your resume. If you look stagnant then the resume will get tossed.
10. No Clear Direction. I want to see that someone is looking for a specific type of job or they are pointing their career in a certain direction. This is visible by the content on the resume being focused in one area or direction and the pattern of jobs taken. I see a lot of resumes where people take a job as an ETL Engineer for 18 months. Then they are a full stack engineer for 12 months. Then they get into sysadmin work for 12 months and now apply for Backend Java. If you have legit reasons for meandering in your career then it should be in your cover letter or explained in 1-2 brief sentences at the top.
Stuff that doesn't matter.
- Your home address, not sure why people put this on there. I'm not going to knock on your door to schedule an interview. I'll get your address if/when you're hired.
- Photos. Its a engineering or tech job, not a modeling gig. See #5, these automatically get cut by most companies for risk of subconscious bias.
- Mission Statement. Sure put a sentence or two if you want. But "Get a job in software engineering" is not a mission. If that's all you have to say then leave it off. Mission statement is not going to have any impact positive or negative on you getting a job. So why bother having it there.
- Jokes. You're not going to get hired because of a joke and its really hard to tell whether stuff is a joke or you're just crazy when its on a resume. You're not lightening the mood, you are confusing the hiring manager. When a hiring manager gets confused while looking at the resume, the resume goes in the trash. So jokes are only going to hurt you.
- Typos. I don't immediately dismiss resumes for a single typo. But more than 3+ and I probably will. Its easy enough to use spell check. If there are typos it is because you rushed the resume-building, have no attention to detail, or just don't care. One or two typos are fine. But a pattern is concerning.
In a country where people care a lot about titles this might be more important. In most Scandinavian companies I have worked in most developers were just “Developer” or “software developer” or similar, no “junior developer” -> “developer” -> “senior developer” and so on. Some large companies might have some internal level system. It might change though, I have started seeing more junior, senior, principal compared to ten years ago.
The photo bit is highly country-dependent. In Germany, for example, everyone attaches professional quasi studio photos on the cv.
Maybe spelling is hard for them or English isn’t their first language.
This is partially why I haven't been interviewing. All the big p(l)ayers have slowed down their hiring so much - why bother taking a role that pays less than half.
So a lot of the crazy salaries you see people brag about are often taking stock programs into account. And because tech stock has been generally hockey stick growth, then the TC (total compensation) is too.
But aside from the stock, you can get good salaries and benefits at lots of non-FAANG companies. I actually have better insurance than my brother-in-law does at his FAANG job, which is already considered very good. In fact its the best insurance i've ever had in my life.
Since stock makes up a large portion of $BigTech compensation, ignoring RSUs is not logical.
They're in it because it was a bunch of high growth stock that also coincidentally paid very well so the name transfered from finance to programming.
> if you spend that much effort
yeah that doesn't start until like 400+ LC problems. If you're still struggling with mediums at that level then sure. But at <200? That's entirely normal.
Sure you may get lucky and get in Google with 10 LC problems under your belt. But those are not good odds. Places are asking LC hard nowadays. And you really don't want to see what people in India are putting up with.
What a luxury! I only had 3 weeks of vacation and burned through almost all of it because every company expects you to do multiple rounds of interviews during business hours.
Eventually I just quit because it was literally impossible to search for a job while working full time.
Personally, my compensation is underwater due to the recent stock crash, and leadership has insinuated to expect zilch for 2023. I'm not in the job market due to visa, but I feel the insane comp bubble has burst, and I missed the train. I'm anxious to see how the job market evolves over the next year, but I'm afraid we won't see compensation packages nearly close to how they were the last couple of years.
I will say I got offers comparable to my pre-stock crash comp, but I hit a comp cliff either way in 2022 (even without the crash).
I am talking to a couple of them, who are working with companies whose name or location they won't even disclose until the company looks at my CV and decides to move ahead.
But the recruiters want me to specify a salary expectation. But my salary expectations depend on whether I am living in the downtown of large city or in a smaller city, or able to work remotely.
What number do I specify, or how do I approach the situation otherwise?
An answer of if "I need to commute in to $city then I will need $money1 but if I can work from $town then I will only need $money2"
This is great advice! I interviewed in 2022 and found that I performed significantly better when well rested. I also found that eating healthy helped during the post-lunch interviews.
Thanks for sharing your experience.
People who try to “Network” artificially won’t see great success.
People who are genuinely take an interest in what others are doing, and are intentional about meeting once or twice a year for coffee to catch up, are the ones who can call in a favor in the way described in the blog post.
Well there you have it. No need to be besties, just spend time with people you like. Be it at work or elsewhere. The rest follows.
Anyone below really doesn't have the same luxury to be so picky and choosey.
I've applied for hundreds of jobs, most rejected without a phone or interview call. Shit is tough. Ain't got no leeway.
But what about non-corporate software engineers? What about web developers? The interview process is very different depending on the company.
It depends on the company, not on the domain. OP might as well be a web developer, most developers are.
Cheat where possible using OpenGPT.
Cheat where possible using OpenGPT.
We must prove to companies that leetcode is not the way.
Meanwhile, humans have not really struggled with this problem. We tell you what a bloom filter is, you just have to write the code to spec. (This is different than some interviews where you need to know the answer to the trivia question; know what a bloom filter is and how to implement one, or you fail. ChatGPT was not capable of either.)
Overall my take on the current state of AI-produced computer programs is that the programmer is forced to take on the role of code reviewer and detail checker, which I think is a more difficult problem than just typing in code in a green-field environment. The thing that's difficult about reviewing code is that things can diverge away from your mental model so quickly, that you don't know which details you should be checking up on. When you're writing it from scratch, you don't lead yourself astray in the same way.
In a few years this could be completely different, of course.
Of course most competent companies will ask a minor follow-up which will stump candidates who are relying on such tools.
I've applied to interview a few places I never plan to work at, just so I could do their leetcode interviews. It's like a brain teaser book but you also get a live human evaluating.
Nah the interviewer has full discretion at Amazon to pick the questions. You just found someone who thought Hard was the correct bar to set.