loading...
Play Button Pause Button

Technical Virtue Signaling

spirodonfl profile image Spiro Floropoulos ・3 min read

If you want the youtube version of this video, just click here and enjoy.

What is "Virtue Signaling"?

I spend the beginning of the video somewhat describing what it is. Honestly, just Google it or something. You don't need me to define it.

Tech companies do it

When a company asks you to use some complex algorithm or solve a crazy problem that you'll probably never run across then I'd say that's virtue signaling.

To me, the company is saying "Look at how cool we are. We know these algorithms or structures or maths or [insert some cool buzzword here] and that means we're hip and you should work for us".

Here's the real question: Will you use said algorithm, structure, paradigm or [insert some cool buzzword here] in your day to day job? If the answer is no then don't interview developers with those questions unless you have a very specific reason to.

There are cases where having an interview question like that serves a purpose. Maybe the interviewer just wants to see what your thought process is like and how you solve problems. That's fine, I understand that.

Some of the best interviews I've been on (and can say others have been on) have been more like tackling actual real problems that exist in the company and programming something together or shadowing someone as you work through something. That gives you a realistic scenario of what the job will actually require of you and how you'll deal with it.

My favorite ridiculous interview question: If you were a coin and you got stuck in a blender how would you get out?

Developers do it

I saw this recently: A developer stated, on Twitter, that people are not real programmers unless they are programming in x, y or z fashion.

In reality what's being said is "Look at how good I am. I'm a real programmer and you're not and here's why you're not".

You're adding unnecessary overhead to your job. You don't have to politicize anything or define things to such a degree that you are willing to clamp down on people and label them (or remove labels) based on your own definitions of what is or is not programming.

You carry that with you at work. "Well if you're not using this complex algorithm to solve this problem then you're not really a programmer but I am because I do use it so just listen to me and solve this problem how I tell you to."

Get out. That's not constructive. You're also not programming if you're saying things like that.

Big massive tech companies are doing it

I won't mention which companies but there seems to be a rise in banning or muting people with views that aren't considered "Politically Correct". You are on one side of a political spectrum that isn't agreeable? Blocked. You are skeptical of some science that seems to be generally accepted? Blocked.

That's virtue signaling. My job, as a programmer, involves programming ways to access, manipulate and disseminate information. The idea of blocking people because they don't agree with your or even the general consensus seems backwards for a tech company to start meddling in.

Conclusion

It's stupid and ridiculous and doesn't belong to, at least, specific areas of the tech industry.

If you disagree with me or think I've said something stupid, I would love to hear from you.

Discussion

markdown guide
 

Is this truly virtue signalling? I feel like - in my experience at least - most companies don't really know how to interview well, so they fall back on things that they can assess as "right" or "wrong". And the people who are trusted to do technical interviews are usually going to be the "best" devs in the company, and people typically aren't very good at thinking anything other than "well I know this so you should know this too". And this is what I think leads to where we're at with technical interviews. I don't personally believe that people sit around and think "let's make this test have nothing to do with the job being applied for so that we'll look really cool!", although perhaps your experience and mine have been very different here! :-)

Seems everything is labelled as virtue signalling at the moment, I guess because it's easy to do - this post for example, it could be easily argued that you're virtue signalling by talking about how much you dislike this behaviour from companies, right? And my reply to you too - classic virtue signalling. Maybe we can only avoid virtue signalling by saying nothing at all. :-/

 

No, it's not.

If getting rich is an end to you, you should reevaluate your life goals.

Money is just an aspect of life. Extra money gives you freedom to explore what you love or what's good for the world. You could find end in the code itself (see software as a craftsmanship).

 

I disagree partially with "do not politicise anything".

Politics are unavoidable. If a company has a set of values or the "why" of the company, it's gonna entangle some politics. But I think (you and I) are frustrated with the fact that it's not clear in many senses "what politics are we talking about" when seeing some companies (or individuals) act in a certain way. "You're not a real programmer if x" is evangelisation to some sense, so it's a commitment to disseminate a technology that might boost him/his company.

Specially in PR stunts, their agenda is hidden and kinda trickles down to a lot of their decisions. It's a special problem in tech companies (I think) because we're all too focused on the "how" and lose sight of the big picture.

Thank you for a more lengthy response. I agree with most of the sentiment, and I realize I was a little bit harsh on interpreting your opinion.

I believe we can achieve a balance between "quick fixes rushed to market" and a well crafted code, they're not mutually exclusive. It's rather have a "lean" career where I balance those than getting rich quicker and do whatever I want. Code is a mean to an end to me as well, but there's more value in what I produce apart from the monetary gains.

I think this is more clear in the music industry. You can be a good artist and starve, because money doesn't necessarily reflect your skills, or you can be a "sellout". But it's not a dichotomy, it's a spectrum.

 

Story time. In my previous company I was tasked with interviewing new programming candidates. Due to there not being much of a screening process beforehand I often found myself interviewing people who had barely touched a computer, let alone been developers. I developed a simple theory test for candidates to take, and only interviewed people with at least a 50% mark.

Some sample questions: Write a function that takes 2 string parameters, compares them, and returns the longer of the two. What is the difference between a class and an object? etc.

I deliberately kept the test to just the basics. I find if someone has a solid grasp on the basics of programming, they can learn anything else that is needed.

The average score on the test was 30%.

 

I can understand labeling companies that greenify their campus or make big shows about putting healthier options in the cafeteria as "virtue signallers".

But actually requiring someone to be plugged into the field of computer science? I think you're just having a case of sour grapes. Despite knowing some good ways to balance a tree, I can't remember when I was asked to do anything more complicated than whiteboard how a cache works.

In my actual job, I have had to debug someone's bad custom linked list. I have had to represent a tree as a database table that could return a node and all of its ancestors in one O(1) call. I have had to know how basic cryptography works (though since I'm in security now, that may be an outlier). Hell, I've even failed some of these toy projects and gotten the job anyway...

And yet asking for a function that returns the sum of the multiples of three or five under 100 is too much? (I agree that asking someone to give me the constant time version is overboard, but if you know that... then down the rabbit hole we go!)

I question anyone who can't at least fail gracefully at walking me through what happens when you hit return after entering a webpage in the address bar. I've helped hire introverts and extroverts, and it was easy to see the difference between those that had just memorized answers, those that knew their stuff, those that didn't but could be taught, and those that were bullshitting me.

The only thing I really despise at interviews are a written test and do-at-home projects. Scores on a test aren't going to tell you if you can get along with someone, and take home projects hide some of the sausage of how people think.

Anyway, I'm rambling now. Summing up: algorithms are important. Study up on them, and they'll surprise you on how often they come up, even only partially.

 

If you were a coin and you got stuck in a blender how would you get out?

Me: I'd turn tail and head out

Them: uhm...

Me: Penny for your thoughts

Them: That's not really what we're looking for

Me: Well let me mix it up then, I'd flip out 😉

Them: I don't think you understand what we're looking for here

Me: If I had a nickel for every time I heard that