Have one or more side projects going all the time. If you get laid off, immediately start doing a startup, open-source project, or volunteering full time. A year of unemployment? Lonely, depressing, and not good on a resume.
A year of launching an unsuccessful venture? Running coding classes for the underserved? Focusing full-time on contributing to pytorch? That's a lot better, both at the time and in retrospect.
Side projects are also a good way to get hired. You meet people.
You also learn stuff, and stuff of the type you can't learn in a job.
You can also do the equivalent of an acquihire. If you want to work for the world's #1 drubble maker, and you spend 6 months developing a drubble startup, guess who'll come out the most knowledgeable and passionate about drubbles at the interview? And perhaps even bring in some helpful IP?
Your back story is "I tried to go it alone; I think I can do a lot more good with the backing of a company."
This is terrible, possibly toxic advice. Software devs are people too. They burn out, take time off to travel, reflect, take care of family, or just down on their luck being unemployed.
The only advice I'd consider paramount is to take stock of themselves financially and mentally, to assure themselves that they can take on the chaos and uncertainty that follows.
Honestly, if someone showed up with a gap in their resume and claimed that they were doing start-up, open source, etc. for an interview, I'd dig deep into that hard. The open source contribution/project would have to have a sufficiently high bar for it to be even considered. Else, I'd just assume they were being less than honest. I'd rather someone tell me they spent a year working on themselves, playing video games, hiking, etc.
> Honestly, if someone showed up with a gap in their resume and claimed that they were doing start-up, open source, etc. for an interview, I'd dig deep into that hard.
This is just as, if not more toxic than the advice that you're opposed to. I've had similar experiences with interviewers for non-technical questions, and it comes off as aggressive, antagonistic and traumatizing; especially in your example where they left it off their resume as a gap. The interviewee's perspective might have been to say that they've been spending some of their spare time keeping their skills sharp and now you're hammering them to see if a project left off their resume qualifies for some "high bar," while all they see is a negative and dismissive attitude.
Personally, I would much rather be programming my own projects or doing leetcode than play video games, but I wouldn't judge someone negatively if they told me they played games on their own time.
If you're not passionate about coding, that advice isn't for you. There is a class of people for whom coding is 'work', as in the actual act of coding is work and they would prefer to be doing anything else, but they have bills to pay.
There is another class of developers who like to code so much, that 'work' is merely a project that they don't have directional control over, but the act of coding is a relaxing activity. I know because I'm one of them. I am pretty relaxed at work when I can just sit down and code, then I go home and if I get some free time to work on my own code, I find it relaxing too. It's not that I don't enjoy work and have to supplement with a personal project, I just like the feeling of having absolute control over the project and trying to write the best code possible, because making money or providing some shareholder value is not the goal.
For people like me, I think this is a great advice. I am always thinking of side-projects that can become startups anyway, and I'm tinkering every day to the extent that time allows. I've been doing that for 20+ years. If I ever got laid off, my only hope is that at that point I will have a side-project that can magically be launched to make enough money to keep paying the bills.
>There is another class of developers who like to code so much, that 'work' is merely a project that they don't have directional control over, but the act of coding is a relaxing activity.
I'm in the middle. Imagine you like playing football. You do it for fun. But, if you do it too much, you'll be exhausted and maybe strain a muscle or something. I code for fun, but it still wears me out; it's still a kind of "work" psychologically distinct from, and more taxing than, watching a show.
The only way I would describe it as "relaxing" is if I put little-to-no thought into it, but that's how you end up with very buggy code.
>There is a class of people for whom coding is 'work', as in the actual act of coding is work and they would prefer to be doing anything else, but they have bills to pay.
I always see this set of people highly vocal and against people who actually like to code. It is like they have a tough time accepting that a lot of technical people love to build things.
There are two sides to every coin. Possibly toxic advice for some, but why should anyone give up platforms or avenues that make them standout from the crowd? OP's suggestion is a perfectly valid piece of advice for anyone who has the energy, time, resources, ability, will, and integrity to keep chopping at a meaningful side project. It is not easy, sure. But I don't think we can say it is toxic, either.
> The open source contribution/project would have to have a sufficiently high bar for it to be even considered.
We'd do well to not write this advice off by subjecting it to the most extreme possible treatment?
With three kids, my current side project is my day job, at least if measuring by workload. Taking on more work, voluntarily or not, will be at a significant personal cost for me.
I don’t get the constant peddling of hussle porn in SWE circles.
Terrible advice. One year of lazing around and playing videogames is a good way to lose any self-discipline you would been building up to this point. There is nothing toxic in working to improve yourself and/or building projects you are passionate about - quite the contrary. The feeling of accomplishment can do wonders to one's mental health.
Speaking of toxicity, this idea that the primary means of valuing ourselves and being "healthy" should be through our job or independent job-related work... ugh, super toxic.
I don't think the grandparent was suggesting they literally sit around for a year and do nothing buy play video games. But, hell, taking time off between jobs is a great idea, and if video games are your thing, spending a chunk of that time off playing sounds like it could be great for your mental health. But, just like anything else, moderation!
> Honestly, if someone showed up with a gap in their resume and claimed that they were doing start-up, open source, etc. for an interview, I'd dig deep into that hard
Hah, and you called gp's advice toxic! Taking stock if your financial well-being after being laid off is too late. I fear your advice (take time off) may be toxic - depending on circumstances. My advice is this: as a general rule, avoid interviewing while desperate. Getting an offer generally takes longer than one might think, so interview early and often, before you get near the end of your mental/financial runway.
I think we're abusing the word "toxic" here. Sure, for someone who hasn't planned out their finances and built a cushion, advising them to take some time off would be... well, bad advice. But "toxic"? That's a bit hyperbolic.
> The open source contribution/project would have to have a sufficiently high bar for it to be even considered. Else, I'd just assume they were being less than honest. I'd rather someone tell me they spent a year working on themselves, playing video games, hiking, etc.
You think working on a passion project and trying out a startup is toxic and then you come out with this pessimistic bucket crab viewpoint? You’d be doing people a favour not hiring them, I’d feel bad for anyone working for you.
The comment you're replying to said the advice was toxic, not the activity itself. That is, making people feel guilty for not doing "enough" (contributing to side projects, open source, etc) is the arguably toxic thing.
I don't know if I agree, but let's not twist the words of the comment.
Edit/Addendum : Uff this blew up. If I came on too strong, that wasn’t my intention and I’m sorry.
I was primarily replying to this particular line from OP :
> If you get laid off, immediately start doing a startup, open-source project, or volunteering full time.
The ‘immediately’ didn’t really jive with me. A job loss can be very traumatic to an individual, and I still believe in taking time to recuperate from it rather than diving head long into yet another thing.
I’ve interviewed quite a lot for my employers, big and small, including two of FAANMG companies for about 7 years now. From my perspective, I’m interviewing a candidate to see if they’re a competent engineer and a pleasant team member.
I have absolutely no issues with passion projects / open-source and startups, just not if it’s aim is to be a resume filler.
>Focusing full-time on contributing to pytorch?
Yes! That is amazing and I already know that they’re a far more adept engineer than I am. But, if we were to dive in and I find out it was mostly fixing typos and nits in the codebase to show GitHub greens, then someone else who did something else entirely during their time off would come off better.
As someone who's been in that position at least twice (been fired or laid off and haven't been able to find _anything_ for over a year), I wouldn't go so far as to say it's wholly terrible or toxic, but at least partially so, or a little naive in some way. I'd say you should take at least a few months of personal time if you can afford it, and it's worth having something to chip away on eventually, but not necessarily to have something on your resume. Doing this full-time is borderline stupid advice, it will very likely not be worth trading your otherwise personal time for, unless you're literally charging for consulting services or something. Even still, if you're aiming for employment, just take your time.
Looking back on the times I've had to deal with this, and looking forward to the times I almost certainly will again, I'd do nothing different than what you've recommended or that I've done, with the exception of haplessly paying rent hoping for that next absurdly long and thoughtlessly designed interview process to work out.
> Honestly, if someone showed up with a gap in their resume and claimed that they were doing start-up, open source, etc. for an interview, I'd dig deep into that hard.
As a counterpoint, I probably wouldn't dig into this too much. But even if I did, would I find it strange that someone got laid off and then used their time to build up a company that didn't work out? Probably not. And if I realized that it was a half-assed effort... so what? Why is that worse than time spent playing video games? Sure, if you told me you were working on building a company and you didn't have any progress, I might feel that you were dishonest. But if you've got at least something to show for it (a basic product, even with zero sales), I think it's fair game.
[Continuing working] is the single biggest thing someone can do to avoid depression after a layoff. The best idea is a paying job because it fills both requirements.
It also keeps you ready to interview and ready to start immediately. When you're on the couch it's always easy to wait till tomorrow.
> I'd rather someone tell me they spent a year working on themselves, playing video games, hiking, etc.
If they were independently wealthy that might be okay but for most people this is self-destructive behavior.
This is a live-to-work attitude. Have some other hobbies and goals, and a year of unemployment will be neither lonely nor depressing. Personally I've gone farther in the work-to-live direction, with an easygoing, "boring" (still fulfilling enough to see some javascript doodad come to life, but not world changing) WFH job I perform well in that supports my homesteading and other hobbies.
Or its "if you enjoy what you do you will never work" attidude
I have met soo many sysadmins and devs that absolutely hate computers, hate programming, hate everything about IT. They were in some career fair at some point in high school and simply picked that because it had high pay with out the 6 or 8 years being a Doctor or lawyer took, and it seemed easier than Electrical Engineering or something.
Me, I have always loved programming and computers. They are both my work and my hobby
Two other factors to consider: 1) people grow and change and 2) working a job is very different than doing "the same" activity as a hobby.
I enjoy gardening and cooking as hobbies, but I don't want to work a job as a landscaper or line chef. After 20+ years of coding, I absolutely hate it despite having started out loving it, but I recognize that my cushy job is less hours for more pay than I could get doing anything else.
> working a job is very different than doing "the same" activity as a hobby.
This is very true. I've been fortunate enough to be able to take a break from working. For a while after quitting my 9-5, I didn't want to touch code at all (hooray burnout). But after a while I started working on my own projects, and have gotten involved in open source again. I'm not doing 40 hours of OSS work per week, but it's much more than I'd be able to do with a full time job.
It's very different to get to work on whatever I want, whenever I want, however I want. "Working" like this feels completely different from working for an employer, even an employer that gives a large amount of autonomy.
> I have met soo many sysadmins and devs that absolutely hate computers, hate programming, hate everything about IT
> Me, I have always loved programming and computers. They are both my work and my hobby
I think you're being too harsh, and clearly, you've never experienced burnout, which will make you loathe programming as work and as a hobby. Unless you are self employed, it is possible to hate your programming job while enjoying coding at home, without being in it for the money.
"If you enjoy what you do you will never work" is such bs, and leads to exploitation (see AAA games' low pay and crunching, or underpaid airline pilots)
I like problems, but mostly the technical ones. Starting programming young, loved computers and networking. Became a sysadmin.
Turns out that at work, the problems are often different to what I want to be solving. Approvals and process can be a real downer. Some problems are people problems and not technical problems at all. Waiting on somebody else to complete their part while you wait sucks. These are the things that burn me out.
At home, I am the approval process. Maintenance is whenever I think is reasonable. Don't like a service/app, throw it away. Found a new project, tinker away. Something is down, I'll get around to it.
I guess that depends on how much you enjoy your side projects.
Over the Christmas holidays, I rooted the vacuum robot, built a workstation from parts, worked on a new compression algorithm, and enhanced my papwrcraft design software... Because that's what I enjoy doing in my free time.
> If you’re like me, work is the primary shaper of your life. Work gives your life rhythm. It is the gravitational center around which the other activities in your life revolve.
I think this happens to a lot of people. Especially for people who really enjoy the work they do, rather than see it as a necessary evil to put a roof over their head.
This late in my career, I've found 5 of my 7 SIEMs are gone, and the last one is on life support. The one I'm managing now will not be around by the time I retire.
You start to see the patterns and futility and cycles and think 'maybe my career is not making things better, it's keeping the mortgage paid?'
That and while I'm I can get rehired past 50...do I really want to do that dance again?
Same here, past 50 and while my job doesn’t fulfill me, I can do it with little effort and it pays the bills. I’m too tired and lazy to try something new, rather look for fulfillment in my spare time. Actually, all my previous experiences say that every job sucks, no matter how promising it looked like at the start.
I see other comments aggressively criticizing this suggestion (& I'm happy to see it) but I think staying busy with something fulfilling outside of your job is generally good advice. It doesn't need to be resume filler. The constant grindset-mindset is toxic, but staying engaged/fulfilled with something can be tremendously beneficial for your mental health & happiness during a period of setbacks & struggle.
"A year of unemployment? Lonely, depressing, and not good on a resume."
A year of unemployment seems significantly less depressing than this statement. What if you were to travel (or hike/explore your local area), focus on quality time with your family, friends, or dog? This to me seems way less depressing than grinding on some meaningless side-project, and as a hiring manager at a FAANG I would absolutely look at a year on someone's CV spent on these activities as a positive rather than a negative.
I've had bouts of unemployment lasting a year and a half. It's really hard to focus on side projects when you are worried about being able to pay the rent and health insurance and your pittance of unemployment insurance has run out.
My advice to anyone in the tech field is to try to have a lot of reserves, because tech is cyclical, and layoffs are inevitable, like every two to five years.
I've taken time off between jobs without taking on any meaningful projects, and I generally haven't found it to be an issue. When I tell recruiters I just wanted time off to relax, they're sometimes skeptical, but hiring managers more often than not either respond with some variety of "Oh yeah, I did that too and it was amazing" or "Oh man that sounds so great, I'm jealous."
I do apply almost entirely to smaller startups, so that may skew the response vs. what you'd get in the more process-oriented recruiting flows of a larger company. Also it probably helps that my resume has a couple of jobs where I was a very early employee at startups that went on to be extremely successful.
I also really like to just be left alone and read books, so it's something I enjoy - I recognize that many folks need the structure of work, and that's fair.
It's important to quantify how long your time off was for this anecdote to be meaningful. No good employer will bat an eye if you worked at a place for five years then spent three months on a tropical beach. A year spent job searching with no luck like the OP is a different situation altogether.
I actually don't think that's as much of a problem as you'd think - I did nine months off after 2.5 years. I just wouldn't say you've been searching and not getting jobs - much better to say that you've interviewed at a few places, but you're very focused on finding a company whose mission and team you're excited about (particularly if that's true). If they accept that as true, then you're creating a positive sort of scarcity of yourself, as opposed to framing it as jobs being scarce and you being desperate for one.
hiring managers more often than not either respond with some variety of "Oh yeah, I did that too and it was amazing" or "Oh man that sounds so great, I'm jealous."
This only works if you get to even talk to a hiring manager.
Most applications are filtered by automatic systems. Many of those will penalize or discard your application for gaps.
The same AI bots we built when we were employed are now being used against us.
This is a statistically horrible idea. The chance that your startup is going to replace even the compensation of entry level grad in any large city in the US doing enterprise development is almost 0.
The “story” that has worked for me is that “no I’m not going to reverse a binary tree on the whiteboard while juggling bowling balls riding a unicycle on a tightrope. What we can do is talk like adults and we can discuss your real world business problems and see if I can bring my skills and experience to the table to help you solve those problems in exchange for money”
I’m not going to spend 40 hours a week working and more time on the side working on a side project.
Just wondering, what is your TC? My understanding is that story works at Tier 3 companies that lack a structured interview process and are desperate for candidates (e.g. startups).
Seeing that I work at the alphabetically sorted first “A” in FAANG, I don’t think it could be considered a “tier 3” company.
When a recruiter from Amazon Retail reached out to me about an SDE position, I wasn’t interested in either relocating, working as a software developer at any large company or doing the prerequisite DS&A monkey dance.
We kept talking and she suggested that I apply for a fully remote role consulting (yes it’s a full time position) in AWS Professional Services.
I specialize in “application modernization” which is a fancy term for cloud enterprise application development + “Devops” + the standard type of work architects do at other companies.
But as far as the startup I worked for being “desperate”. I got hired at my previous company because of an informal lunch with the then new CTO who needed someone to lead the effort to make the company more “cloud native” and help them pivot toward a micro service architecture because they wanted to sell the services as backend to large health care companies.
Hint: I did that well enough to go from never opening the AWS console in mid 2018 to working at AWS two years later.
My interview was all behavioral where I talked through some of my previous company changing successes at a startup and a company where I led the integration effort when they were on an acquisition spree.
My “TC” is fine. It would be better if my unvested AMZN RSUs didn’t drop by half since I got hired.
(Yes I knew the gatekeeping was going to start when i wrote the first post above)
You mean not being “offered” a position I didn’t want? I have never had any desire to be a software developer at a large company. I like being able to:
- be on pre-sales calls with customers
- writing the proposals/statements of work
- deal with the decision makers from the customers side
- architect the entire solution from the development side and the infrastructure/“dev ops side”
- do the actual work
- lead the user acceptance testing
- move on to another project
You seem to be under the mistaken impression that I care about titles? I go to work to exchange labor for money to support my addiction to food and shelter. My “TC” allows me to do that very well.
I a not an “SA”. I do hands on billable software development that goes in production at the client site. In the past two years I’ve done hands on keyboard coding in Python, C#, JavaScript, and Go.
BTW, by the time I graduated from college in 1996, I had been a hobbyist programmer in 4 different assembly languages. I’ve maintained proprietary compiler tool chains for Windows CE devices and spent half my career bit twiddling in C and C++ with a little inline assembly.
Just for context, people in scarface’s type of role can “out-TC” many platform/product engineers of the equivalent level, depending on how rewards are structured.
The downside that I’ve noticed is that field roles tend to be cut first in response to market weather/customer focus. But a skilled engineer doing field work is a valued commodity in general.
If I worked for an outside consulting company that would be true - with the inherent risks you stated.
Working at AWS in ProServe, our compensation structure is the same as SDEs - 4 year initial offer, large prorated signing bonus, 5/15/40/40 RSU vesting schedule. It’s different for sales.
The bright side is that there is always work. Worse case, I can be “hired” by another internal team that needs someone to implement a solution to show off a new service.
I think you’re misrepresenting your story in your original comment. If you want to be an SDE at a Tier 1, you have to leetcode. There is no persuading the interviewer to pass you without testing your leetcode.
If you are comfortable taking a non-SDE role, then there are opportunities at tech companies that don’t require programming skills or leetcode.
I’m happy you have found an alternative career path, but you’re comparing apples and oranges.
There are 2.7 million developers in the US. Most don’t work at a tier 1 tech company.
My original story said nothing about where I work. I was originally referring to my process to get a software development job from 1996-2018.
But it’s not an accident I make “FAANG money” without doing “leetCode”. While I fell into a position at AWS, high level consultants make more with the same skillset than your typical BigTech SDE once they build a base. It’s higher risk and more hustle though.
I only brought up where I work now when someone brought up the r/cscareerquestions type reply of “TC”.
I am very sincere about my lack of desire to ever be a software engineer for a large company. I would give up my current compensation and jump back over to the enterprise dev/architect side of compensation before I ever did that.
Again, I already had the big house in the burbs, retirement savings, etc before AWS ever reached out to me.
If I leave my current job at the time of my choosing, it will probably be a compensation cut and probably for some unknown company.
I know for a fact that I could call up a few former managers who now work at different companies and they would give me a job faster than I could say “I am looking for…”
I don't care that you have software engineering experience, you are answering to a thread talking about leetcode interviews by saying you didn't have to leetcode because you took a non-software engineering job. Good for you, but nobody cares.
2008: when the director of software was looking for someone with a weird combination of VB6, C#, and low level C and C++
2014: when the new director of software engineering was looking for someone to be on a “tiger team” to go after a new vertical
2016: when the new director of IT was looking for someone who could lead the effort to move from PowerBuilder to C# and JS and to lead the integration efforts as they were acquiring companies
2018: when the new CTO was looking for a developer to lead the effort to make their development and CI/CD processes cloud native
2020: current job.
From 2008-2020 it was mostly developing in C# and JavaScript with a little C++ early on.
In 2018 I started getting into Python.
It’s amazing what you kind of crap you can avoid when you have 12 years of professional experience (in 2008) and a good network.
Yes my career before 2008 was unremarkable and there is a pattern that I gravitated toward positions where I was one of the first technical hires by a new manager.
Each of the jobs I mentioned between 2008-2018 were a recruiter reaching out to me that I knew from network where the director/CxO was looking for someone to help them with some type of strategic initiative. All of them were more interested in my ability to technically lead strategic initiatives than whether I could reverse a binary tree on the whiteboard.
When you can talk to a technical director about how you optimized 65C02 code as a hobby in the 80s and how you wrote inline x86 assembly to speed up a batch processing system, they don’t wonder can you maintain a compiler for Windows CE devices.
You seem to be implying "software engineers" require much more than a business degree, in which case I believe you to be a young person (< 30) and I forgive your naivety and the trolliness of your comment.
SWE is not a profession that requires deep education in math and science, like a physicist or neurologist. Having anything beyond a bachelor's in CS is not worthwhile outside of maybe ML..maybe.
A person with business degree who grinds toy problems on LC will almost always do better on FAANG coding interviews than a CS new grad with no grinding full stop.
The degree is just a stamp for junior engineers to get their foot in the door, which is no longer needed once you have a stamp from a reputable tech company.
Yes, SWE's require Computer Science, if you don't think so you've never done any real SWE work. Business majors do not teach you the problem solving ability required for even basic SWE work.
CS fundamentals can be readily learned without obtaining a degree. If you don't think so, then you've never met a self-taught programmer and are probably (no offense) someone with limited professional experience.
I’ve worked at small startups and dev shops with low hiring hiring bars and I find way more “princesses” than I have working at Tier 2 companies with leetcode interviews.
“Princess” - people that don’t take feedback, are extremely opinionated about their work, and act irrationally in regards to career or business decisions.
So do you consider a “low hiring bar” the director talking about strategy and finding out from the candidates past history that he can probably solve their real world issues?
If he needs to be at two potential customers sites (large health care companies) does he need someone who can “grind leetcode” or does he need someone that can talk to the CxO, the infrastructure team, the development team, etc without embarrassing himself?
But given a choice in 2020 of working at any large company as a software developer where I would have had to relocate and staying at smaller companies, I would have definitely chosen smaller companies.
By 2020, I already had the big overvalued house in the burbs, decent retirement savings, a good work life balance, etc.
I fell into a role at BigTech almost by accident doing the type of work I enjoy - seeing a company’s problem, solving the problem, training, and putting myself out of job and moving on.
Heck, my expenses are lower now than they were in 2020. Within the past year, I’ve sold my house, we sold our cars, and now we have a cheaper investment property/winter home where we stay half the year and we fly across the US the other half of the year staying in hotels. We own nothing physically can’t fit in three suitcases - two of which have to stay under 50 pounds.
Your situation seems unique - not many people are game for 50% travel as they hit mid career.
Consulting does offer an alternative path to engineering at big cos - usually the interview focus is on your experience and ability to interface with a customer rather than leetcode, etc.
I believe the gp was talking about the year of unemployment referred to in the original post.
I was laid off for about a month earlier this year and it was the most productive I’ve ever been, open source contributions wise. Pragmatically, I should’ve grinded leetcode but I couldn’t bring myself to do it. I was really enjoying the open source work though, a combination of react and lisp. I did talk about it during the interviews and maybe that came across.
Speaking as someone who has juggled both a full-time job and a part-time startup on the side before, I can answer this: both of them contributed immensely to my professional development, but in different ways, since the business domains were very different (which also meant developing proficiencies with different technologies and tooling).
My perspective is different - not disagreeing with yours.
My goal is to constantly be “putting myself out of a job”. That means I need to be able to recognize a problem or opportunity, understand the business context, do enough of an MVP or POC that the rest of the organization understands, train and move on.
Sometimes the internal organization doesn’t have the desire or capacity to maintain or evolve the solution. In that case it’s my job to find an outside consulting company.
Instead it’s been “Grokking Algorithms”, “The Competitive Programmers Handbook”, Alex Xu’s “System Design”, and enough leetcode that I’m actually doing more than I did at work.
What sucks is that there are still lots of medium problems I cannot do. Hards are right out. Dunno what I’ll do.
What situation are people in that they have to result to this? Is this an issue with getting laid off and trying to find a FAANG job?
I was laid off from one consulting company back in 2018 or so and had a new gig with more pay a week or so later. No leetcode or dev tests, just talking with people in phone interviews. It was a company I had previously done contract work for, and they called me, but nothing at the FAANG level.
Is it an experience issue (are the people getting laid off junior devs?), because I had maybe 6 years of dev experience across various stacks by that time. In my 10 years of being an employed dev, I have never had to do leetcode interviews.
>I was laid off from one consulting company back in 2018 or so and had a new gig with more pay a week or so later. No leetcode or dev tests, just talking with people in phone interviews. It was a company I had previously done contract work for, and they called me, but nothing at the FAANG level.
There's your answer: consulting companies and contract works.
You have a different bubble compare to the LeetCode crowds. The Leetcode crowds tend to work for Product companies as a Full-Time employee in major Hi-Tech cities. Product, Full-Time, major Hi-tech cities, hit those 3 characteristics => higher chance of getting the Leetcode interview jackpot.
Unpopular opinion: If you’re competing for a cattle job, you have to do leetcode. If you want to be a pet, you have to stand out to people who are looking for you (what you have to offer), not just any fungible developer with a pulse.
The challenge is that cattle jobs in tech have historically paid very well thanks to the free money environment. It looks initially like the right strategy: Cushy job, cushy work, much money. But the glass ceiling is hard and you won’t see it coming until suddenly you’ve had the same day-to-day for 10 years and no amount of grinding leetcode gets you to the next level.
Fortunately standing out is easy: My girlfriend got a (not-coding) FAANG-level job out of 2000 applicants in part by being one of the three people who actually read the job description and could hold an insightful conversation about what she can bring to the table.
>What situation are people in that they have to result to this?
Widespread interview advice targets the "worst-case technical interview scenario" which is doing leetcode and running a gauntlet of interviews. This casts the widest net possible in terms of how many interviews you'll pass. There's also a little bit of reasoning like "if you can handle this, you'll be able to ace the easier interviews".
The other things for job hunting - like using your network and being contacted first - are additional layers that you go through.
>In my 10 years of being an employed dev, I have never had to do leetcode interviews.
I think the reason you hear prep advice so often is that no one has any real data on how many companies are doing leetcode interviews vs. non-leetcode interviews. Because of this ambiguity, that's why you hear so much advice about preparing for the worst case.
I get interviews with "coding challenges all. the. time. IDK why, I'm a Linux systems engineer, not a programmer.
But I constantly keep getting jerks wanting btree sorts that are like a college exam or take home challenges that assume I have industry type applications on my home network. No, folks, I don't run containers and terraform infra in my personal network. When I have to spend three hours to install a dodgy application just to start your janky "8 hour project" I lose all the enthusiasm I had for your job.
In very large part what your interviews look like depends heavily on when and where you're searching, what type of job you want and what your background is. It's hard to overstate this. 2018 might as well be an entirely different universe.
That said I would be a little suspicious as a mid/senior-level developer if I got hired at a place that didn't ask me to do any coding for them at all beforehand.
20+ years in. Don't be afraid those positions can lead to a greenfield development project or come from departments that don't have someone to vet your coding preferences. Usually these positions offer more technical freedom. A company who spends more time vetting code will generally be a place with less freedom and more micromanagement.
> That said I would be a little suspicious as a mid/senior-level developer if I got hired at a place that didn't ask me to do any coding for them at all beforehand.
I'd be suspicious if they didn't ask me to do any coding, but I'd be just as suspicious if the coding they asked me to do was leetcode.
While it annoys me as well to have to brush up a little, someone who has both the discipline to review their fundamentals, and that can demonstrate they have the smarts to be good at it, that's a great sign of being a good candidate.
It serves as a great arbiter, if two people seem to have the same experience, how do you pick between the two?
And when hiring a junior, out of school, there will be no experience to go by, so what else would you assess on?
> Why are you opposed to leetcode?
> It serves as a great arbiter
I'm opposed because I don't think it serves as a great arbiter. At best, it selects for logical/academic ability, whereas IMO the most important skill as engineer is pragmatic decision making and building an appropriate solution. In practice it just selects for people who have studied leetcode (and to a lesser extent, those who have a CS degree)
> if two people seem to have the same experience, how do you pick between the two?
> And when hiring a junior, out of school, there will be no experience to go by, so what else would you assess on?
You use a technical challenge that resembles the work that the person would need to fulfil in the job. Perhaps creating a single view of a website/app for a frontend role. Or creating a few API endpoints for a backend role. Or whiteboarding through a technical architecture (with plenty of opportunity to ask clarifying questions).
> Perhaps creating a single view of a website/app for a frontend role. Or creating a few API endpoints for a backend role
Those things are relatively trivial, and easy to coach as well. If someone never did it before, you can easily show them how on the job. You also wouldn't have time to have them work that in an interview, so you'd need to do a take home, and then you can no longer validate they truly did it themselves, how much time they spent to do it, how much googling they had to do, how they approach the problem or delt with issues, etc.
I also find they tend to be framework/language specific, some companies even have internal frameworks and all that so they'd have to relearn part of it anyways.
> Or whiteboarding through a technical architecture
This is normally included as part of a "leetcode" like interview.
It tends to be a half day, where you're asked one or two system design questions, which are of the format you describe, and are asked one or two data structure and algorithms questions, and one or two small programming questions that checks your ability to write readable and maintainable code that is well structured, well organized and well factored. Sometimes the latter two are combined into one bigger question that tests both code design quality and requires an algorithm or special use of data structures to solve.
I'm sometimes involved in the interviewing process for my employer and we don't do any kind of coding tests. We do ask for them to submit a sample of their work and use it in the interview. I ask questions about the problem and about how they solved it. The code itself isn't usually that interesting, but the tangents we wander down usually are. If the person can't communicate well about a technical topic that they essentially chose, then they probably won't get an offer.
That said, I work for a small company and our turnover is pretty low. I haven't been involved in all that many hires.
This is pretty close to what my experience has been on the interviewee side. The conversations have been technical in regards to talking through problem solving, and esoteric coding philosophy conversations over lunch.
The only coding exams I've ever had to submit were while working at consulting agencies for clients that require an interview process to pick what the client regards as the best candidates for the contract.
I also worked at "very small" (15 dev consultants) to "medium-small" (300 or so technical consultants) companies, hence why I was curious if this was a bigconsulting thing or not.
So far it hasn’t been a problem. Junior candidates have shown code from a school project and others have submitted code from a personal project or from something they contributed to an open source project. I think the personal projects are the most interesting to talk about.
Expecting people to have personal projects outside work is very much selecting for a certain type of person. You're ruling out people who devote their time outside work to their families, or sport, or hobbies that don't involve programming.
I’m not ruling out anything. So far I have yet to find somebody who can’t come up with a code sample to bring to the interview. When that happens, I would probably give them a (paid) assignment. Maybe something like “fix issue #12345 on open source project X”. I’d have to think about it a little and discuss it with the candidate.
> What situation are people in that they have to result to this? Is this an issue with getting laid off and trying to find a FAANG job?
It's reflective of the type of company you're interviewing for.
I lived in Seattle for a while, and almost every startup in the area did some form of algorithm lottery interviewing, because the startups were created by ex AMZN/MS/etc employees and they just took the process they were comfortable with to the next company.
I lived in Atlanta and a few other smaller cities for a while before and after that, and no company did anything like this, because the successful tech companies were all born of people with no FAANG experience, with different backgrounds and with different experiences.
For what it’s worth in my 15+ year career I have also never had to do leetcode interviews… until now.
Part of it is that I’m pivoting from systems software (Linux kernel) to webstuff. I have zero network here, if I wanted to do systems again I’d have an easier time of it.
They're derived from cognitive sciences research and they have a high false negative rate, but it's more valuable to these companies to capture the true positives.
If you've been working 10 years you're in the peak desirability age. A few more years you'll be nearly 40, after that people are much less likely to hire you.
Last time my job was threatened, I spent a few weeks brushing up on my algorithms, going through coding challenges, reimplementing the basics (in my case, a concurrent consumer-producer queue, an IPC mechanism, etc.)
I'm an experienced systems developer with a pretty good resume, I didn't want to look stoopid if I was asked any such question in an interview.
Worked pretty well. I wasn't laid off but I ended up changing job for something more fun than my then position.
I see this all the time, "coding interviews suck", "leetcode doesn't test if you're a good coder", but in the end it's better than nothing, and having worked at places without coding interviews there's almost no bottom to people's abilities. So a low, but existing, floor is a good thing.
The biggest issue IMO is lack of flexibility. Leetcode is a specific format with specific questions, but is not necessarily the work you'll do day-to-day.
What would be great is if companies offered multiple formats including leetcode, take home, pair programming, Github review, project review, just talking, etc.
There are several issues that leetcode solves that the other ones don't work as well with or have flaws that prevent their use in some hiring processes.
Leetcode has a single rubric. The same questions and the same answers. Conducting it has minimal additional effort on the employer's side. It does have false negatives, but it has fewer false positives.
Take homes are often similar to leetcode, but some less scrupulous companies have used them for unpaid work (note that this becomes more and more of an issue as the take home becomes more and more relevant to hiring company) the and unless the interviewer has done the take home themselves to benchmark it (this should take between 1-2 hours), it is possible that the request be "do this thing that will take 20 hours."
GitHub review requires that the person have a GitHub project of sufficient size, that it isn't just copied from someone else and that they have time to work on it. There's a joke in /r/adventofcode that shows a GH repo that only has activity in December.
With pair programming, project review, and just talking the lack of a rubic becomes an issue and it becomes more likely that biases get into the interviewing process and leads to possible issues of discrimination.
When mixing any of these so that some people do leetcode, others do pair programming then it becomes an issue that not everyone is considered using the same scale and those biases and discrimination issues become even more something that legal starts wondering about if they'll have to deal with a lawsuit.
If one person can do the interview with "just talking", then that should be the same criteria that everyone uses (no leetcode) and "just talking" has an abysmal false positive rate.
You're definitely correct, I've learned a lot while practicing leetcode. Especially about my chosen language (Python). I do feel I'm a better engineer because of it.
I don't think much of what I've learned will be useful in the day-to-day SWE grind. It's really quite interesting, but I cannot recall ever having to remember the skeleton of an iterative DFS before now.
I've taken away more useful lessons from system design studying. If I had my way, I'd spend more timing finishing "Designing Data Intensive Applications" (AWESOME book), instead of figuring out why my oranges aren't rotting correctly or trying to remember how to solve the coin problem using dynamic programming instead of a greedy algo.
On the plus side, once I've got a good memory base and can solve random Mediums and some Hards, I should be OK to pass basically any technical interview - barring random chance. Right now I took a break for xmas and need to go back to it, and that is the hardest part :)
I was in the exact same situation. What I did was take a web manager job at a non-profit. I run their Wordpress website. It isn't what I was hoping for when I left marketing in the SAAS space, but it's a start and I finally enjoy going to work.
I have complete autonomy in this role and am setting things up so I'm not just managing a WP site, but actually working on the code base and learning as I go.
My thinking is it's better to get paid to learn than grind Leetcode at home (which I did for six long months).
The only value of having a knee-jerk 'startup' going is to not appear unemployed.
If it's for the optics, then I'd just move the dates of my previous side-projects around and call it a faux-startup. It's not lying. It is work you have previously done as a side-project/school-project at some point. But saying you did it in the last few months helps give the appearance of being continuously employed and not being rusty.
SWE interviewing IS a fulltime job. When unemployed, it is especially important to use that time to: [1] Reflect on what job you want for your future & [2] Work on achieving that job. Together, they will take up ALL your time. Tech recruitment wants to have their cake and eat it too. You are expected to have an excellent primary project and have time for the months it takes to Leetcode. It's unrealistic and leads to a period of overwork for candidates.
Jugaad is never optimal. But sometimes, Jugaad is necessary.
I have a decent amount of savings and a side project I want to do which could potentially earn money. Are you saying if I quit my job and do this for a year or so, it'll fill a hole in my resume and not affect future interviews?
Everytime I read these comments I feel like I work in another industry. Who cares about the gaps in your resume? Truly, have recruiters commented in anything but passing? Your interviewers?
I've hired candidates with large gaps in their resume and their reasoning for the most part was I wanted time off or I went traveling or N other things that have nothing to do with work. We. Did. Not. Care.
Pass the interview. This is the only thing we cared about at Big Tech Co.
I have the same feeling, unless your response to the question about the gap is "yea I was on the run from the law for a while because I killed some people while robbing a bank, then I had to spend some time in prison but I had a really good lawyer" I dont know how much impact it really has
It's not so much the (closed) gaps, but the time since last job. The first job after you take a year off will be harder to get. After that, most people won't care.
I don't think it matters as much as people here seem to think.
You're the current CTO of a unicorn looking for a more technical role with stability so you apply to be a staff+ engineer at Google. Now the opposite: you've taken a year off to take care of an elderly parent. In both cases, your resume is one of the lowest signals we have. You're going to need to pass that interview.
HR folks aren't even looking this closely as long as you have a resume with the right prior experiences. And almost none of these resume concerns matter with a referral.
All else equal, people with resume gaps are going to get sorted to the bottom of the pile. Maybe at the high end of the market, the FAANG staff level, there aren't enough applicants so it's not a big deal, and they'll get to those applications eventually. At the lower end of the market however, there's more competition and more likelihood that someone else from the top of the pile will get hired before they get down to the bottom.
Are you working for FAANG etc? I work a mid-level IT job, there is competition. I have no evidence but it seems like candidates who are currently unemployed (especially for a long time) will end up at the bottom of the pile. That at least would make finding a new job harder.
I would only hope to use that as a substitute for paid employment if you actually incorporate, give yourself a title, put your company on LinkedIn and otherwise treat it like a business. Noodling around on a side project that you might monetize eventually is not a substitute.
I disagree. Incorporating, giving yourself a title, and a LinkedIn page are things anyone can do. People who "play business" spend tons of time on this stuff, along with designing company logos, hiring accountants (for their zero revenue business), and lawyers (for NDAs to protect their non-existent idea.) I've seen it first hand. They'll do anything to avoid actual work: building and selling a product.
I suspect what Anon means is: if you plan to tell people your side project was your job, you should start treating it as your job.
I play around with some side projects where I don’t give a shit about user counts or GitHub stars or commercial viability, doing perhaps 4 hours work per week. If I told people this was me at the height of my powers, I’d expect them to be unimpressed.
Yes, exactly, I'm saying that what will matter to future employers is how much you treat the project as a job, and not the project itself, no matter how interesting or challenging it is from the technical side.
It won't matter as much as you think. They'll probably spend 5 minutes discussing it, if that. If you have a demo or something to show for your time, that will be a plus.
Almost every single job I've ever gotten is because of a side project or because I incorporated a small company to legitamise a side-project I was hacking on.
Over the years:
I built a video capture system for the Commodore Amiga as a neat side project for that lead to me working on Transputers that formed the heart of a non-linear editing system (no interview)
The Transputers were really fast, so I wrote some neat 3D demos that ran on the Transputer boards in the Amiga & PC => contract work with SGI (no interview)
Wrote a demo for the SGI video capture system to scan a magazine at high resolution => machine vision & robotics that was changing the printing industry (no interview)
Wrote a C compiler for an 8-bit micro so I could learn C => leads to writing a C compiler for a 16-bit micro at a company (no interview)
Created a "smart home dashboard" for a side-project => leads to writing a mobile app to manage a WiFi router => leads to becoming Lead Firmware Engineer on the project (no interview)
I wrote some stuff on the Unity3D forums => game development job offer (no interview)
Ran a number of in-person developer meet-ups over the years => various jobs & offers & contract gigs (no interview)
Got asked by a friend to teach a class on device driver development at USC, video recorded it, he sent it to his friend at Intel => wind up teaching many, many week long, rocket-science level classes on Linux & Android & device driver development & board bring-up at Intel (no interview)
Recorded all of my lectures at Intel, shared them with a friend at Facebook who was trying to get in to device driver development => Which lead to me teaching a couple of classes at Facebook (no interview)
Asked to critique a ReactNative class at Facebook due to my other teaching there => Which lead to me consulting/contracting for Facebook for a few years (no interview)
Video tape my classes at Facebook, which get shared with people at Microsoft & Apple without my knowledge => end up consulting and teaching at both Microsoft & Apple (no interview)
Created a bot for a popular MMORPG coupled with machine vision and some AI techniques => contract job to detect bots in the self-same popular MMORPG (no interview)
I created a C# package and published it that done some fancy stuff with random numbers => company hired me to work on their project that used the library (that was an "interesting" interview)
I wrote some SONY PlayStation developer tools => leads to getting a job at a game development company creating a PSX game (no interview)
Create some tools to theme websites and pull data from a database => accidentally create an adult entertainment empire (no interview)
Document how the Gameboy works, write some developer tools, maintain some developer tools => multiple jobs developing Gameboy games (no interview)
Port MAME to a bunch of consoles, write emulators as side-projects for other consoles => hired to write emulator of their classic consoles for "big console development company" (no interview)
Hacked on some gstreamer code => connection with a guy at a Canadian who says "if you're ever looking to move to Canada..."
There's lot of other examples in my career where building a side-project leads to an interview or a straight-up offer.
Have one or more side projects going all the time. If you get laid off, immediately start doing a startup, open-source project, or volunteering full time. A year of unemployment? Lonely, depressing, and not good on a resume.
A year of launching an unsuccessful venture? Running coding classes for the underserved? Focusing full-time on contributing to pytorch? That's a lot better, both at the time and in retrospect.
Side projects are also a good way to get hired. You meet people.
You also learn stuff, and stuff of the type you can't learn in a job.
You can also do the equivalent of an acquihire. If you want to work for the world's #1 drubble maker, and you spend 6 months developing a drubble startup, guess who'll come out the most knowledgeable and passionate about drubbles at the interview? And perhaps even bring in some helpful IP?
Your back story is "I tried to go it alone; I think I can do a lot more good with the backing of a company."