
Ask HN: Career advice needed - UsernameTaken3
Dear HN,<p>I am PhD student graduating soon and I am looking for career opportunities. I am having trouble with the job hunt though.<p>A little bit about me... I am not software engineer, but I do lots of programming in C&#x2F;C++&#x2F;OOP. I have done some advanced things, wrote many lines of code, and completed many projects. The catch is that I do all of my programming with the help of the interwebs.<p>I also work with the TCP&#x2F;IP abstraction. My research is in the networking field where I try to improve communication streams. I test protocols, modify them, design them, implement them, whatever I need to do. I usually do this using C&#x2F;C++.<p>I have an interest in security and cryptography. I took a few courses at school and I follow some online courses and forums. I implemented some crypto things for fun, such as AES-128 ECB, from scratch. I also worked on blockchain projects that required crypto knowledge and implementation of related methods. I implement my security&#x2F;crypto projects in C&#x2F;C++ as well.<p>The problem is that I am doing these job interviews where they ask me about implementing something for a BST or something similar. I am not successful at answering interview questions of this type. I understand the logic behind them but I do feel that these types of interviews are inadequate at measuring a candidates potential. Am I applying to the wrong jobs? Any suggestion are appreciated!<p>Thank You!
======
itamarst
1\. Find a company that doesn't do irrelevant whiteboard/puzzle interviews.
Here's a list:
[https://airtable.com/shr5TdnpVYVTpeRrN/tbluCbToxQ2knSLhh](https://airtable.com/shr5TdnpVYVTpeRrN/tbluCbToxQ2knSLhh)

2\. Negotiate the terms of the interview: "hey instead of whiteboard puzzles
here is some code I wrote that demonstrates my abilities."

3\. Practice these, if you don't get anywhere. It's a bunch of work, but they
tend to be repetitive. But you can also take control of the interview, e.g. by
saying things like "I will write tests first", and sometimes the process for
solving will impress them too.

Long version: [https://codewithoutrules.com/2018/07/29/getting-a-job-
withou...](https://codewithoutrules.com/2018/07/29/getting-a-job-without-
whiteboard-puzzles/)

------
rafiki6
You are right, these questions are generally a terribly signal towards your
capabilities or intelligence. They require a disproportionate amount of effort
on your part. Now that we got the complaining out of the way, if you are
interested in getting jobs in this industry, I'd recommend practicing
implementations of these standard questions in your favorite language and just
saving them somewhere to review occasionally. There's a pattern to most of the
questions and they usually tend to fall on figuring out an algorithmic trick
or using a special data structure. It's ridiculous how many things are
solvable in an efficient manner with a hash table...in a contrived interview
question that is ;)

~~~
UsernameTaken3
For my next interview I will start talking about hash tables and hope for the
best!

~~~
rafiki6
Well obviously make sure that it's the appropriate solution. I just find that
many times the solution tends to favour a data structure which allows for
constant time access. It really depends obviously on the interviewer.

------
hluska
Let's get something big out of the way. Interviewing sucks. Interviewing after
spending enough time in academia to get a PhD sucks even worse. I would equate
it to devoting your entire adult life to learning how to think, then
approaching graduation, needing a job and suddenly needing to learn how to
think all over again. That's frustrating and you're pissed off for good
reason.

An interview process is always hard, but I think you're in the midst of an
exceptionally hard process. How are you caring for yourself? What do you do to
relax?

My best advice, based on many frustrating interview processes is that when
you're going through hell, keep going. That's been attributed to Winston
Churchill, but I don't have time to research whether that attribution was
correct.

If you keep going, you will get something. You're very, very smart. You can do
this. You will do this.

Best of luck and if you need to vent, my email address is on my profile.

~~~
UsernameTaken3
Thanks Hluska! I appreciate the venting option! Very little time to do things
around here. My life is research, school work, course TA, chores around the
house, and finally my favorite part, 6 - 8 hours of much needed sleep.

I will keep going at it, but these kinds of job interviews are definitely a
turn off from the company itself.

------
honkycat
Everyone complains about the white-board interview. And I get it: They are
lame. But developers have been dealing with them for years, nobody has managed
to kill them yet. You gotta learn to live with them.

These interviews are looking for specific things while you work through these
problems. They do not necessarily want you to answer the question exactly
correct. They want to see you work and see where you are at.

Intro level jobs are competitive right now. The search will be slightly harder
but there are still jobs out there.

Know what is happening in these interviews before you go into them. There are
a number of books specifically about code interviews and how to pass them.
Read them. STUDY FOR THE INTERVIEWS instead of complaining as if you are owed
a job.

None of us like the whiteboard interviews. It is a good dog-whistle for a good
education which, despite what people say, is still worth something to these
companies.

~~~
UsernameTaken3
I will study for any interview, I do not have a problem with that. During the
interview when they asked me about BSTs, although I never used them in my
life, I was still able to write some code using the instructions given by the
interviewer. I can imagine that if I studied for them I would have done just
fine.

When the interview was setup I was told it was going to be about gdb/valgrind.
When the interview took place, BSTs were involved, I answered the basic stuff
such traversing it, finding the min/max, some other functions, but I was not
able to answer some tricky questions later towards the end.

~~~
honkycat
That's fair, I should have been nicer. I am sorry.

I do still highly recommend picking up a book specifically about coding
interviews as I have found them helpful

------
rboyd
Congratulations on the PhD and welcome to industry! This is your introduction
to the bizarre hazing ritual we've had going for decades. Many many companies
use the algo/ds knowledge filter as proxy for IQ test.

You get to decide between a) drilling leetcode for a couple of months, at
which time you know the shibboleth and whisper it at large swaths of companies
to gain admittance; or b) look for companies that go with a more liberal but
likely still uncomfortable interview ritual.

~~~
UsernameTaken3
Any examples of companies that are more liberal would be really appreciated!

------
rayvy
> Am I applying to the wrong jobs?

I believe you're applying to the right jobs, it's probably just that the
interviewers are trying to do what they think is the "popular" way of going
about technical interviews.

Best way to handle this IMO - ask yourself: _Are you ok with putting up with
this in order to get the job?_ If so, study study study. Buy the recommended
books (there are tons of HN threads on this topic) and study! However, if you
decide that you're not going to be the monkey boy for anyone, only go so far
as displaying that you know the fundamentals of sound programming (e.g.,
binary search, linked lists, all basic data structures, etc). None of the
crazy/wacky/never-used stuff.

A lot of modern interviewing isn't about _finding talented programmers_ , it's
about finding those who know how to follow _their_ (albeit implicit) rules.
You study, we give you the job, you don't, we won't.

Edit: change "the" to "your" in last sentence

~~~
UsernameTaken3
> A lot of modern interviewing isn't about finding talented programmers, it's
> about finding those who know how to follow their (albeit implicit) rules.
> You study, we give you the job, you don't, we won't.

From my perspective it feels like that. For some reason, it also feels like
there is a gun pointed at me when doing these kinds of job interviews.

------
karmakaze
> feel that these types of interviews are inadequate at measuring a candidates
> potential

This isn't meant to measure potential. It also isn't to make you feel good
about the process. It's to give the employer some assurance that the candidate
can think through not only the problem but how to implement a solution. It's
not enough to understand the theory and be able to write whitepapers about it.
It likely exists because other candidates have got through the process but
were not effective. It likely won't apply to you, but they just want to do
some up-front filtering. If you want to find a research position that doesn't
involve implementations as a deliverable, then perhaps you could apply for
those if they exist.

~~~
hotdox
>It likely exists because other candidates have got through the process but
were not effective.

No, just someday someone decided to add this to interview process.

------
matt_the_bass
My $0.02:

\- try applying for an internship. One of our swe has a PhD in chemical
engineering. They pivoted their career but started as an intern.

\- are you looking for a job in the US? Are you a US Person (citizen or perm
resident)? if so, be sure to explictly state that. Don’t just say authorized
for work in US. That could mean OPT and many companies won’t bother with that
and won’t bother to investigate. In general US companies are not allowed to
require us citizens but they are allowed to require “perminant legal right to
work in US”. That means citizen or green card.

~~~
UsernameTaken3
Unfortunately I cannot do internships as I am out of time/graduating soon.
Also, I was not able to do any internships during my program due to many
reasons outside of my control/non-negotiable.

I am outside the US.

------
world32
Exactly what kind of jobs are you applying to? Are they mostly software
developer jobs?

I hate these kind of white board coding questions, but if its what you need to
do to get the job you want, why not just bite the bullet and practice these
kind of coding exercises? Clearly from your experience you are capable of
learning/memorising this stuff..

Yes its a pain in the ar*e but if its what you need to do then its what you
need to do.

