Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How to get a job while having a job?
99 points by samfisher83 on Dec 7, 2018 | hide | past | favorite | 49 comments
All these hackerrank/leetcode tests + White board tests + all day interviews. How is it possible to work a full time job and dedicate enough time to get another job? Especially if you have been out of school for while. I got like 100 on my algorithms classes, but its been so long ago and its not like most developers write red black trees, suffix tree, heaps etc. I have started to review this stuff and it takes so much time.

Why can't we have some sort licensing board like a medical board so that you prove you can code, and then interviews aren't so time consuming.

I just went through this so let me give you my thoughts/experience.

Separate work and job-hunting as two different skill sets in your mind.

Use any note-taking tool of your choice (I used EverNote) and write up:

- Standard algorithm questions and answers to quickly revise on

- Soft questions (like name a time you rose to the challenge/etc) with pre-prepared answers.

- ANY f*ckups from previous interviews and how to not do that again

- ALL tech questions you were asked + solutions to revise.

I hope you get the gist of what I'm saying here. Job-hunting is a "mode" you enter in. It's like preparing for an exam where you're learning a whole bunch of stuff before-hand, but knowing very well that once the exam is over you'll forget everything.

This has already happened to you with algorithms. Same thing goes with jobs. You'll enter into algo-solving and interviewing mode, but once you have an offer you'll have the luxury of forgetting it all once you start working.

It's when you're back on the path of finding a job again that these notes you've taken serve as an anchor for quickly getting back into that job-hunting mode.

It's served me for years.

All the best.

Funny thing about the hiring sieve is just going through enough interviews prepares you at some point enough to pass somebody's hiring bar. So it's not that you were actually worthy of being hired, rather it's that you had studied for the test enough at that point.

The whole thing is mildly comical.

It sounds like you are applying cold and going through the process used to filter the unwashed masses (e.g. new bootcamp grads, college grads, career changers with no network, fakers of all stripes). There are some diamonds in the rough there but it's no surprise they put that candidate population through the ringer to make sure they don't waste their engineering staff's time screening duds.

If you've been working for a while it's much more efficient to get jobs through your personal network. I have about 4.5 years of industry experience and was able to skip directly to the final round onsite with a couple companies where I have close friends/former colleagues trying to recruit me. I just started a new job with desireable BigCo that I got this way. Unless you are specifically passionate about getting in with a specific company to work on a specific product, you're much better off focusing your energy on companies where you know people who will vouch for you.

I am actually guilty of this- I'm trying to overcome my fear of being more friendly at work. I'm seen as the serious guy who doesn't talk to anyone (outside of work-related matters). The result of me not being more social for 10 years since college means that I don't really get contacted by colleagues, and I always have to go in cold with a new job. I don't have any "voucher" people.

TBH the whole thing about getting ahead more easily to jobs through common friends, man does it remind me of nightclubs. I don't care about having a personal entourage, but the industry seems to be forcing me to. I'm just trying to live a happy career and life without needing to be popular and stuff.

And while I do have friends I've made in high school, they're a small group and they've never given me good leads. I don't generally see them as people I rely on for jobs. They're in totally different work fields and the kind of people who can't tell programmers apart from IT.

Why wasn't building a good network second nature with me, I don't know. But want to know why I don't have the intuition, and how to fix that.

So it sounds like building your network is a more valuable thing to do than study for all-day interviews.

However, why should some well-connected person want to talk to some bozo who's only giving them the time of day to job hunt? Especially in a career like ours that isn't dominated by talking like sales is?

You should study. You still have to have the chops to pass a full-day onsite. Having a contact from your network trying to bring you in just cuts down on the amount of pointless hoop-jumping.

Building and maintaining a professional network is something you should be doing all the time. If you wait until you need a job to network you are doing it wrong.

Well then I must be doing it wrong because all I want to do after work is relax and not talk to anyone and sometimes play video games. I still want to be recognized for the work that I do but apparently that's not enough.

Maybe I have Asperger's or something else, but this whole thing about relying on connections to get jobs more easily doesn't come naturally to me.

I actually think our careers are dominated by talking. At least my experience is that talking is very, very important.

I find I usually don't want to work for the companies people I know work at, and when I have been vouched I still need to go through every round. I'm not in the US, so there is no FAANG jobs. So YMMV

From my experience, if you recommend someone they still need to go through the interview process.

You have to plan ahead. Use lunch breaks to talk to recruiters (don't do it in the office). Bank up vacation time to go on interviews. Use the occasional sick day to handle last-minute requests, but don't abuse it.

We all do this. Yes, it's a hassle.

I am in the exact same situation - I am trying to get into machine learning from being a web developer so I am learning a lot of new things too.

After months of not finding time to do courses online, I've been studying between 5-7am for the last couple of weeks. Previously I would wake up, go straight to work, come back home tired and waste time on Netflix before going to bed. Now I spend less time for entertainment after work and sleep sooner because I have to wake up early.

This may not help you but thought I would share my experience.

Edit: Reading your question again and looking at the other comment, looks like your question may not be about time management so this may be irrelevant.

How do you stay motivated? Do you have negative days, days full of doubt, insecurities, etc.?

Back when I was a student, I had to find a job so I put in a lot of effort.. until I found a job and settled in nicely. Couple years in, I am now familiar with the team and our stack so it takes less effort to keep up to date. I have a lot less free time than before due to the full-time job but I spend a larger percentage of it on unproductive things - lack of motivation when everything is cozy.

My situation has changed a little bit now (due to some deadlines) and though I can find a web developer job more easily, I want to give it my best shot trying to get an ML job, since I have realized I might never do it if I don't do it now.

Luckily I don't have a lot of those negative thoughts/days. I've felt bad a couple of times for wasting too much time on that particular day but I think of the overall progress I've made and get over it pretty quickly.

I'm curious as to your mentality here? - you make it sound like a real chore to learn machine learning, but also that it's something you want to get into.

I've found that if I want to get into something, it's a real pleasure to research, learn, tinker - that is my entertainment & relaxation.

I didn't mean to sound like that - does allocating time come across that way?

This is something that has frustrated me - I thoroughly enjoy learning new things and these online courses and yet I wasn't spending time on these things. After work, it's a lot easier to just switch on Netflix from the couch and let it autoplay. If they had Udacity on FireTV, I would have probably used that instead of Netflix. I'm thinking this is also because I am mentally spent after work and it takes more to study vs Netflix.

It's almost like we need a piece of paper from something like an accredited institution of some sort.

----- I'm just kidding but it is really expensive to hire and fire a poor performer. These are high paying jobs where bugs can mean loss of revenue so it makes sense that they want the best.

Honestly, you should be reviewing algorithms every few years so you never fully lose it... not just when you need a new job.

Update: You should not be trying to memorize problems but learn the 10ish basic algos... and understand how to quickly classify a problem as solvable with a specific algo. It makes the entire process less daunting.

I'm just kidding but it is really expensive to hire and fire a poor performer.

Using the simple Joel Spolsky criteria for hiring, “smart and gets things done”, the only thing that testing whether someone can do algorithms is testing is whether they are smart.

There are plenty of people who are smart but don’t have the follow through to get things done and are always distracted by the “ooh shiny”.

I think it also tests pattern recognition and attention to detail. I definitely think most jobs don't require deep algorithmic knowledge but given the choice...

Yes, the system sucks. That said, there are ways you can deal with it. Everyone's situation is different, and I don't know yours. But there's basically two main approaches you can take:

1) Don't devote much time to studying, and focus on companies that don't rely on whiteboarding leetcode-style interviews. They're harder to find, but they exist. FAANG probably isn't going to be an option, unless you get lucky.

2) Go all-in on studying. Make the time. Even an hour a day. Cut back on work and social obligations. Chip away at problems for several months. Keep track of the ones you get stuck on and re-do them a few weeks later. Try some practice interviews at sites like interviewing.io with real humans, and listen to their feedback. Repeat, repeat until you feel more confident. It takes time, but it pays off.

First point is great. It also removes a lot of stress if you decide to go in with the mindset of "well, if they ask me a bunch of algo brain teasers I'll just walk out". Instead of grinding on leetcode, you can put together notes on the most impactful work you've done (hard numbers are good here), or study language/system mechanics.

Is whiteboard interviews a sv thing? Because they seem to be rare in the Midwest? Maybe I've just been lucky. But they seem like an incredibly poor way to interview someone.

I’m curious to know what you think a better way would be?

It's fairly easy. Give a problem, for the person to work on, they code it, they might need some hints or direction. Interviews are already stressful. Get the person actually coding, doing something. Whiteboard interviews are just plain stupid. Whiteboard is maybe 1 percent of the day to day. Why in the world would you judge a candidate on that over actually testing their abilities and more importantly their ability to interact and adapt

I'll be crude but whiteboard interviews are fucking stupid, obnoxious and wastes time, you will definitely miss out on quality candidates. You might as throw a personality test in for the ultimate combo of "how to fail at hiring"

I find it doubtful that you are asking in good faith.

This is a topic that has been discussed to death for years and there are ample resources on the Internet for anyone who is genuinely interested in alternative approaches to whiteboard interviewing.

It’s not really that difficult.

I have a simplified skeleton of class that is similar to the problems we solve every day and failing unit tests.

They have to make the unit tests pass.

Then I give them a second set of requirements and they have to make the second set of tests pass without breaking the first set.

Honestly, tech interviews are really simple to conduct. Give a few challenges. See if they stumble hard. See how they interact (quite frankly the most important aspect if they have any technical experience). Give hints if necessary. Interviews are stressful enough, so a small nudge is fine. But you can definitely tell who is capable, and those that don't have the experience pretty quickly.

I'm in the northeast, and I've found them to be pretty common. But I've interviewed a few places that did not do them.

I will never conduct a white board style interview, and in the future while interviewing the company, never take one. That is an automatic pass. Hell I'd recommend hiring someone that simply said "no" to that style of interview

Doctors still have interviews even though they are licenced. As issa said, an interview tests your personality, ability to think on your feet and even how committed you are to the application - the effort proves you are very interested.

I totally agree on better industry accreditation though, it would be good to prove a basic level of qualification and experience although we have all met people who are great on paper and useless in real-life!

> Why can't we have some sort licensing board like a medical board so that you prove you can code, and then interviews aren't so time consuming.

That's a really interesting point. I think you may have just nailed why the software developer hiring process is so broken right now.

Our industry is about at the stage of maturity where civil engineering or medicine were circa the turn of the 20th century when state accreditation boards began licensing in those industries.

I actually don't have a CS degree at all and admittedly poor understanding of algorithms and data structures as I originally was educated in code at an art school. But after 16 years writing code, due to the increasing amount of gatekeeping being put up around CS fundamentals I'm actually going "back to school" right now, taking online courseware to gain at least some rudimentary online certificates in those CS areas just to demonstrate that I'm qualified to continue working in the industry.

It would actually be quite nice to have a real board certification in this stuff to study towards, rather than some BS online course certificate, or worse, having to re-do my entire undergrad 16 years into my career...

Some kind of accreditation for software would save our industry so much time. It's crazy how many hours we spend asking and answering the same basic questions over and over. Imagine if we could focus on the important stuff in interviews!

Accreditation just acts as another "has a college degree" filter. There is already a proliferation of certifications that people can attain if they wish, that may or may not help them in specific instances that try to "give you a minimum level of knowledge", but really that just means the questions you get asked assume you know that - ie they are harder and incorporate your algorithm knowledge, instead of specifically saying "code bubble sort". I don't think that's any better to be honest.

And the bar exams are just another "has a college degree" filter too, but they've been proven to work as a useful metric, and they are overseen by an association of professionals. And legal knowledge is way more open-ended than software knowledge, with far more subtleties in its practice. Yet. The bar exam somehow works.

>Why can't we have some sort licensing board like a medical board so that you prove you can code

Too many software developers have a strong aversion to regulatory bodies in their own profession. That really is the issue here.

I think that in the case of software, a necessary requirement would be to have some work experience and to have someone who is also accredited to sign off on that experience BEFORE you get to take the test. It's not the same as a college degree filter, which doesn't really say anything about a person's ability to do useful work.

I wish there was one that would actually count. For Example if you pass the boards its a pretty rigorous test and they won't be asking you what the krebs cycle is.

I don't know enough about the boards or how doctors interview, but doesn't this just move the puck in the interview process?

For a lot of the things we build in engineering that kind of qualification would be ludicrous, yet we've created another barrier for a variety of people where there doesn't have to be one.

"Must have Super Engineer Accreditation(tm)" - it'll be the new college degree. How much does it cost to get? How much time? The girl who doesn't need to work can study all she wants and pass without having to do nights and weekends for months / years etc.

start studying[1] for the annoying whiteboard interviews. we all hate it, we all have to deal with it.

apply for some jobs you aren't that interested in to get used to interviewing again. you will typically get phone interviewed first so not much risk of interfering with your job.

you may need to take vacation (sick days) for some interviews.

[1] https://github.com/mtdvio/every-programmer-should-know

If you’ve been out of school for awhile and have real world experience, if you’re anywhere outside of Silicon Valley and the West Coast, you shouldn’t be competing for jobs where they are asking you to “invert a binary tree”. I don’t think I had a single leetCode technical question for the job I have now.

I am supposedly a senior developer, but I was asked:

To whiteboard a system that I designed and asked me how I designed it for high availability, scalability, etc.

How would I improve the current process to bring in CI/CD.

My theory on automation testing.

My previous job interview was similar, I was interviewing for a lead dev position without knowing it. He asked me 30/60/90 day plan to create a software development department to ship some green field projects and to rescue a project that had gone off the rails.

Any company that is more concerned with whether their senior developers can write algorithms than whether they can ship features and architect systems is not a company I am going to work for. It’s probably a company full of architect astronaughts who couldn’t ship if their life depended on it.

Then again, I don’t live in SV but so do live in a major metropolitan area.

There shouldn't be many all-day interviews. If you are honest on your resume and there is a phone screen, your chances with the interview should be pretty decent.

The company doesn't like all-day interviews any more than you do. Multiple highly-paid people get distracted from their normal duties to interview you. With both you and the employer having a cost to bear, the interview should mean that both you and the employer are pretty serious about you being hired.

Sadly, this is not true. I live in the bay area and most startups here, need you in person for their day of interviews. The industry standard seems to be 1 soft skill/ HR discussion + 1 technical phone screen + 1 day of technical interviews(4-6). And as optimistic as one can be, it's hard to find the right (job + company + people) combo in the first try, since it's hard to judge certain aspects from a HR call and a technical interview which is usually a 45-60min call where most of the time is spent coding. This leads you to interview in-person at places where you might not like the company culture/ team/ leadership/ commute/ etc. It is true that a lot of resources go into interviewing from the company's perspective but it is also pretty much the same for an interviewee.

> There shouldn't be many all-day interviews. If you are honest on your resume and there is a phone screen, your chances with the interview should be pretty decent.

While it's nice to think this is true in an ideal world, having been on both sides of the interview in numerous companies in Silicon Valley (even having done hundreds of interviews in a big company I had worked in), this is remarkably false. (Sorry, didn't intend to be mean, just stating how it is.)

Both in terms of candidates that I've interviewed, as well as when I'm a candidate myself, pass rates for on-site interviews are quite low. I'm not selective as an interviewer, but when everyone else is unreasonably selective, there's not much I can do as a lone interviewer who gives a "Hire" to candidates I thought were fine.

I think one reason is that the interview process isn't JUST designed to check if you can code. While I agree that the process is broken, there are legitimate reasons why companies put up high barriers to entry.

The problem isn't a high barrier to entry, what's tested is a separate skill set. It's like testing a carpenter's skill by looking at how good he hits with the hammer.

I feel like you can tell a lot about a person by observing how they perform their craft. Swinging a hammer probably doesn't offer too much insight when done properly, when its done wrong, feels like a tip of the iceberg situation.

I would like to think we have a problem if a carpenter is unable to wield his hammer properly.

Please don't hurt the metaphors. They have feelings too.

I think people often worry too much about behind punished for seeking another job. Any way to be honest with your current employer and use pto for business hours communications?

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact