Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Locked thread
baquerd
Jul 2, 2007

by FactsAreUseless
This is a thread to share the worst (and best) coding interview experiences, from either side of the table.

Here are some memorable candidates I've had to get us started:

quote:

Given an IDE with unit tests already written and asked to implement a class, states "Oh, I don't really like to use those, I prefer whiteboarding". Proceeds to get super confused about how to write "if" statements in an IDE.

quote:

Simple behavioral question of "Tell me about a time when you had to resolve an interpersonal conflict" leads to half hour rant about their former boss and co-workers culminating in a racist tirade blaming "sand-niggers" for problems with the software industry

quote:

10 years experience on resume, spent 5 minutes trying to figure out why initializing a variable inside a for loop isn't accessible outside the loop. Spent another 10 minutes figuring out why the JUnit assertTrue() function wasn't defined in the class.

quote:

"I don't really want to code, I want to manage people, but I think it would be valuable experience for me to be a software engineer"

quote:

Dozens of people who turn directly to regex when given simple algorithm questions involving Strings (e.g. anagrams or bracket matching)

quote:

Team leads who totally get the "big picture" and can understand complex interactions between distributed software components, but can't code FizzBuzz even after being reminded about the modulo operator

Adbot
ADBOT LOVES YOU

baquerd
Jul 2, 2007

by FactsAreUseless
A guy comes in with a very impressive resume and I start asking him about the technologies used and why they were chosen.

"I used cloud technologies"
What ones?
"There are many cloud technologies being used, I made sure to evaluate each and came to use the best ones for the job"
OK, but what specifically?
"Well, cloud technologies are highly available and distributed software that are really exciting."
So did you use AWS, Azure, what?
"AWS, Azure, yes"
What are some AWS technologies you used?
"I used EC2"
OK, that's great, what did you use it for?
"I used it for the ability to leverage the cloud technologies"
:fuckoff:

baquerd
Jul 2, 2007

by FactsAreUseless

ToxicSlurpee posted:

But yeah...it seemed like "you do not have a burning, religious desire to dedicate your life to what we do. Go away." I mean the CTO was pretty impressed when I described a few of the things I did so Mr. CEO doing that was pretty blindsiding.

You got hosed over in a weird way, but I do want to note enthusiasm in the subject matter is absolutely a key indicator of success. Candidates that are on the fence can become hires by projecting excitement. This can be bullshit if the job is yet another CRUD application, but in areas that are actually exciting to some people, being lukewarm to the subject matter can hurt a candidate.

baquerd
Jul 2, 2007

by FactsAreUseless

FamDav posted:

There is no known linear time algorithm for Fibonacci that doesn't assume a machine that we cannot build.

The best known is n log n off the top of my head, which takes advantage of matrix multiplication.

Edit: not going down this rabbit hole.

baquerd
Jul 2, 2007

by FactsAreUseless
Found this great hiring guide: http://www.alexstjohn.com/WP/download/Recruiting%20Giants.pdf

baquerd
Jul 2, 2007

by FactsAreUseless
He's a total prima donna, but that doesn't mean he's completely wrong, he's just got a start-up founder kind of mentality. When the personal rewards are huge and you're in charge, working 120 hour weeks is a thing that happens if you want to get ahead. Finding and successfully employing the right people who are willing to follow you without as much upside is a talent. His biggest problem is that he got too big for his britches, and based on his early success, started acting like he was actually in charge without the requisite experience and political skill to navigate the waters, leading to people marginalizing and working around him instead of with him.

Edit: he did a new post today http://www.alexstjohn.com/WP/2016/04/18/recruiting-giants-2/

baquerd fucked around with this message at 19:58 on Apr 18, 2016

baquerd
Jul 2, 2007

by FactsAreUseless

Suspicious Dish posted:

I have never seen a startup that values their employees as little as he does, or is as misogynistic as he is, and I work in San Francisco and hang out at bars with startup founders all the time.

He's abrasive, but how is it misogynistic to say that women are often exceptionally skilled in ways many male engineers aren't and that they need to not worry that they are women but instead just try their best? The most prevalent form of discrimination against women in technology that I see these days is to give them more slack and to provide allowances that would not otherwise be given in the name of diversity.

Edit: for example, I work for an extremely diverse company. Roughly 35% of the engineers here are women. Knowing what I know about the industry-wide prevalence of women engineers, how likely is it that they all decided to work for us compared to us having lower standards for them?

baquerd fucked around with this message at 20:52 on Apr 18, 2016

baquerd
Jul 2, 2007

by FactsAreUseless

Sex Bumbo posted:

If you're predetermining women to be exclusively worse than all men at literally everything they do, then yes, your company made a rather suspicious decision to hire inferiors.

All things considered equal, I would expect women to perform as well as men, with some generalizations towards gender-specific strengths (such as communication skills) and weaknesses (such as assertiveness). I also would expect to see a representative sample of women in the industry of roughly 15% of population (https://business.linkedin.com/talent-solutions/blog/2014/03/women-in-engineering-the-sobering-stats).

It is an absolute delight to work with highly skilled engineers, and I have the privilege of working with many women who I consider as such. I also deal with the issue that it is difficult to properly engage with lower-performing women engineers due to a fear of being perceived as sexist.

baquerd
Jul 2, 2007

by FactsAreUseless

Asymmetrikon posted:

Does it take effort to be this stupid, or does it come naturally?

We've all heard of the toxic environments that are overtly sexist and demeaning towards women. I personally haven't seen one for over 20 years, instead there is a huge push to bring in additional women engineers preferentially these days. HR just doesn't put up with that kind of environment. Change needs to happen to encourage more young women to enter, but the bar shouldn't be lower as a result.

baquerd
Jul 2, 2007

by FactsAreUseless
Apparently Facebook used to ask people if they could code while drunk: http://www.datamation.com/columns/article.php/3928726/The-Dumbest-Ways-To-Interview-A-Developer.htm

baquerd
Jul 2, 2007

by FactsAreUseless

smackfu posted:

Source: The Social Network

Looks legit though, auto-playing sound and everything: http://www.socialnetworkmovie.com/ Oh wait, they got hacked. But that's not the official site? I don't know what to believe anymore, all I know is next interview I'm bringing a 6-pack of beer and demanding candidates prove they can code under those conditions.

baquerd
Jul 2, 2007

by FactsAreUseless

Space Whale posted:

They also asked if I knew why you would denormalize tables. I had no loving clue and they didn't care they just wondered if anyone knew why the DBA did that sometimes.

Some devs go crazy with normalization in the same way that some devs go crazy with abstraction and it becomes not only a form of premature optimization, but annoying and a drag on development efforts.

baquerd
Jul 2, 2007

by FactsAreUseless

ndb posted:

One time, I flew out to interview at a company, and they proceeded to test me on Ruby on Rails when I said that I don't have a lot of professional Rails experience.

This can actually be a pretty useful exercise. Giving a Java programmer some Ruby to figure out (with or without internet access really) shows how they deal with pressure, learning new concepts, communicating uncertainty, etc.

baquerd
Jul 2, 2007

by FactsAreUseless

MrMoo posted:

Received a random call at 2pm which was an hour long tech screen before a planned one at 4:30. I do not understand how this code actually appears to produce the correct results, the calculation of maximum cost is weird. I am dangerous with algos.
Java code:
 private static int maximumCost (Vector<Job> jobs) {
     Deque<Job> running = new ArrayDeque<Job> ();
     int max_cost = 0;        
     int time = 0;
     for (int i = 0; i < jobs.size(); i++) {
        time = jobs.get(i).begin;        
        running.push (jobs.get(i));
        max_cost += jobs.get(i).cost;
            
        /* find jobs that have finished */
	    for (Iterator<Job> it = running.iterator(); it.hasNext();) {
			Job job = it.next();
            if (time > job.end) {
                max_cost -= job.cost;
				running.remove (job);
            }
        }   
     }
 
     return max_cost;
 }

You sure that call wasn't at 2AM? I refuse to believe this code actually works.

baquerd
Jul 2, 2007

by FactsAreUseless

MrMoo posted:

Ok, looks a bit better now. Still seems odd I never have to do much with the begin time but as they only have to overlap for at least one time unit it works.

Java code:
 private static <GOON extends Job> int maximumCost(List<GOON> jobs) {
     Deque<Job> running = new ArrayDeque<>();
     int cost = 0;
     int maxCost = 0;   
     
     for (Job job : jobs) {   
        running.push(job);
        cost += job.cost;
            
        //find jobs that have finished and remove their cost from current count
        for (Job jobToCheck : running) {
            if (job.begin > jobToCheck.end) {
                cost -= jobToCheck.cost;
                running.remove(jobToCheck);
            }
        }
         
        if (cost > maxCost) {
            maxCost = cost;
        }
     }
 
     return maxCost;
 }

Adbot
ADBOT LOVES YOU

baquerd
Jul 2, 2007

by FactsAreUseless

MrMoo posted:

Ooh, yes that brings better clarity, thanks "Linus Torvalds". As a polyglot I start with the lowest common denominator and see a big warning about invalidating the iterator on the collection on the remove(). Per the documentation that should fail with an ArrayList instead of a synchronized Vector because the modification is outside the implicit iterator of the foreach loop.

Yeah, you should really be just using iterator.remove().

  • Locked thread