“Now I’ll have time for my projects!!”
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 would be great is if companies offered multiple formats including leetcode, take home, pair programming, Github review, project review, just talking, etc.
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.
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 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.
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.
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.
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?
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).
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.
That said, I work for a small company and our turnover is pretty low. I haven't been involved in all that many hires.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
That said, I like early-stage startups, so less of a problem with that kind of thing.
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.
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 most likely are an SA, which is a position open even to business degree holders and is barely technical, no wonder you didn't have to LeetCode.
- 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.
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.
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.
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.
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.
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…”
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.
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.
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.
Money makes life easier. It isn’t the goal of your life. We aren’t playing a video game where the person who made the most money “wins” at life.
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.
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.
“Princess” - people that don’t take feedback, are extremely opinionated about their work, and act irrationally in regards to career or business decisions.
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?
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.
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.
I don’t do staff augmentation.
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
> 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.
Completely different.
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.
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.
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.
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?
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.
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.
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.
thanks to our project's success we now get more and higher offers now that we ever did in our lives
however, there's no way back for us
we left for a reason, with a concrete goal in mind
not just because we could
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.
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?
And there are six sides to every cube. In a world of tortured dichotomies, nobody ever mentions those.
With three kids, my current side project is my day job, at least if measuring by workload. Talking 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.
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.
I don't know if I agree, but let's not twist the words of the comment.
Do you really want people to devote their life to their jobs, even while unemployed?
I don't see a thing wrong with spending your down time doing whatever makes you happy.
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!
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.
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.
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.
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.
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.
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.
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.
(I've never had a resume gap but that's going to be my explanation if/when I do.)
[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.
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.
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.
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.
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.
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'm 4 months into a break from work and the only thing that is depressing is the idea of going back to work.
I think if this quote resonates with you, you probably need a break from work and analyze your life.
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."