Live data from Hacker News

Follow-up to “The dystopian world of software engineering interviews”

jarednelsen.dev

481–490 of 538 posts

Re: Follow-up to “The dystopian world of software engineering interviews”

#481
post #411

Earlier quoted context omitted.

GP has since edited their post, it originally used the word "bigotry" where it now says "discrimination". Edit: This leads to a much more interesting line of discussion that can be summed up as "discrimination (and similarly bias) isn't always bad". They're useful tools and we should be careful about practicing them, but the idea that because discrimination is sometimes bad it is always bad doesn't follow. (or an alt…

What kind of moral / logical principle do you base the conclusion “discrimination is not always bad”, on? Genuinely asking. My morality follows from basically “discrimination based on immutable personal characteristics is always bad” (with the possible exception for family, bwcause that’s just cruel), from which I cannot conclude for example that discrimination is bad if it’s agains blacks but good if it’s against wh…

I'll get to the meat of your question, but two sidebars first:

> My morality follows from basically “discrimination based on immutable personal characteristics is always bad”

As a bit of an aside, are you saying that this is your base moral precept from which all other decisions about what is or is not ethical follow? This would be a very strange ethical framework (for example, it follows that murder is ethical). Usually moral and ethical frameworks follow from very high level principles "optimize happiness/utility" (utilitarianism), "do good things" (deontology), etc. It seems like you might be coming from a rights based ethical framework, but it's not clear.

> How would you convince a White Nationalist that such discrimination is bad while leading by example that other kinds of discrimination are just fine?

I don't generally waste my time arguing with people who are engaging in bad faith[1]. In this day and age, I don't generally believe that a white nationalist is going to be convinced by facts and logic, or really anything else. I'm more concerned about appealing to the majority of people who aren't white nationalists, because ultimately I believe that discriminating against white nationalists is okay[2].

Ok, now back to your actual question: in what cases is it okay to discriminate? I'm approximately utilitarian, so the simple answer is "when the expected value across society is positive." For me, I don't think optimizing for strict utility is the right goal, instead I personally think that we should maximize agency (possibly median, possibly total, unclear exactly), which is something like each individual's ability to make meaningful decisions.

This sidesteps issues of de jure rights. It leads to conclusions that we should do things like lift up the least fortunate and provide social safety nets, since a destitute person has less agency than a person capable of getting by. Similarly, it addresses questions of when regulations on personal liberty are ok. If allowing some action has a reasonable possibility of reducing agency of some other group, we should give it less protection than another action which does not.

So for example, when you have two groups, racists and some racial minority, it makes sense to provide the racial minority more protection than the racists, since the racists want to reduce the racial minority's rights more than the racial minority wants to reduce the racists rights. That is, the minority would prefer it if the racists weren't allowed to be racist. The racists would prefer it if the racial minority weren't allowed to live in the same area, or use the same water fountains, or what ever.

That's an extreme, but illustrative example. So back to the less extreme position: Discrimination is okay when it's done explicitly to counteract a gap between what the law (or more broadly society) intends and where society actually sits.

Society intends for hiring to not discriminate based on race. But it did for a really long time. The put (and continues to put) the subjects of discrimination at a disadvantage. If you're deontological, then "nondiscrimination" is the rule and that's that, but if your goal is justice or utility, then discrimination to bridge the gap between intent and reality is ethical. It should be done carefully of course, but it's alright.

If you want to see a fun set of examples of this, voting district and gerrymandering law in the US is full of weird examples of trade offs between the need (under the Voting Rights Act) to allow racial minorities to elect representatives of their interests, with the current opinion of the USSC that any districts can't be drawn based on racial lines (except in very specific circumstances)[3]. In other words, States must draw districts to preserve the interests and representation of minority groups, but can't draw districts based on where those minorities live. It's weird.

[1]: https://en.wikiquote.org/wiki/Jean-Paul_Sartre#Anti-Semite_a...

[2]: https://en.wikipedia.org/wiki/Paradox_of_tolerance

[3]: https://www.ncsl.org/research/redistricting/redistricting-an...

Re: Follow-up to “The dystopian world of software engineering interviews”

#482
post #271

I will never forget the time I was given a coding "challenge" and sent home with the instruction to send it back whenever I felt it was complete. This sent my OCD into overdrive, of course. For the better part of two days straight I coded my heart out and came up with this (what I thought perfect) robust system with all the bells and whistles. Heard nothing back. At all. My calls into the recruiter went unreturned an…

One has to wonder, then, why they didn't hire you. I have a theory. It's quite cynical, but it's taken me about 5 decades to arrive at it: life is a beauty pageant. I don't say this lightly. It was a very slow process to get to this point. A friend, colleague recently interviewed at a very popular, pre-IPO company that is often discussed (positively) here. He doesn't look like your typical engineer, but he's literall…

> He doesn't look like your typical engineer

Can you elaborate on that?

Re: Follow-up to “The dystopian world of software engineering interviews”

#483
post #282

I've mentioned this before. I have a portfolio that consists of six figures LoC of code, across dozens of open-source repos; most of which I am the 100% sole author. I've written a fairly large open-source system that is rapidly becoming the world standard for a specific (rather small) demographic. It deliberately uses old and rather primitive technology (which is a big reason for it becoming a standard). I've writte…

> no one bothers to look at my portfolio [...] I usually send a couple of links [...] My portfolio leaves absolutely no question at all about what I can and can't do, technically. I hear this a lot from software engineers, but it might be worth thinking about the underlying expectation that anyone should spend time poking through repos on the internet, why they would, and how hard it might be to standardize a hiring…

> hiring managers, who perhaps often don’t have the time, interest, or even ability to read someone’s portfolio to determine the quality of the code.

Then perhaps this person should not be interviewing in the first place? Why should an unqualified hiring manager somehow asses the candidates technical abilities ? This seems really bizarre to me. Imagine putting someone who is clueless about the medical field in charge of hiring surgeons based on some test score they took online, whilst completely ignoring their years of experience.

> I can’t tell from your online portfolio whether you’re the sole author and/or how much you’ve contributed to a project. I can’t easily tell if you get a lot of your code from StackOverflow, or write it yourself.

The OP has hundreds of citations in his portfolio. It's interesting that leetcode which can be gamed by a grad has more weight than multiple, well established projects. If you place this much trust in applicants, you will most likely be micromanaging them as well. This isn't the way to attract top talent.

> I can’t tell what motivates you, whether you love programming or you are hoping for a high salary. This is what the in person interview is for.

> While high technical ability is a requirement for someone I hire, it’s not actually the primary requirement. What I need to know is how adaptable people are, how well they’ll work in a team, how quick they are on their feet

All these are valid points, but the discussion here is regarding whiteboard algorithms vs actual experience.

I honestly think it boils down to a few things: - Companies are willing to waste the candidates time. - Copying FAANG style interviews serves as a marketing tactic for startups (we have the same hiring standards as Google)

And finally an unpopular opinion: - Asking Algorithm questions makes the interviewer feel smart, Especially if they are interviewing someone which is more experienced.

Re: Follow-up to “The dystopian world of software engineering interviews”

#484
post #282

Earlier quoted context omitted.

> no one bothers to look at my portfolio [...] I usually send a couple of links [...] My portfolio leaves absolutely no question at all about what I can and can't do, technically. I hear this a lot from software engineers, but it might be worth thinking about the underlying expectation that anyone should spend time poking through repos on the internet, why they would, and how hard it might be to standardize a hiring…

> As someone who’s done a lot of hiring, I often glance at an online portfolio briefly, but I find it to be a low-quality signal for whether I will want to hire the person, and even for the technical ability. If I don’t know you, I can’t tell from your online portfolio whether you’re the sole author and/or how much you’ve contributed to a project. I can’t easily tell if you get a lot of your code from StackOverflow,…

> I’d find your approach to hiring to be a warning about how the culture operates there.

Hahaha, well I can't stop you from making bad assumptions. When I say I believe that online portfolios are a low quality signal, I am speaking from experience. I have seen first-hand people that look amazing on paper who were bad hires, and also people who didn't invest in their online presence but were rock stars. I'd encourage you to think a little harder about what you really want out of hiring and performance reviews, and whether online material is actually what you want to be measured by. Not only is online material a low-quality indicator of someone's work performance, it's also much easier to game, in ways that are both subtle and not subtle. If you prefer that someone reads your repo checkins over talking to you, you're letting other people figure out how to make themselves look better than you with less effort. I'm not even talking about unscrupulous behavior -- when the metrics are online material, you will be competing with others' online material. People who write better will tend to "perform" better, people who produce more code will tend to look better (even though LOC is a terrible metric), and people who borrow and build on others' code will tend to look better than people who write their own.

Are you really certain these are the metrics by which you want to be judged in interviews and performance reviews?

The job I have now, thankfully, has the lowest overhead performance reviews I've had at any other job, because my team believes that annual performance reviews are not a very good system at all. We practice continuous performance reviews by working with each other and giving feedback on a regular basis. You should never be surprised by a performance review, or have to wade through the last year's work to see how someone did. If you're doing that, something is already wrong, it means you haven't been paying attention. When you have a system that reviews people annually, even if people are keeping records, it still tends to result in people changing their behavior for 1 month out of the year right before performance reviews. Doing amazing work for 10 months and then getting put on a crappy task can undo your whole year.

There is no online substitute for talking to people; it's much, much higher bandwidth than trying to read code checkins. Once someone has demonstrated they can code, I don't need to check for that again. What I need to know is why someone made the choices they did, what their philosophy about coding is, how they handle themselves during code reviews, how they work with others. I need to know what people are feeling, how they see themselves fitting in, and what their dreams and aspirations are. You can't get any of this from online portfolios, not when hiring, and not when reviewing employees.

Re: Follow-up to “The dystopian world of software engineering interviews”

#485
post #282

Earlier quoted context omitted.

> no one bothers to look at my portfolio [...] I usually send a couple of links [...] My portfolio leaves absolutely no question at all about what I can and can't do, technically. I hear this a lot from software engineers, but it might be worth thinking about the underlying expectation that anyone should spend time poking through repos on the internet, why they would, and how hard it might be to standardize a hiring…

> hiring managers, who perhaps often don’t have the time, interest, or even ability to read someone’s portfolio to determine the quality of the code. Then perhaps this person should not be interviewing in the first place? Why should an unqualified hiring manager somehow asses the candidates technical abilities ? This seems really bizarre to me. Imagine putting someone who is clueless about the medical field in charge…

I think you misunderstood my comment about whether a hiring manager has the ability to judge online code, I wasn't suggesting they're incompetent, I'm trying to point out that you can't expect even an amazing programmer with decades of experience to understand what the hell you were trying to do with your code -- in a reasonable amount of time. Styles and goals can be as different as night and day. I believe I'm a very good programmer, but I can't tell from github whether you are. I have to talk to you to figure that out.

Look, this is the same as taking tests in school. Tests suck, but there's a reason we have to take tests and not just only turn in homework. The reason is that you need to demonstrate that you can do it on your own in a time-bound environment. Github doesn't demonstrate that even when you're amazing. Talking to someone who can ask questions about your abilities, and demonstrating your abilities on the spot is the way to do that, just like taking a test. I'm sorry it's less comfortable than posting online, but it's reality.

Leetcode doesn't have more weight than projects in my book, and I didn't mention it, neither did the top comment, so I'm not clear why you're saying that. Are you referring to the article?

> the discussion here is regarding whiteboard algorithms vs actual experience

The discussion in this sub-thread was about interviews & online portfolios. I wasn't talking about whiteboarding.

> Companies are willing to waste the candidates time [...] asking algorithm questions makes the interviewer feel smart.

I can't speak to all companies, you are probably right about many of them.

However, young grads today seem to feel entitled to easy interviews and job offers from all of them. What I hear in your post is some angst and frustration. I can understand that. I think it's a buyer's market. Getting a good job means figuring out how to stand out from the rest of the crowd, and it's really, really hard to do that with code alone.

It's true that companies are optimizing for their own needs, just as you are optimizing for your own needs. You can choose to see that negatively, as them wasting your time, or you can take more control of your interviews, and work to protect your own time.

The deal on offer is, if you pass the interviews, then you get paid well to code. Or, you can go start your own company and make your own money.

If you paid attention in school and understand algorithms, them you should think of algorithm questions as the easy part of the interview, something you can pass without problems. The questions are there to see if you care about algorithms and understand the basics. Don't take them personally, and understand that the questions are for all candidates, and they need to filter people out who don't know algorithms. So stop complaining about the easy questions, and start spending your time figuring out what the hard questions are and how to ace them. (Also, just FYI people who complain about certain kinds of interview questions is a small red flag in my book. If you love programming, algos might not be the exact thing you want to do, but it's part of the job pre-requisites and basic knowledge, so enjoy them instead of fighting them.)

Re: Follow-up to “The dystopian world of software engineering interviews”

#486
post #411

Earlier quoted context omitted.

What kind of moral / logical principle do you base the conclusion “discrimination is not always bad”, on? Genuinely asking. My morality follows from basically “discrimination based on immutable personal characteristics is always bad” (with the possible exception for family, bwcause that’s just cruel), from which I cannot conclude for example that discrimination is bad if it’s agains blacks but good if it’s against wh…

I'll get to the meat of your question, but two sidebars first: > My morality follows from basically “discrimination based on immutable personal characteristics is always bad” As a bit of an aside, are you saying that this is your base moral precept from which all other decisions about what is or is not ethical follow? This would be a very strange ethical framework (for example, it follows that murder is ethical). Usu…

Interesting, thanks for an extensive answer.

> If you're deontological, then "nondiscrimination" is the rule and that's that, but if your goal is justice or utility, then discrimination to bridge the gap between intent and reality is ethical.

I'm definitely pro-justice, it's just that I see it principles based (e.g. free speech even for (especially for) speech I don't like), not "utility" based. The flaw of your philosophy, in my view, is that you're just sweeping the tricky parts under the carpet by introducing concepts of "utility" and "right goal" and "society intends". You're even conflicted about that yourself, introducing another concept of "maximizing agency" (sounds like pro-freedom); a good moral system would somehow maximize (or balance) both in some way.

I don't think that's a good view, because those are fundamentally non-reconcilable goals. Should a billionaire be able to spend $1m for the health of his/her child (maximize agency / freedom), or should the society put that money to "maximum utility" and spending it to help several (poorer) children (with illnesses that are less expensive to treat but still life threatening).

Re: Follow-up to “The dystopian world of software engineering interviews”

#487
post #486

Earlier quoted context omitted.

I'll get to the meat of your question, but two sidebars first: > My morality follows from basically “discrimination based on immutable personal characteristics is always bad” As a bit of an aside, are you saying that this is your base moral precept from which all other decisions about what is or is not ethical follow? This would be a very strange ethical framework (for example, it follows that murder is ethical). Usu…

Interesting, thanks for an extensive answer. > If you're deontological, then "nondiscrimination" is the rule and that's that, but if your goal is justice or utility, then discrimination to bridge the gap between intent and reality is ethical. I'm definitely pro-justice, it's just that I see it principles based (e.g. free speech even for (especially for) speech I don't like), not "utility" based. The flaw of your phil…

> The flaw of your philosophy, in my view, is that you're just sweeping the tricky parts under the carpet by introducing concepts of "utility" and "right goal" and "society intends".

Sure, picking the "right" utility function is one of the hardest parts of utilitarianism. FWIW, I don't think maximizing agency is a different concept so much as a specific utility function that avoids some of the common pitfalls of strict utilitarianism (utility sinks: the person who gets enormous happiness from cannibalism). In other words you could imagine Agency as the "reasonable person" standard applied to the value of a choice. This still has flaws, but, IMO fewer than many other framings.

Some people might also find this to be similar to optimizing for the most "positive rights" across society, but I dislike that framing because the idea of positive vs. negative rights is silly, any right can be framed as positive or negative.

> Should a billionaire be able to spend $1m for the health of his/her child (maximize agency / freedom), or should the society put that money to "maximum utility" and spending it to help several (poorer) children (with illnesses that are less expensive to treat but still life threatening).

Note that giving a poor person money such that they can choose to treat their child's disease also increases agency! If you want to dive deep into this, I think that the marginal value of a dollar is probably logarithmic, or at least inverse quadratic or something, so a tax scheme modeled to tax top brackets in such a way that then improves the situation of those less off (pick your method: national healthcare, UBI, etc.) increases overall agency.

Re: Follow-up to “The dystopian world of software engineering interviews”

#488
post #282

Earlier quoted context omitted.

> no one bothers to look at my portfolio [...] I usually send a couple of links [...] My portfolio leaves absolutely no question at all about what I can and can't do, technically. I hear this a lot from software engineers, but it might be worth thinking about the underlying expectation that anyone should spend time poking through repos on the internet, why they would, and how hard it might be to standardize a hiring…

I've done a lot of hiring, too. I managed a team of C++ image processing engineers for 25 years. All my coding was on the side, as open-source. I did it to keep my dev chops up. That's a big reason I have such an extensive portfolio. I learn faster, and much, much more comprehensively, these days, than I ever did when I was younger (I suspect because of the vast context I got from experience). The main reason I'm doi…

You do sound like you're in a great spot, congrats! I've tried to do the same thing and haven't made it there yet. I did start my own company hoping it would turn into a lifetime of being able to always do exactly what I wanted, but it didn't end up working out that way. It was a ton of fun and a ton of work, and I had to sell it and take a job so I could feed my family.

Would love to hear a little about how you're making ends meet and still doing what you want on your own. Are you selling software, doing contract work, making money some other way and doing software on the side...?

Re: Follow-up to “The dystopian world of software engineering interviews”

#489

I don't know, hiring seems inherently broken. Not just the algorithmic part, even the part leading up to it. You have to impress a recruiter or an HR drone by listing all the buzzwords that are currently trendy. Then, even after the algorithmic questions and interviews where you prove you can DO the job, you get rejected. Every company I've worked for had trouble hiring. I'm working for a company that also has troubl…

I suspect companies have trouble hiring because they really don't want or actually need to hire. I mean, yeah, hiring managers can complain that they really, really need to hire someone for some open position, but I don't believe them if they've had a req open for years as you suggest (or even six months). If they really had a pressing business need to hire someone then they'd try to make it work. They wouldn't rejec…

I'm old enough to remember the way technical interviews used to be, and they were just like this.

Back in 2001, I dropped out of tech and became a land surveyor for almost 10 years. Now, land surveying or civil engineering is not the same business at all as software development, but they are both technical and there is some overlap in terms of engineering and outcomes.

My technical test and interviews were all completed on the same office visit, and I got a decision in 24 hours! Just think about how incredible this would seem today. First, I was welcomed by an engineer who gave me an overview of the company. Then, I was taken to a conference room and given a trigonometry & statistics test that took about 45 minutes for me to complete. Then I waited in the engineering library and browsed books while they graded my test. When my results came back, I then proceeded to the interview proper. After that I was introduced to the CEO of the company and escorted to the lobby.

The very next morning, I got a FedEx envelope with a proper offer letter. They really needed a good instrument man and they got one in 24 hours. Throughout the entire process, everyone I interacted with was completely professional and prompt.

Re: Follow-up to “The dystopian world of software engineering interviews”

#490

Earlier quoted context omitted.

"The SAT is..." seems like a questionable statement even before you complete the sentence, given that it has changed over time. Is it equally racist now versus in the 90s?

Probably not, but who cares? The point isn’t that the SAT has been equally racist for some amount of time. The point is that bias exists in standardized processes.

If the SAT has undergone changes, obviously someone intended to improve it. What they were trying to improve and what the consequences actually were, if it got better or worse, would be relevant to why it has problems now and what they are.
Post reply on HN