Favorite Technical Interview Questions?

I've grown up and realised asking somebody the difference between value and reference types is both stupid and pointless.

I now ask them a simple whiteboard question to describe the class structure, another one to see if Mr Senior dev over here can solve a problem optimally without throwing more for loops at the problem and a basic SQL question.

I've changed questions I asked over time but the current set works pretty well for what we're looking for in South Africa.

We normally ask how things are passed, immutability and static..They all sing the song about what it is.

Then we give sample problems of these three and 99% can’t get all three right which is kinda a deal breaker. Basically it seems very little devs understand how memory is used, assigned etc

We don’t bother with algorithmic questions as Ive done implemented 1-3 in my 12yrs or dev and if you did CS3 why do I need to retest your regurgitating technique. It’s interesting to note that outside of SA a lot of companies do this, ie focus on choices you make and how you made them vs SA ones which seem to have 2-3hr theory exam.
 
I know you'd have to map from 3 dimensions to 2, because you can't assume that the plane is aligned to one of the axes.

You'd have to map the vertices of the triangle as well as the intersection point from their 3 dimensional coordinates to a 2 dimensional plane. So, you're not completely discarding a dimension - part of the information contained in that dimension could end up in the 2 dimensional coordinates. Unless you have a plane with something like z=0, then you can be sure.

How exactly that mapping would work - don't know, need a linear algebra textbook!

I'm thinking you could use a dot product operation for the intersection, but I'm not sure.

To map it from 3D to 2D, you can do an orthogonal projection (just drop one of the coordinate dimensions). To make sure that the resultant projection is as large as possible, you can choose the ideal dimension by looking at which plane normal component has the largest absolute value. Eg, if the normal was (-.3, .5,-7), The triangle plane would be nearly parallel to the XY plane, so dropping the Z would be ideal.

To avoid the divide, you have to avoid computing the ray-plane intersection altogether. You can compute 3 planes using the ray origin and each of the triangle edges using 3 cross products. Then you can take any point on the ray (excluding the ray origin), and test to see if it is in the inside half/space of all 3 planes (3 dot products). If it is, the ray will intersect, otherwise not.

The follow up, is how would one make this fast?
 
I see it has been brought up before but i completely agree, if you aren't paying >100k for an applicant that can answer those questions then you are being pedantic or trying to inflate your own ego :p. Similarly if you are putting people on the spot with weird technical questions in an interview (there are of course situations this would be appropriate) you are potentially losing good candidates because not everyone thinks the same and they are already in a stressful situation. This stuff is what the technical test is for, the interview is about culture/team fit and to clarify any discrepancies with the CV/test.

There is a big difference between hiring a junior/graduate and a technical lead,what level do you direct these kinds of questions to?
 
To map it from 3D to 2D, you can do an orthogonal projection (just drop one of the coordinate dimensions). To make sure that the resultant projection is as large as possible, you can choose the ideal dimension by looking at which plane normal component has the largest absolute value. Eg, if the normal was (-.3, .5,-7), The triangle plane would be nearly parallel to the XY plane, so dropping the Z would be ideal.

To avoid the divide, you have to avoid computing the ray-plane intersection altogether. You can compute 3 planes using the ray origin and each of the triangle edges using 3 cross products. Then you can take any point on the ray (excluding the ray origin), and test to see if it is in the inside half/space of all 3 planes (3 dot products). If it is, the ray will intersect, otherwise not.

The follow up, is how would one make this fast?
Rtx gpu :D
 
I see it has been brought up before but i completely agree, if you aren't paying >100k for an applicant that can answer those questions then you are being pedantic or trying to inflate your own ego :p. Similarly if you are putting people on the spot with weird technical questions in an interview (there are of course situations this would be appropriate) you are potentially losing good candidates because not everyone thinks the same and they are already in a stressful situation. This stuff is what the technical test is for, the interview is about culture/team fit and to clarify any discrepancies with the CV/test.

There is a big difference between hiring a junior/graduate and a technical lead,what level do you direct these kinds of questions to?

I ask these to all applicants, and the way they answer is very relevant to the work we do from junior to senior/lead. Yes, even our interns make more than $100k/y or R100k/m (if that’s what you meant).

I also strongly disagree that a technical test would be sufficient.
 
Last edited:

Great answer. I would follow up with, why would a GPU do well with this problem? How would one code it to be optimal for a GPU? And specifically, to RTX, what does RTX actually do? (Hint: RTX isn’t actually directly applicable itself).
 
Great answer. I would follow up with, why would a GPU do well with this problem? How would one code it to be optimal for a GPU? And specifically, to RTX, what does RTX actually do? (Hint: RTX isn’t actually directly applicable itself).
It does ray tracing? ;)

In all seriousness, massively parallel and efficient floating point ops, and code it using the right API.

I have no idea. I'm a manager in ops. Throwing hardware at it is a last resort when the devs can't optimize properly :D
 
I ask these to all applicants, and the way they answer is very relevant to the work we do from junior to senior/lead. Yes, even our interns make more than $100k/y or R100k/m (if that’s what you meant).

I also strongly disagree that a technical test would be sufficient.

well then your technical test is poor :p

sign me up for for an intern position at R100k p/m
 
well then your technical test is poor :p

sign me up for for an intern position at R100k p/m

We are more interested in how people think, than whether or not they can solve one or two technical problems.

Doing it in-person allows us to steer the interview in a way that allows us to explore the candidates strengths and weaknesses.

We dynamically change the follow up questions we ask, depending on what the candidate says, and we also explain things to them when they hit a wall. We then test to see how well they understand the new information that has been presented.

Being able to steer means that we can avoid wasting time on already identified weak spots, and explore other areas that may be relevant or even surprising.

The in person interview also gives us an idea of what it would be like to work with the candidate on a technical issue. We try to push for this kind of interaction as opposed to sitting in a chair, watching in silence.
 
Last edited:
We are more interested in how people think, than whether or not they can solve one or two technical problems.

Doing it in-person allows us to steer the interview in a way that allows us to explore the candidates strengths and weaknesses.

We dynamically change the follow up questions we ask, depending on what the candidate says, and we also explain things to them when they hit a wall. We then test to see how well they understand the new information that has been presented.

Being able to steer means that we can avoid wasting time on already identified weak spots, and explore other areas that may be relevant or even surprising.

The in person interview also gives us an idea of what it would be like to work with the candidate on a technical issue. We try to push for this kind of interaction as opposed to sitting in a chair, watching in silence.

I must say I just went through a similar interview process that was similar to the above and quite refreshing.

Instead of a single question and a blank stare it was more of a dynamic and interactive information sharing with more and more information being offered as I proceeded through the scenarios.

I felt more like we were working on the problem together (as we would once employed) than me simply being supposed to have all the answers.

They are checking my references now, so it may just have worked.
 
I must say I just went through a similar interview process that was similar to the above and quite refreshing.

Instead of a single question and a blank stare it was more of a dynamic and interactive information sharing with more and more information being offered as I proceeded through the scenarios.

I felt more like we were working on the problem together (as we would once employed) than me simply being supposed to have all the answers.

They are checking my references now, so it may just have worked.
Good luck!
 
TestDome, HackerRank or Codility seem to the thing with SA IT companies at the moment.
 
Our company doesn't use those automated code testing things - apparently we found that the test results don't necessarily correlate with whether someone is a good hire.

In other words, someone who fails a Codility test is not necessarily a bad hire - they just failed the test.
 
Our company doesn't use those automated code testing things - apparently we found that the test results don't necessarily correlate with whether someone is a good hire.

In other words, someone who fails a Codility test is not necessarily a bad hire - they just failed the test.

personally i find the result not to always be conclusive, but rather examining the result, the answers along with the CV.
 
Are you allowed to google the answer on stack overflow like all other programmers?
 
Are you allowed to google the answer on stack overflow like all other programmers?

Generally, no, since they are trying to determine your ability to develop an algorithm on your own.

If the job never involves creating algorithms, then these tests are less appropriate, and are roughly as applicable as say, an IQ test, which can easily find people who are smart, but not necessarily good at the work they are interviewing for.
 
Generally, no, since they are trying to determine your ability to develop an algorithm on your own.

If the job never involves creating algorithms, then these tests are less appropriate, and are roughly as applicable as say, an IQ test, which can easily find people who are smart, but not necessarily good at the work they are interviewing for.

Agree, depends on the scenario.
I reckon putting someone in front of a relational database and giving them a few minutes to figure out what the business is about could also be a good test. Bonus points if they can tell you some of the business rules.
I'd also be weary of rockstars who turn 10 lines of code that everyone understands into one line of code that only they understand.
 
Last edited:
I've got around 200 tests that I've been given over the years. Some are simpler like a basic like you get given an array and you have to sort by descending or ascending:

C#:
int[] arr = { 800, 11, 50, 771, 649, 770, 240, 9 };

Others a little more challenging like find the missing element in the following array:

C#:
int[] A = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18 };

Others I have are pretty hardcore and much longer.
 
Others a little more challenging like find the missing element in the following array:

C#:
int[] A = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18 };

Code:
for (int i = 0; i < A.Length; i++)
  if(i != A[i])
    return i;

:p (My C# is rusty :( )
 
Top
Sign up to the MyBroadband newsletter
X