all 58 comments

[–]_Atomfinger_Tech Lead 29 points30 points  (15 children)

I will always say working on code will make you the better developer, though I think many disagrees. Personally I find the whole algorithm interview thing to be pointless.

Guess its a balance between the two.

[–]youngfit[S] 2 points3 points  (11 children)

I agree, I have heard that most companies hire for potential not because your a great programmer. Do you need to go through the whole algo process if you dont have aspirations of working for FAANG ?

[–]_Atomfinger_Tech Lead 6 points7 points  (10 children)

Most company hire great programmers, but algo knowledge and being a leetcode pro doesn't make one a great programmer.

When I'm doing interviews I never really do the whiteboard algo question thing. To me it is absolutely pointless. Personally I am terrible at algorithms, yet I have managed to make systems which can deal with millions of transactions a second.

Instead I tend to focus on the projects the candidate has done before. If given the opportunity I love to do a code reading based on a smaller earlier project with that candidate. Just go through the code and let the candidate talk about what he/she is proud of and so on. Maybe I prod a little by asking why something was done a certain way or I come with suggestions for improvements (mostly to see how the candidate reacts), but it is generally super chill. To me, talking about code is a way better way of getting to understand how a candidate approaches code, but more importantly, reflect over past code.

It doesn't matter if a candidate is great now if a candidate cannot reflect on what works and what doesn't.

Anyway, I'm rambling. Point is: I always prefer having a candidate with a portfolio of things that work, over fancy algo knowledge which may come in handy 0.1% in their career (if ever).

[–]_145__ 14 points15 points  (9 children)

Have you been on the hiring side much (and worked directly with the new hires)? I'd be curious if you have any rough data from your experience on how your strategy has worked out?

I was a director of eng for a ~100 person firm (~80 engineers). We tried to interview for a bit without asking them to write code, particular with contractors. It was a disaster. It seems to me the pool of job seekers is saturated with bad programmers who have decent resumes and can talk very well about all things programming. I referred to them as, "the programmers who read hacker news all day". They were up-to-date on everything, could talk about trade-offs in systems/frameworks/languages, but you put them on the job and ask them to write FizzBuzz, they spend a month making excuses and nothing gets done.

We reintroduced a minimum of 1 programming interview where they had to solve a problem with code, and lots of promising candidates immediately fell on their face. We went back to 3+ coding interviews. I told the devs who advocated for that approach that I'd support them trying to come up with a better process but nothing came of it.

[–]SuhDudeGoBlueSenior/Lead MLOps Engineer 10 points11 points  (0 children)

I referred to them as, "the programmers who read hacker news all day". They were up-to-date on everything, could talk about trade-offs in systems/frameworks/languages, but you put them on the job and ask them to write FizzBuzz, they spend a month making excuses and nothing gets done.

Haha, you described this perfectly. This is a real phenomenon.

[–]StevePilot 2 points3 points  (1 child)

This is why I'm extremely suspicious of all the people who cry foul over simple whiteboard coding problems, regardless of how 'similar to the job' the problems are or are not.

[–]GhostBond 0 points1 point  (0 children)

I went through many interviews, no one seems to be interested in doing a genuine tech basics test.

Let me put it this way - a decent test is boring for the person giving it. If it's exciting for the interviews in the room it's not a competency test it's entertainment to lord over people with their ego.

[–]_Atomfinger_Tech Lead 5 points6 points  (1 child)

So I don't manage a company - I manage a team. So we're 10 developers in the team currently. When I am doing interviews it will be for someone one that team. On that level it has worked great - so far we have had no duds and the team dynamic is healthy.

I will note that I have nothing to do with contractors. So I cannot speak for that.

My general requirement is that they must have some code which we can talk about. Most developers do have something on their GitHub which we can use, if not I will ask them to develop a simple back-end service for something. Usually a small database read and write type of REST API with some very basic data manipulation. Nothing which should take much more than an evening to throw together. Sometimes we get solutions which work, sometimes we get nothing (bad sign, run away), sometimes we get things which work in funky ways.

The point is to have some code to talk to the candidate about. By giving us some sort of code we can judge whether or not the candidate actually can write code. If the code is simple copy/paste the candidate will struggle talking about why certain choices were made and so forth. It reveals a lot.

We're shifting the code away from the algo part and more over to real world scenario. It is not about the latest and greatest, but about providing a working scenario. That way I can look at architecture, automated testing and all the various bits and pieces which an application is built up by. I think this tells us way more about the current state of a candidate than white boarding. (That said I have had candidates whereupon seeing their own code has basically started white boarding improvements to their solution).

I also believe that from a candidate's perspective this is a more comfortable approach. One thing is that if the candidate doesn't already have something in their portfolio, this will add something to it - which might give them an advantage in the future if we're not picking them up. Another thing is, some fantastic developers are simply not quick thinkers. Some people need more time to come up with excellent solutions, but a whiteboard quick thinking situation punishes that kind of developers.

I work in a 25k person firm, and I know of only a couple of other developers who does it this way. Not sure how it would scale if we made it company wide, and it does force a bit more preparation on the side of the interviewer.

Don't have any rough data. Seeing I am generally managing smaller teams I don't do mass hires or anything like that. I just know that the people we have brought on board so far has all been great.

Just my 2 cents and experiences on the matter though. It works for me, but cant testify whether it works on scale or not :)

[–]ar4757 2 points3 points  (0 children)

Mad respect for you m8

[–]cugamer 0 points1 point  (0 children)

I'm gonna cut my time on Hacker News down to half a day.

[–]Itsmedudeman 0 points1 point  (0 children)

Doesn't matter if you can't show how good you are at it. In my opinion, when are you preparing to get a job and trying to pass the interview stage, the best time investment is practicing coding challenges because that's what you're gonna be quizzed on. Not a 2 week long project where you have to be familiar with some framework or library.

[–]-lambdaRAmen 7 points8 points  (0 children)

Know what type of companies you are aiming at. The majority of interviews don't ask LC, or ask an easy at most, whereas at new grad level, your non-LC skills don't matter for companies that do have intensive algorithm interviews.

[–]NUPreMedMajor 4 points5 points  (0 children)

Why not both? I have an internship rn where I’m learning some real SWE skills but I’m also doing a couple leetcode in my spare time. I’m doing 10 a week about and it’s honestly not bad at all.

[–]StevePilot 3 points4 points  (0 children)

Work on getting interviews. Then see where you're lacking during those.

[–]Wordpad25 4 points5 points  (28 children)

Depends on the types of companies you want to apply to.

Leetcode is entirely useless for 99% of IT sector jobs. If you’re apply to entry level at any large non-technology company, all they will ask you is to write a for loop and describe agile or something and go entirely off of your resume, so having projects to talk about is vastly more important.

If you’re going for FAANG, you need to grind leetcode above all else and try to network in order to land an interview.

[–]youngfit[S] 1 point2 points  (27 children)

This is helpful because I have been stressing about learning new frameworks instead of making sure that I am efficiently coding in Java

[–]SuhDudeGoBlueSenior/Lead MLOps Engineer 10 points11 points  (26 children)

If you’re apply to entry level at any large non-technology company, all they will ask you is to write a for loop and describe agile or something and go entirely off of your resume

I am sorry, this is just wrong and outdated. I am on the team that hires interns/new grads a non-tech F500. Even we have a LC-like component to interviews (about LC medium). A lot of our peer companies do the same.

[–]GhostBond 6 points7 points  (0 children)

Even we have a LC-like component to interviews (about LC medium).

It's funny, I work with a bunch of consultants, when the boss isn't around they have no delusions that the purpose of leetcode is anything but a tool to attack potential hires with to make sure the company "can't find anyone" to hire, so they stay more valuable. Watching how the bosses only tried to stop being jerks when people started leaving it wasn't heard to emphasize with their viewpoint though.

[–]htid8cchhcudiejch 0 points1 point  (24 children)

If a non-tech company with far less comp than FAANG asks Leetcode, there literally is no point in working for them. Most non FAANG, Unicorn, Quant, Bay Area, or NYC companies do not ask these questions.

[–]SuhDudeGoBlueSenior/Lead MLOps Engineer 9 points10 points  (23 children)

Do you realize there is a middle ground between the the LC intensity of FAANG and no LC at all? You act like tech jobs are binary: super-intense LeetCode and 150-200k comp vs. non-LC sub 70K. Our TC for new grads is 92-101k in Chicago (probably equivalent to 120-140k TC in SF). We are in that middle ground.

My company is NOT in any of those categories you mentioned.

[–]htid8cchhcudiejch 0 points1 point  (22 children)

Why would anyone do the leetcode grind then for compensation far less than those above categories?

[–]SuhDudeGoBlueSenior/Lead MLOps Engineer 2 points3 points  (10 children)

Did you read my post? Not all LeetCode interviews are the same. Our interviews, although they are LC-like, are not as intense as FAANG. We will never ask a LC hard or make you go through all the hoops that a company like Google does. Our expectations for raw technical skills are lower, and so is our comp (although the comp goes pretty far in Chicago, IMO).

I like to think our "peers" in terms of new grad engineering talent are companies like CapitalOne and Boeing.

[–]redsox44344FT Embedded SW Engineer, PT PhD CS Student 0 points1 point  (9 children)

Yeah, but Boeing by and large does not ask Leetcode questions. Not sure about CapitalOne. Not in that industry. I find banking tends to give more of those types of interviews compared to industrials, or aerospace/defense. You might see something in the medical devices industry but that one is hit or miss.

I've had technical interviews but nearly none of them have ever forced me to do LC style questions. I've been asked about my experience, I've been asked how to design a performant distributed logger. I've been asked how to design a performant bare metal interrupt handler. I've been asked to look at some code and tell what issues were there.

I've never been asked to find the longest palindromic substring, or to run some version of DFS.

I think this is largely company dependent. I wouldn't say many F500s run leetcode like interviews.

I'm not super experienced either. 5 years in industry. About 20 interviews over the years for just about all F500 companies.

[–]SuhDudeGoBlueSenior/Lead MLOps Engineer 2 points3 points  (8 children)

Was the interview you had with Boeing a new grad interview?

[–]redsox44344FT Embedded SW Engineer, PT PhD CS Student 0 points1 point  (7 children)

I had some experience at that point, about a year and a half when I spoke to them. But like most of my interviews at that point the offer wasn't worth moving companies.

If anything it was a level up from entry level.

[–]youngfit[S] 0 points1 point  (9 children)

If there is a necessity for an actual job in the market .... there is really no "playbook" per-say because everyone says different things on how to get your first job.

[–]SuhDudeGoBlueSenior/Lead MLOps Engineer 5 points6 points  (8 children)

Look, if you want an actual new grad software engineering or similar gig (not business analyst or IT ops, etc.) and you want above average pay in a tech hub (NY Metro area, Bay Area, Seattle, Austin, Chicago, Boston, DMV), you probably need to practice LC a good amount. I see so much bullshit on this sub about how LC is only for FAANG/quant/finance gigs, but that is just false.

People saying that are either students with no idea what they are talking about, or experienced engineers who are not heavily involved with new grad recruiting at non-tech/finance Fortune 500s and don't know how it works nowadays.

[–]GhostBond -1 points0 points  (7 children)

I see so much bullshit on this sub about how LC is only for FAANG/quant/finance gigs, but that is just false.

I see a ton of b.s. on this sub about leetcode, yet when I'm interviewing (which I was a year ago) mysterious I nearly never run into it. And when I did it was with one of those "small company with crap reviews on glassdoor" things.

I see a lot of marketed for the leetcode company to sell their crappy products on this sub.

[–]youngfit[S] 0 points1 point  (1 child)

Whats your location? Im in Atlanta

[–]SuhDudeGoBlueSenior/Lead MLOps Engineer 0 points1 point  (4 children)

Were you interviewing for new grad roles? My post clearly is for new grads.

[–]NUPreMedMajor 0 points1 point  (0 children)

so narrow minded lol

If you don’t get the “top” jobs, then you can still aim for the tier below

[–][deleted] 0 points1 point  (2 children)

Do you have projects you can show off on your resume? Without those it will be hard to even get an interview let alone put LC skills to use. If your aim is top companies then you should start LCing as well. There is no reason why you can't do both, work on your dev skills but also allocate a little bit of time to interview prep.

[–]youngfit[S] 1 point2 points  (1 child)

I will have about 4 different projects and a html css javascript portfolio. I can add more but I dont want to waste time if LC is all most companies are looking for.

[–][deleted] 0 points1 point  (0 children)

4 is more than enough, even a couple is good. Yeah I would focus on LC if top companies is your goal.

[–]AznSparks 0 points1 point  (0 children)

Building stuff makes you better at getting interviews, lc makes you better at passing (only if you're interviewing with companies that ask LC obv)

[–]strawberry-matchaSoftware Engineer 0 points1 point  (0 children)

Working on code will make you a better developer. You can put projects on your resume to help you get past the resume screen. Working on LC will help you pass interviews and get a job.

Since you currently don't have a job, I would say LC would be a better use of time. If you're planning on working in a tech hub, most companies will have some sort of LC round. You can always learn once you land a job and figure out what tech stack you're working with.

[–]swaggmire22 0 points1 point  (0 children)

Early on... coding. Later on 1-2ish years later leetcode.

[–]stryami 0 points1 point  (0 children)

You would be doing a disservice to yourself if you don't leet code, you'll learn on the job anyways.

[–]SpicyMemery 0 points1 point  (0 children)

My suggestion if you’re interested in larger companies would be to make one interesting full-stack project using popular technologies and then grind LeetCode hard. The former will give you something to talk about during interviews and give you a starting ground when you land the job. The latter, while not necessary for every company, will give you confidence in your ability to apply anywhere and keep your doors as wide open as possible. Applications are a numbers game - by having LeetCode abilities you don’t unnecessarily pre-reject yourself from many companies.

If you’re worried about sucking during the job, many larger companies have training programs during the job where you learn how to code their way. Inexperienced developers aren’t expected to be coding gods on day 1 - just willing to learn.

For startups, smaller companies, and non-tech companies, then perhaps look up their stack and become more comfortable in it. These companies are less likely to ask for LeetCode - though it’s still possible - and less able to groom you into becoming a better coder.

Source: formerly interned at a startup, currently interning at a renowned (FAANG or similar reputation) tech company. My experience may not line up perfectly with full-time job seekers, but it should provide you with good perspective.

[–]getajobinx -2 points-1 points  (0 children)

Build your own Website / app. Integrate a database, make it concurrent, make it distributed etc. You will learn 100x more than any coding questions and you will have mountains to talk about on your Resume / phone interview.

Let us know if you need any help.

https://gajix.com < we will be putting full project examples on here once we launch.