When I hire juniors, I try to give them problems that I know they likely won't be able to solve in the interview because I want to see how they think about things. The problem has become that a lot of kids coming out of college have done little more than memorize Leetcode problems and outsourced classwork to AI. I've also seen less and less passion for the career as the years go by (ie. less computer nerds).
Unless the company is doing something that requires almost no special domain knowledge, it's almost inevitable that it's going to take a good while for them to on-board. For us, it usually takes about year to get them to the point that they can contribute without some form of handholding. However, that also mostly holds true for seniors coming to us from other industries.
> The problem has become that a lot of kids coming out of college have done little more than memorize Leetcode problems and outsourced classwork to AI. I've also seen less and less passion for the career as the years go by (ie. less computer nerds).
I started browsing spaces like /r/cscareerquestions and joined a few Discords to get a sense for what young devs are being exposed to these days. It's all very toxic and cynical.
I've noticed an inverse correlation between how much someone is immersed in Reddit, Twitter, and Discords and how well they function in a business environment. The Reddit toxicity seems to taint young people into thinking that their employer is their enemy and that they have to approach the workplace like they're going into battle with evil managers. I've had some success getting people to chill out and drop the Reddit vibes, but some young people are so hopelessly immersed in the alternate reality that they see in social media that it's hard to shake them free.
>seems to taint young people into thinking that their employer is their enemy
Is this not true to a first approximation though? I mean you do have to "hide your power level" in some way, but the fact that the employer isn't your friend or family is a good working model to keep in the back of your mind. It's a prisoner's dilemma type situation, and defect/defect seems to be the equilibrium we've converged at.
It's true for many companies, but to be successful it helps to act as though it isn't.
Senior leadership sincerely believes that they are a force for good even when they are doing things to harm their workers, their customers, or society at large. It's human nature to feel that way, and to contradict that is to offend them and risk getting labeled as "hopelessly immersed in Reddit toxicity".
And the easiest way to keep up the act is to fool yourself, because most of us aren't good at faking it. Find the best in senior leadership and emphasize it to yourself; find win-win opportunities (or make them!). Maybe it's even true that the company is a force for good! (I genuinely believe this about all my past employers in varying amounts, but I've been choosy and have made sacrifices.)
But be stern about never putting yourself in a position where you can be taken advantage of, because senior leadership, being weak humans like all of us, will succumb to temptation.
That is true, but the problem is that nearly everyone believes it. Every dictator and revolutionary thinks they are doing good.
I can understand what you are suggesting, but the balancing act of assuming they are acting for the best and also ensuring you do not let yourself get taken advantage of is very difficult.
I disagree. The tendency towards self justification is a universal human trait. Even if some may overcome that tendency, it is still qualifies as “human nature”.
This is germane because while labor and capital may perceive each other as the “enemy” and may in fact act counter to each other’s interests, nearly everyone perceives their own actions as justified.
To the extent that there is “social programming” involved which could conceivably change (unlike “human nature”), it has to do with the acts themselves, not the strong impulse to believe that your own acts are justified.
The way I explain it is that your company is not your friend, but that doesn’t make them your enemy.
The trap is when they see everything as a false dichotomy between friend and enemy. Enemies are something you avoid or even work against. When someone starts seeing their employer as the enemy and they don’t want to do things that help out their enemy, they trick themselves into poor performance out of spite.
Which leads to performance management and eventually firing if they don’t get a handle on it. This makes them even angrier, confirming their belief that their company is out to get them, leading to deeper spiraling into spite and poor performance.
Breaking someone out of that mentality is hard but everyone is so much happier once you’ve cracked them out of the “friend or enemy” dichotomous thinking.
In your world, is there such a thing as a bad employer?
Something like the analogue to the “Reddit-infused worker” archetype, where leadership is inappropriately cynical about their workers and see them as “the enemy”?
> In your world, is there such a thing as a bad employer?
Of course. If you don’t see that, you’re missing the point.
In your world, is there such a thing as a bad employee? Or do you assume all employees are inherently good and do appropriate work for their pay and don’t need constant performance management to simply do their job?
In my posts I’m not talking about all juniors. I’m talking about a problematic subset. You seem to be assuming I’m generalizing to all of them. I am not. This is a phenomenon specific to a subset of juniors that is unfortunately a repeated pattern where they all share some very common and obvious characteristics. I’ve spent a lot of time trying to break them out of that mindset and have them join their much happier peers, but to be honest once someone is that deep into the cynical mindset it’s hard to wake them out of it.
> In your world, is there such a thing as a bad employee?
Of course — I implied as much via the “inappropriately cynical“ characterization.
The tension between capital and labor is inescapable and ancient.
I didn’t think you were generalizing to all juniors. Rather, what caught my interest was that before this last message I perceived the perspective of capital in your words.
> In your world, is there such a thing as a bad employer?
Yes. My employer has gone all in on the AI bandwagon. To achieve this, they lay off around 10% of the workforce every February to free up capital for whichever AI fad they wish to pursue that FY, all the while spouting the usual bullshit about being a "family".
I could make a lot more money elsewhere working 12 month fixed term contracts, with possible extensions, than I do as a "permanent" employee doing effectively the same thing.
There’s a big difference between somebody not being your friend and somebody being your enemy. I’ve had a similar experience with a sub par employee, who at some point admitted that he wasn’t doing his best at work because he was "only there to exchange his time for money, not make any meaningful contributions".
That guy was absolutely immersed in internet culture, making him less self-aware and very unpleasant to work with.
> "only there to exchange his time for money, not make any meaningful contributions"
I sometimes wish companies were more open to accepting these roles, instead of the up or out model.
There is in many teams a lot of busywork that for various reasons can't be automated (or new incoming busywork that takes over when the older one gets automated).
If an employee is content with just handling this kind of lower level busywork and go home at 4:30pm in exchange of not pursuing raises and promotions, there's nothing wrong with that. That work still needs to get done, so rather than getting a never ending stream of junior new hires constantly having to get trained, I'd be fine with having someone who is happy to stay at that level and take it easy.
Up or out generally stops once someone reaches engineer or sr engineer. Most of the time a jr engineer is going to need substantial mentoring and support. Them never moving beyond that point likely results in a net negative gain if you need another person always available to provide that for their entire time there if it goes beyond 1-2 years.
> I sometimes wish companies were more open to accepting these roles, instead of the up or out model.
But companies live or die by talent / passion density. If you try to only hire talented / passionate people, then many of them will still just be fit for grunt work so grunt work still gets done. If you on the other hand hire for grunt work you wont find much talent at all so company fails after a while.
Companies require different attributes in various roles. Those attributes extend far beyond passion and talent. The trouble with hiring based on those two attributes alone is that you're setting up a culture where the people who do the necessary grunt work are failed hires and where the employee themself feels held back. In otherwords, you are setting up a toxic workplace.
I never saw a company hire grunt programmers separately though, and when you suggest that they should people also get angry at you here. So what do you want really? Do you want to have to pass the same tests as these roles, or do you want to pass grunt tests and have a different role? You can only have one of those.
Yes. if the work is installing software and being on pager duty then we can really stop pretending that identifying O(nlog(n))is relevant. And if the job is to write a compiler optimizer, it's pretty important you know the basics of CS (like decidability).
smashing these two together and pretending they are the same has been a huge source of cognitive dissonance in the industry and serves no one.
I mean with as many 'who do these simple Google bugs last for years' posts we see on HN, how much of the grind and grunt work is getting done? If everyone thinks they are a superstar then anything that's not an A+ project ends up on a 'killed by Google list'.
As bad as big non-tech companies are at things I quite often see they are better at providing fixes and updates for the little hidden pieces in the background because they have people that aren't fighting their way up the ladder.
Showing up to work and actually doing their job, even if it’s the minimum, would be an upgrade over the Reddit toxic mindset I was describing about.
The problematic juniors show up to their jobs determined to be uncooperative, sow discontent among coworkers, stonewall progress in meetings, and think they’re just going to job-hop to the next company before the performance management catches up to them. They see the jobs or even the concept of working to live in general as a scam and feel like they’re winning some deep cultural war if they collect paychecks while making life difficult for their manager.
Have companies given any of these young people a reason to think differently?
“I have altered the deal, pray I don’t alter it further” has been the majority of my career and my peers. Very few people(as a percentage of population) actually have had enough leverage at any point to not have to eat shit if their company says so.
This is the type of toxic, cynical attitude GP is talking about. It doesn’t have to be this way, and you approaching it with this expectation is possibly creating a self-fulfilling prophecy.
And? Part of the toxicity is coming from a misunderstanding that for some reason the company is morally obligated to keep offering you employment ad infinitum.
If the work runs out, find another job. Nothing wrong with that.
I didn’t really approach it that way. The companies did to me. My experience with companies has been entirely that unless the money is already in my pocket, I should expect them to renege on the deal.
At this point it’s in the corporations court. If you have managed to generate a relationship with your labor force where they are no longer lying flat, but actively trying to cause sabotage like you described then I think you(the companies in question, not you in particular) share some of the onus on how we got here
Edit: and to be clear I’ve been working in tech for over a decade, this is not a perspective from a new grad with only the internet as their source of information. The younger generation has seen their older siblings and cousins getting fucked over more and more each year and we’re reaching the point of societal unrest where a large group of people no longer think the “deal” society is offering them is worth it
Companies brought this on themselves, they treated their employees as disposable cogs and then started complaining when employees returned the favour.
You can't complain about people becoming cynical when right now you can see all the tech giants investing ridiculous sums in order to eliminate staff from their payroll.
When you look at the quality and the dog eat dog mentality of many CEOs out there do you expect any different? If you can look at modern capitalism without a cynical eye it's very likely you've lived a pretty privileged life.
CEOs are also employees. This is a weird thing where you have invented enemies in your head you’ve never talked to.
Yeah capitalism is sad in a lot of ways - particular the modes of possible value. But we are actually talking about working in hierarchical management organizations which have existed forever and have nothing to do exclusively with capitalism.
A subset are paid incredibly well. For arbitrary lines im going to put that at 250k+/year in comp by year 2-3 of your career.
Another large cohort is paid pretty well with salaries from 110k-150k by that same point who have effectively no negotiation power and are given “take it or leave it” deals with the only leverage being to find another job
And even for the incredibly well paid ones, as the other commentator noted, there’s documented proof of organized wage suppression by the corporations
Just the existence of the Bay Area tech antitrust suit and the pittance of a settlement should tell you otherwise. Who knows how sky high developer salaries would be if those companies hadn’t conspired to lower salaries during such a strong and low-interest-rate economy.
A grocery store I worked at tracked finances and they were available to all employees. The grocery store made $270 per worker per hour. New hires were paid less than 1/10 of the value they provided.
I can only imagine how much more exploitative tech is
I mean ... if a junior can stonewall a progress on a meeting then seniors there somehow horribly failed the meeting moderation. I have literally never seen that, because you can just make meeting without them the next time
Second, I seriously doubt juniors ability to "sow discontent" among more experienced seniors. They can latch on existing discontent, but juniors are too low on hierarchy and seniors have too much of opinions for juniors to have much power there.
I’ve seen it. In my organization, open discussion and creating space for disagreement and alternate perspectives are the norm. A couple of junior programmers were upset about a process change, and weaponized the process to sow discontent at every retrospective, usually through vague “a lot of people have told me they’re unhappy about X” comments. A huge amount of energy was spent trying to take their concerns seriously and address them.
Eventually they were removed from the team. It should have been sooner, but the manager is very empathetic and supportive of his team. Morale immediately shot up and things are much better now, as well as more productive.
Not every workplace is a dog-eat-dog hellscape. In fact, I’d say they’re the minority. But you do reap what you sow: if you’re determined to see it as a zero-sum game and go looking for conflict, you’ll find it.
I’m not sure how you’re getting that at all. GGP said they didn’t see how junior developers could “sow dissent” and I shared an example of where it happened. I wasn’t making any generalizations. (I also wasn’t on that team.)
In some sense this is the standard gambit of wage labor. If you want people to act like they have skin in the game, then they must have that. Tech is notable as a field for incentivizing overperformance and mission-driven-ness.
In many countries being a developer is a plain office job just like everything else, and everyone that doesn't want to move into management after reaching seniority is seen as a failure.
Go into business yourself for a bit and see the world from an entirely different angle. If you don't make it and come back to employment (most likely) you will be a much humbled and more enlightened person.
I mean really no, and yes I've been on both sides. Owners have skin in the game. That's why when Musk says we should work 80+ hours a week he should be summarily ignored. He stands to gain billions while the rank and file stand to gain ulcers and an investor class that fights against them getting health insurance.
The number of absolutely toxic business owners is insane.
The number of absolutely toxic employees is also insane. Are businesses justified to treat employees as if all of them were that toxic? Should not employees then not treat their employers as if all of them are toxic?
I think it’s important to distinguish between human leadership and the capitalist entities they work within.
I’ve worked for multiple small businesses, led by wonderful humans, which ran out of money. When those businesses went under, it tore their leaders apart to let workers go — but those leaders were still constrained in how the could act by economic realities.
There are both leaders and workers who are too cynical about each other. But it makes sense to be guarded with every company, even if I think it’s debatable how best to act — and how we might dream of improving matters at the macroeconomic level.
You don't solve the problem by "humbling the workers".
The solution is rewarding people when a company is successful and more importantly not punishing hard workers. Right now people are under the impression that slacking and working hard will be equally rewarded, because that is the truth. Hard workers also get laid off so that CEOs can make a few extra bucks.
This mindset is completely sane. Sorry but if you work 40+ hours a week and barely can afford a vacation there is no reason for me to work hard. Especially not if I see managers with new cars every year.
> Sorry but if you work 40+ hours a week and barely can afford a vacation
Software developers are relatively highly paid. When they start acting like they’re minimum wage workers flipping burgers at a dead-end job, they’re missing the big picture. That’s the problem I’m trying to communicate.
This is a generalization. Salary in Europe is different to salary in the USA for example. I earn median wage currently. Also lots of non degree having devs out there that aren't 6 figure earners.
I don't know why you come up with an ideological statement like that.
The management culture, anti software/nerd mindset among the population and eastern European competition in the offshoring market have a much bigger impact.
E.g. even though Germany is practicing mercantilist beggar thy neighbour export surplus policies, the country has failed to become an exporter of software or be known for quality software. Anyone who wants to work in the software industry is better off leaving the Eurozone and going to Switzerland where they get paid more in addition to the things you claim are the cause.
I've had the same experience -- employees who do the minimum and then whine when (one case) asked for a raise or he'd quit and I said sgtm; and (a different person) I chose to mentor and promote other people on the team. Some people can't wrap their minds around the idea that our interests aren't always aligned, but sometimes they are and also why would I invest in someone who doesn't invest here. Mentoring and promoting people is one of the best pieces of my job, but my time is finite and I want to also spend it productively :shrug:
It’s not that simple. Even if you take the cynical view that the company is your adversary, the other people who work at the company (including founders, investors and execs) are actually playing a career-long collaborative game rather than a one-off prisoners dilemma.
> >seems to taint young people into thinking that their employer is their enemy
> Is this not true to a first approximation though?
No, not at all. The company wants the employee to do well so that the team does well and the company overall does well. If the company was "the enemy", they company would be wishing for the employee to fail, which is not why they spent a lot of time and money to hire you in the first place.
Now, of course the company isn't your friend (or family) either. The employer doesn't exist in the friend-enemy axis, they're just an employer which is a different type of relationship.
Also, who is "the company"? People in upper management and HR, i.e. those who see you as a number on a spreadsheet but don't ever interact with you personally.
But most of your interaction is with your first and second level managers who are specific people. One would certainly be well advised to cultivate a professional friendship with them. Not only will you do better, but work will be a lot more pleasant.
The company doesn't "want" anything other than to become a bigger pile of money — it's an amoral abstract construction, lacking human wetware and all its messy idiosyncrasies. I think I'd express similar sentiments in a slightly different way: the company benefits when it gets maximum value for minimum outlay over the lifetime of the employment relationship.
That model allows for companies which act in ways wildly counter to the interests of their workers. For example, the private equity firms asset-stripping Toys 'r' Us and KMart mostly "cared" that the workers at a given retail facility not quit before they could be let go.
> the fact that the employer isn't your friend or family is a good working model to keep in the back of your mind.
That's completely different than being your enemy.
What you want to avoid are work environments where most workers are focused on gaming internal politics to get ahead. Those environments are soul destroying.
But that's not all work environments. And most work environments are some mix of internal politics and wanting to actually create good and useful products.
Executives are almost solely focused on financial rewards.
Employees (middle management and down) are explicitly structured to use salaries (to reduce costs/earnings from going to them).
Salary is generally a flat monetary incentive, and bonuses aren't big enough typically. You make more money by promotion up a rigid hierarchy: so that is the true motivation.
And that is politics.
If you have salaries, you have politics, and a downward trend towards more of them.
Engineering workers are often idealistic, which is a different set of motivations to exploit by management for monetary advantage. But idealism/creation leads to turf wars and emotional investment in "your code", which is another entire axis of politics.
It’s just business. You have something they want, they have something you want. Try to take advantage of places where your incentives aligned and watch out when they are not.
In 2009 I worked for a really chill company with small but nice management. The owner/CEO wanted to turn it into a worker-owned co-op.
But one of my coworkers was so stuck in the "management is evil" mindset that he became hard to work with. (Although he also radicalized politically; I think he went from SNP to UKIP.)
> The Reddit toxicity seems to taint young people into thinking that their employer is their enemy and that they have to approach the workplace like they're going into battle with evil managers.
They aren't that wrong however. Over the last two-three years alone we've seen waves of layoffs. Layoffs from FAANGs hit the headlines, but so many more happened without hitting the news.
And the thing is young people... They adapt.
They usually don't have the cultural baggage we older people have, so they often see things for what they truly are without any rose-tinted-glasses from past better times.
Their grandparents were able to get a fairly stable job at a company, stay there until retirement and grow a family. Their grandparents were able to switch jobs IF they wanted to. On the other hand, kids nowadays know they will likely be fired at some point, irrespective of their performance, and that they need to play the game for what it is.
It feels like a self-fulfilling prophecy, though. If you go into a new job, full of cynicism, doing the bare minimum (or less), acting like everyone there is out to get you, then you shouldn't be surprised when you're the first to go when layoffs happen (or sooner, even).
Yes, the labor market has changed, and in many ways not for the better. But layoffs are not new. I remember my dad being afraid of them back when I was a teenager in the 90s. I remember him getting hit by one of them, even, and scrambling to figure out what to do (fortunately he was re-hired by the same company, in a different group). I survived layoffs in the three following decades; yes, the most recent waves were brutal, but I wouldn't say they were anything special compared to, say, ~20 years ago.
You can recognize a company for what it is (a capitalist organization that cares more about next quarter's numbers than whether or not you still have a job), but also be a positive, professional person, who goes in and does good work every day, gets along with coworkers and managers, and doesn't play games. You can be realistic without being a toxic cynic.
> You can recognize a company for what it is [...] but also be a positive, professional person, who goes in and does good work every day, gets along with coworkers and managers, and doesn't play games.
One one hand I agree, but on the other hand I say: it's something that comes with time and experience.
Your examples by the way all come from of way better economic times, and more abundance of jobs.
It's easy to be optimistic (naive?) when times are good. But it's not what the current kids are experiencing, far from it.
Yeah, a lot of Reddit seems to be people wallowing in their own unhappiness.
As far as the attitude toward employers, I kinda get it. A lot of these kids were sold the idea that college will mean a solid, lasting career and, pre-pandemic, a lot of companies were trying to sell themselves as a “family” and throwing cheap benefits around (ie. free food, beer, etc) only to yank most of that back during/after the pandemic.
It also doesn’t help that, inside US, it sometimes just feels like we’re trying to scam each other constantly. All of this is breeding a ton of cynicism.
> lot of companies were trying to sell themselves as a “family”
Has your company actually done this?
When I was doing mentoring I heard this complaint all the time, but literally no one (juniors on first jobs in this case) could point to an instance of their employer saying it. They had all picked it up from Reddit as something the archetypical company did, and they felt obligated to punish their company for it.
Similar problem happens with take-homes: About 90% of the take-home interview problems people shared in the #interviewing channel were entirely reasonable, short, and clearly not real work. Yet many had picked up this idea that take-home problems were unfair because they were “a week of unpaid labor” or that companies were using them as a tool to extract free work from candidates. So they tried protest the concept of take-homes and stated they would refuse to do them in protest. Of course, when they actually received one for a job they wanted they would abandon that mentality and do the problem, and in many cases they preferred that to doing in-person interviews. Yet the mentality remained that take-homes were evil exploitation and they must rally against it because they read so many Reddit comments about it being “unpaid labor”.
Ive worked for plenty of companies that pretended that they cared about the human resources and not one that has ever been upfront about the fact that they will lay you off for a bump in the stock price without blinking.
>Similar problem happens with take-homes: About 90% of the take-home interview problems people shared in the #interviewing channel were entirely reasonable, short, and clearly not real work. Yet many had picked up this idea that take-home problems were unfair because they were “a week of unpaid labor”
It's largely been my experience that a lot of companies think an 8 hour take home is actually 2.
They tend to be badly constructed and full of ambiguities that require you to read the mind of the test setter.
Of course the people who set them dont know this and they never test their tests. My experience on the other side of the hiring desk is that rank amateur shit is the norm.
The "unpaid labor" thing happened to me once, I think. It was a company that wanted somebody to build an X. Take home was "build an X". Not common, doesnt happen to juniors, but it happens.
Corporate America could clean up its act or Gen Z could force itself to grin and bear it with a smile it like you seem to want. I wont hold my breath for either to happen.
As someone approaching 50 years old, "workplace like they're going into battle with evil managers", not sure where you are located, but in southern europe countries it has always been like this, regardless of the job.
That is why many countries still have a strong union culture, everyone gets exploited to the bones and they should be happy to have a job if at all.
It is quite depressing sadly, but that is what happens when many managers lack business education and see employees as replacable cogs without rights.
> thinking that their employer is their enemy and that they have to approach the workplace like they're going into battle with evil managers.
Given how many managers are strongly steeped in the mindset that every IC is an innately lazy bastard out to scam the company out of as much money as possible for doing as little work as possible, and explicitly design their policies that way (not to mention structuring their personal conduct that way), this is probably wise.
Hopefully it can galvanize more of them to form or join unions! Labor power is a vital tool in the current age to take back some of what we have lost over the past few decades to burgeoning corporate power.
The employer might not be the enemy but the employer certainly is not a friend either. Also its expected of young people to spend their time off with these things as well. All this plus the constant fear of being laid off results in people simply not caring too much. Which is reasonable. Maybe the bar is simply too high for what you get?
Companies are amoral profit-seeking automata. Individuals, even those in senior leadership, have only limited capacity to act in opposition to the company's nature.
Workers can definitely forge mutually beneficial relationships with such entities but anthropomorphizing them leads to sorrow.
Corporations are the reason for lobbyism and wealth accumulation which actively damage my personal quality of life. Its only fair for me to not view them in a positive manner. They view me as an asset, I view them as necessary evil to afford housing and food. I should not anthropomorphize them, yes, but I can anthropomorphize the management and stakeholders. And if they are greedy and behave as such, its my good right to be repulsed by them.
This only applies to large monopolistic companies in an unregulated, thus nonfree market. The most companies, which actually perform the work in the country are small people, who have huge risk and not much money and generally have the company, because they like the work and want to create things. Most people are moral, otherwise we had far more crimes.
Small companies don't even have a CEO. Most people can afford to life or they would be dead now. :-)
The company boss won't afford treating his costumers like assets, because then he won't have costumers and bringing his children to the kindergarden will become the gauntlet.
It would greatly surprise me to see one company owner paying themselves out equally to their employees. While that's not the case that person is exploiting their employees labor for their personal gain. And no, people cant afford life. They do so many things to meet months end, which cant go on forever.
> to see one company owner paying themselves out equally to their employees.
Depends on what you mean. Getting the same pay, the same pay per hour or the same pay per hour averaged over a long time? Bosses often have a higher pay, but they are also more likely to "work" at home during the family meeting or at night, without it being clocked in anywhere. That's kind of the deal with being the company. They also don't see any money in when the company is in a rougth situation. Often they also don't have a salary at all.
It's a simple business arrangement. Corporations give you money, you provide work.
Yes it's possible and maybe even common to be taken advantage of in a business arrangement but that doesn't negate the concept of honer. You have agreed to provide work for a set amount of money. If the other party isn't acting honorably you can leave the arrangement but otherwise you should fulfill your part of the deal as best you can.
When most parties act honorably society does well. When the concept of honer breaks down into lying, cheating and scamming as a way of life, society will collectively not do well.
As far as I'm aware, nobody ever improved the situation of society by acting dishonorably. The Reddit complainers should try forming their own Reddit society and see how it works out.
No I should fulfill my part of the deal. In no way I am obliged to do it "as best as I can". If my employer isn't happy with my work, they can let me go. My employer is essentially exploiting my workforce for their gain and unfortunately this is not compensated fairly in most cases. I'll work hard if I actually believe in the cause and am treated fair. Otherwise its minimal effort that gets the work done.
> The Reddit toxicity seems to taint young people into thinking that their employer is their enemy and that they have to approach the workplace like they're going into battle with evil managers
What you’re saying is very true unfortunately and is going to be a real problem. It not only affects how you view your employers and companies but also your peers. If you’re exposed to extreme views even before you start your first job, what happens when you eventually start your first job?
Cynicism usually doesn't help you, no matter how trendy it might be to be a cynic.
The more likely outcome is that you'll (intentionally or unconsciously) perform poorly, have a bad attitude, and always act like your employer is out to get you. Your managers will notice this and not like working with you. Eventually you'll get managed out or fired, and then your cynical opinion will be reinforced by this experience, even though it was avoidable.
I'm not saying you should think your company is your friend or your family (they're not!), and I'm not saying you should work uncompensated overtime, or buy into the whole company "mission" and "values" and stuff. But do go in with a healthy attitude, get your work done to the best of your ability, and act professionally and, sure, be friendly toward your coworkers, and develop relationships with them and your managers (professional ones, not personal ones, if that's not your thing). If your management still treats you poorly, then yes, absolutely, get out of there. But going in with a bad attitude isn't going to set anyone up for success.
The more likely outcome is going to be that these people will be left behind. If you came in with extreme views like say for things like DEI, would you be able to work that well with a female manager or a black coworker? If you came in with extreme views about lofty wage expectations or not working extra as a salaried employee, how likely are you to be hired or be put up for promotion? Keep in mind, we are not talking about reasonable takes, we are talking about extreme views that are formed solely through online spaces and not personal experiences.
> Keep in mind, we are not talking about reasonable takes, we are talking about extreme views that are formed solely through online spaces
You’re taking it out of context. I’m not talking about a 996 culture or regular overtime, I’m talking about ocasional extra push to make things work. Any full time salaried employee will tell you that it is completely acceptable to work extra here and there, when you are allowed to take it slow at times.
Framing some of the extreme views of DEI as DEI skepticism makes me think you don’t understand the extent of radicalization that young unemployed people are going through.
You're commenting on a blog post by a B2B SaaS company that sells AI engineer stack ranking with a cute ball of yarn mascot and you're wondering why they're cynical?
The need to search for what they are being exposed to already outs them as being out of touch. Them coming to the wrong conclusion only cements their misunderstanding for both the industry's status-quo and the experiences lived by up-and-commers.
10 years ago I'd pretty consistently run into 4chan-types as well (I was browsing 4chan as well, so I'm not immune to this).
There's definitely an aversion to treating real life and "the internet" separately in a certain cohort of people. But the kinda edge-y meanness gets really weird when it's applied to coworkers and the like.
> I've noticed an inverse correlation between how much someone is immersed in Reddit, Twitter, and Discords and how well they function in a business environment.
To be fair in most jobs that is the relationship approach you need to not get screwed a lot of the time. Cs work has been one of the few exceptions because it was flush with money and in need of workers for so long.
There are also people marketing things on Reddit to young people: alt coins, option trading, sports gambling that have an incentive to say working is for suckers, your only hope is to get rich quick. I think most young people are smart enough (or cynical enough) to reject the get rich quick schemes. But the same cynicism allows them to accept the messages that tell them that things are hopeless for their generation, work is unrewarding and you are way behind.
> some young people are so hopelessly immersed in the alternate reality that they see in social media that it's hard to shake them free.
One of my favorite staff/principal engineers always begins Monday's by asking people what they did on the weekend. He always talks about the things he did - farmers market, local parade, etc.
It's shocking to many of the junior engineers. They generally do "nothing".
Anyone who thinks their boss/coworkers are their friend is surely deluded. There is no loyalty in this day and age-- both from the employer and employee side.
Even asking "how was your weekend?" -- its implied that you just say good rather than sharing details of what you actually did -- they don't really care.
Even if you want the most cynical approach - networking is an essential aspect of career development. If you stick to just "job description during work hours" you won't get far.
Building a cohesive team involves sharing interactions like this. If you truly value your privacy, I suggest you come up with an alternative thing to discuss: sports, weather, funny stories, etc.
I've certainly had weekends where I very much did not want to share what i did, so I deflected in a way that kept the conversation going.
If HR is asking about where you were at 3:15pm on Saturday, and who you were with, and whether you were using work resources at that time, I would start to worry. But a very large and generic, "so what did you do this weekend" - where you are in the driver's seat, that's not the same thing.
When I look back at previous jobs, my strongest regrets are not building stronger interpersonal relationships with my coworkers. I've since rectified that.
Think of it this way, if you must: coworker relationships are owned by the company - personal relationships are owned by the employees. When you become friends with a coworker, you acquire an asset that will go with you when you leave the company. Much like a new skill, this asset will allow you to get higher pay somewhere else.
Without significant safeguards and in the average case, the employer seeks to extract more from you than it gives back. You on the other hand, must work or you will die. This is a power dynamic that positively stimulates the growth of bad behaviour. Knowing that has nothing to do with Reddit, it is an inherent fact of this system.
Outrage yields clicks/revenue. So there is a financial incentive for media and influencers to fuel extreme narratives.
With that said, there are truths and lessons to be learned on the internet. I think it's possible to take that benefit without developing an overly negative outlook on everything.
In fairness, many employers exploit their workers. Wages have been supressed for multiple decades. Rights stripped through arbitrary pay-for-play work agreements, etc.
Eventually you lose all goodwill and get a saturation of ill-will related to that exploitation, debt slavery through student loans or worse. Quite a lot of business people blind themselves to the reality.
Those that drink the kool-aid are always in the next round of layoffs, after they pulled 80 hour weeks to have a project come in on time. Its not reddit fueling this, its bad business behavior at scale unfortunately.
No one can fool everyone all the time. The deceivers are always eventually found out, and then its "we can't find anyone"...
The young listen to the stories of people who have accrued a certain amount of experience who are in their 40s now, and quite a lot of those stories are not success but rather exploitation, use and abuse, oh and now all the jobs went to AI... its a trend, and its going to get real bad because the old needed the young to take over those jobs to fuel their money-printing debt spree over the past 30 years. Demographics are destiny, and you either get slave labor, or you get movements towards letting things rot when the environment reaches a certain threshold, and is disadvantaged in the fullest sense of the term.
No offense, but in America, this is true, employer are an enemy.
Reddit is american and trusting businesses is how we continue to fail.
Like mike tysons iconicquote, everyone has a plan until they get hit in the mouth. You may have good intentions as a managsr until theres a "market correction".
In america, this business toxicity is well deserved and will only get worse.
Sure some may take defensive employee relationships to far but acting like this posture is toxic to appropriate self care is gaslighting.
I've also seen less and less passion for the career as the years go by (ie. less computer nerds).
I have such strong but mixed feelings about this.
There were major downsides to the days when programmers were all computer nerds. Specifically, it made the career very off-putting to anybody who didn't fit that stereotype. Any time you do that, you miss out on a lot of potential talent.
Still, though. There were upsides. The passion level seemed higher. The climbing salaries attracted people solely attracted to... the climbing salaries.
I'm tired of being treated like a fucking Martian because I understand basic data structures and why sometimes you might want to use a tree or some other computer science 101 shit.
When I hire juniors, I try to give them problems
that I know they likely won't be able to solve in
the interview because I want to see how they think
about things.
Are you explicit about this when you pose the problems?
I can see an upside to not telling them. If they try to bullshit their way through an answer because they think a definitive answer is expected, I guess that could be a useful data point. But it feels mean and unethical.
When I've done this as interviewer I've been pretty explicit. Like, "Hey, this is something we've been working our way through for months and we don't expect you to figure it out in ten minutes. But how might you approach this?"
I have fairly limited experience as an interviewer so I'm curious how others have approached this.
I think it's way worse now with barely any upside but salary, compared to 10, 15 or 20 years ago.
It’s 100x worse with the tech bro chest thumping and the competitive toxic behaviors inside teams.
And autonomy/ownership is now rock bottom with multidisciplinary teams. Even things made supposedly to empower devs like Agile/Scrum became tools of a managerial class that wants to decide where each pixel goes.
The reality is there was a sweet spot - when the industry got less toxic and started attracting visible minorities, and you started getting some diversity of thought AND passion.
Then the money got too good and it started attracting the personalities that 10 years earlier would've become finance bros and caused the 2008 crash. And they fucked it all up.
People with good software skills had paths to making a lot of money from the day computers became widely available.
Look at Woz in the 70s or Microsoft or the Macintosh team. From the birth of the PC revolution there was a path to getting rich from computer skills if you were in the right place at the right time.
My aunt's career as an IT engineer started in the 80s. She went into this field because it was a new niche to explore and hardly anyone knew their way around it.
Her role was to take part in digitalisation of the bank she was working in and by "digitalisation" I mean first putting the equipment together.
Interesting - I see the appeal of this approach. Equally, I do the opposite - I give easy problems which can be solved quickly. I find people either can do them pretty quickly, or not at all.
I used to ask harder problems, like you, but found two failure modes: either smart people who panic and can't think straight in an interview, or people who can do high level thinking but then can't swap two variables in actual code.
That said, thinking back on my recent hires, I'm not sure this method has yielded any improvements.
> That said, thinking back on my recent hires, I'm not sure this method has yielded any improvements.
I've been involved in hiring panels across several companies with very different interview strategies. Before going into this I leaned heavily toward your style: Easy questions that act as a simple filter for people who can't program.
Looking back, I have to admit the simple question approach wasn't as good as I thought it would be. The companies who gave more difficult questions and pushed candidates toward harder and harder interview problems with the expectation that they would hit a wall at some point really did sort candidates better. I know there's a widespread belief that difficult interview questions are prone to too many false negatives due to anxiety in interviews and people who freeze up. However, when we tried interview do-overs or alternate take-home problems as a fallback for these candidates we didn't really see any improvement. I can think of a few candidates who we talked ourselves into giving a pass because we assumed interview anxiety was obscuring some real skill, but we got it wrong in both cases.
I still don't know the correct answer, but these days I'm leaning more toward the interview formats where the questions get hard enough that the candidate is really challenged as opposed to the simple ones like FizzBuzz where it's just a quick filter. Note that I've worked in domains where algorithmic problem solving is something we actually do, so finding interview problems that match problems we've actually solved in production is possible, not just rote LeetCode stuff.
> simple ones like FizzBuzz where it's just a quick filter
I stumbled across a thread in r/cscareerquestions or maybe r/cscareers a while ago where several people argued that fizzbuzz was too hard because: "no-one is using the modulus operator in day to day work, so it's not something one should be expected to remember."
I found it very funny and draining at the same time.
I just grepped through a 250,000 line project on my system and I had only used the modulus operator six times.
I'd still expect a programmer to know it but that should be tempered by the fact there will be parts of the technology stack you are intimately familiar with that another person might barely use and vice versa.
The company that used FizzBuzz had a rule that we’d give the candidate an explanation of the modulus operator if they weren’t familiar or didn’t remember.
The technical question I have start easy and get progressively harder as we go deeper. I think thats a good strategy - everyone I interview should be able to get started, even if they're feeling anxious, and if they cannot then we can both save time.
Then as it gets harder the interviewee is familiar with it, and I find that often people with less CS experience are still able to work through it even though they don't know the terminology. And we have a grading based on how much hinting we needed to give, which is very helpful guidance to me as an interviewer.
The problem I usually pose is a slimmed down version of one I actually tackled, so it doesn't feel like an arbitrary test that has no real application. Which again, very helpful for when I need to write a rejection email, as I can say where the candidate didn't meet expectations, which often seems appreciated. We're encouraged to reject during the interview if it's obviously not going well, which I've done but I do find very hard.
What a refreshing level of honesty! Admitting that perhaps your new method also doesn't work. Thanks for sharing that! It's often lacking from online discourse.
(I also prefer easy-to-solve challenges. And usually bring up more complex topics during problem solving to assess candidates)
I get where you’re coming from. I’ve have experienced the “smart person who panics”.
I usually tell them upfront that I’m not looking for the correct answer and that I just want to see how they break the problem down. I also try to reiterate that it’s okay to fail (at least at my employer) and that’s the point of having a team.
Usually, that calms them down enough to get the interview going. If they don’t calm down, I’ll try to simplify the problem or give them small ideas.
We’ve also resorted to having a follow up interview with the candidate if we get the sense that they were overly nervous. I have a couple teammates that are very good at getting people to relax and we’ve had a good amount of success with letting them lead the follow up (instead of myself since I know I can come across fairly cold).
I noticed I had an immediate bias against candidates that showed up to interviews using Windows (except for one person who was in WSL and seemed very comfortable in bash), or, not having their SSH key set up for cloning the github repo we used for our interview, or fumbling back and forth with their mouse between vscode and the browser, not using all their screen real estate, or not knowing even the most basic of keyboard shortcuts (I nearly cut an interview short once when I saw someone right click copy right click paste in vscode but I wanted to give them a fair shake so gritted my teeth and went through with the rest of the interview. They did poorly.). I never used it as a for/against factor but for me lack of interest in computers, and a lack of familiarity with the tools of our trade, is a red flag.
On the flip side, immediate green flags for me were: using linux, using keyboard shortcuts to manipulate windows / within the IDE, using an IDE other than vscode (vim/nvim or emacs are huge green flags), having custom scripts, having custom themes, or, the biggest one, self-hosting some applications. And Lo, these candidates also seem to perform the best in my experience.
That seems pretty opinionated, and by building a monoculture, persons with high openness to experience likely won't be drawn to your workplace, and you're also leaving on the table the potential that comes from diversity (a loaded term these days, but substantively still a valid point).
Depending on the kind of work you do and your customers, this may not matter to you, but in a lot of industries, you need the diversity to be able to properly represent and empathise with your customer base, who might be from a very different social cohort than your developers. And Linux desktops, which your customers almost certainly won't be using, may also make that difficult.
People who spend a ton of time ricing their Linux desktops may be bad at setting priorities. If you expect them to continue their ricing, but not do it "on the clock", you're implicitly age-discriminating and discriminating against people with families and/or hobbies and/or "a life".
Also keep in mind that your company is likely only one of a dozen or so workplaces that these people apply to in a given month, sometimes for many months before they land a job, and they probably haven't set up their computer specifically to impress you, but rather to fit the lowest common denominator among the requirements they face from all their application processes and educational activities, and some of that will require Windows.
Some points in parent comment are absolutely valid IMO. Would you hire a carpenter who walks back and forth to his toolbox to pickup at single nail at a time and then use the hammer with both hands near the head. And when cutting a 4x4 beam will use 1-inch strokes with the handsaw (again with two hands).
Using SSH to get the project files is not a good example of a hard to learn skill they need for the job, they should just have provided a zip on a web page or so or sent it directly to the user.
So to me it seems most of the test was just "have you done these trivial things before" rather than test if they can program web apps.
It would be like the carpenter being forced to buy nails and docking them points for now knowing where the closest shop to buy nails in are and taking time to look that up. Of course it is better if some look it up quicker, but its not a core part of the job. Then when they drove there, you gave them a manual stick car, so the ones who were used to automatic fumbled around in the car, also bad look! So now you see carpenters who drove manual were much better, as your biases told you! That is not really the skill you should care about, it is very quick to tell him where it is.
I don't think your analogy is apt. Having your development environment set up and knowing how to use your tools reasonably efficiently seems like it should be a low bar to pass. We're not talking about giving someone unfamiliar tools or an unfamiliar vehicle and expecting them to perform higher level tasks. We're just watching people use their existing tools to see if they're actually familiar and comfortable with them.
OP's post was "having custom themes" "bias against people using windows".
These aren't tests if a user can si their job or knows their tools. This is a cultural purity test to see if they have the same quirks as OP. And is a terrible way to judge if someone will perform.
I had my own reply, but using your analogy if I may: if I asked an apprentice carpenter to measure up and build some sort of structure in front of me with the tools provided, and they stumbled and made some awkward choices but the result was otherwise sound and they had other good qualities, yeah I'd consider hiring them. I think the scenario you describe though would be more equivalent to someone who flat out doesn't know how to even use a computer, which is a different case (I wouldn't hire that person).
I was thinking about basic tool use. I expect a junior engineer candidate to wield a computer way better than my mom. They are applying for a junior engineer position not and apprenticeship starting with close to zero training.
I have no problem with candidates who stumble and make awkward choices during the interview, as juniors by definition lack experience and the interview process is a stressed situation.
I think we need to stop seeing "can program" as being equivalent to "is an expert computer user", because those are genuinely two different, if related and overlapping, skillsets.
There is no particular reason that an expert C++ programmer also needs to know every keyboard shortcut or be an expert at the Linux command line, if those things are not actually relevant to the job you're trying to hire them for. Just because it's been common among millennial and older programmers (like most of us) to combine the two doesn't mean we should discriminate against programmers who don't fit that mold, as long as they're actually good programmers.
You're presenting a false dichotomy, though. No one in this subthread is expecting an expert computer user. We're just expecting them to have their development environment already set up, and to be familiar and comfortable with their tools.
If they come in with a Linux laptop but aren't comfortable with the command line, that's weird. If they come in with a Mac or Windows laptop and do solid work only with GUI tools, that's fine. If the job requires being able to use specific tools (command-line or GUI or whatever), then the interview should evaluate that as well.
Well, first of all, most likely dozens of them, at least, are good programmers.
In fact, most likely dozens of them will be perfectly good hires for the position.
The idea that you must hire only the single best possible candidate can lead to some pretty dehumanizing treatment of applicants, when the truth is that a) there almost certainly is no "single best possible candidate", there are many people who would do a roughly equally good job there, and b) your processes are almost certainly not optimized to actually find the true single best candidate for the job, but rather the person who is best at applying and interviewing for jobs among the candidates.
All that said, for "how do you actually design a better process"...I sure as hell don't know. I'm a programmer, not an HR person or hiring manager; that's outside my skillset. But that doesn't mean I can't accurately identify glaring flaws in the current system based on my understanding of human nature.
> I'm a programmer, not an HR person or hiring manager; that's outside my skillset. But that doesn't mean I can't accurately identify glaring flaws in the current system based on my understanding of human nature.
No, it pretty much does mean that.
Until you can come up with concrete improvements and understand the potential flaws in those proposals as well, you can't usefully critique the existing system.
Better example: you press the ok button, and sometimes, only sometimes, it triggers twice.
You tell your lead, they say "I know." You ask why they haven't fixed it, and they lead you down a deep rabbit hole of fundamental, unsolved issues with event bubbling, and show you the 20 different workarounds they've tried over the years. "In the end," they say, "nobody's figured out how to not get it to sometimes fire twice."
Thus hiring. Sure it looks not right to you, but, come join us in hiring and you'll see, a better way has yet to be found. At least when I run interviews it's an actual real problem rather than a leetcode thing - I always just grab something reasonably difficult I recently did for the company and convert it to an interview problem.
Your guess that ~24/200 will be "good enough" is unfortunately wrong in my experience. In my last go, only 10/200 were able to demonstrate sufficient knowledge of the required skills to be hireable, and by that I mean fulfill the needs of the role in a way that justifies their salary, rather than be so inexperienced as to be a drain on resources rather than net gain. Of that 10, 2 were the best. Criticizing not wanting to work with the best doesn't make sense to me. Lemme put my capitalism hat on, there: we have competitors, we need to code faster than them to get clients before them. If we don't, we lose revenue and don't get another funding round, and the company dies. Also all hiring is reported back to the investors who have an expectation we get good people. Also we give equity - why wouldn't I want the best possible people on my team so that I have the highest chance of my equity paying out big?
Capitalism hat off, yup, this system is dehumanizing and not configured to deliver the greatest societal good. Alienated labor detached from the true value of the goods produced, absolutely. What can I do about that at my job? On the side I run a co-op that operates under literally the opposite principles: anyone can join, we will train you to get the skills you need to get better jobs, and no margin of the rate is siphoned away for a capitalist class.
The problem with your last paragraph, of course, is that there is no "system", no generalizable concept of "societal good", no such thing as "true value" independent of the subjective evaluations of an object by disparate parties, and no "capitalist class" that actually exists as such.
Everything is down to particular patterns of interaction among particular people, all acting on their own a priori motivations, with none of the reified abstractions you're referencing actually existing as causal agents.
I applaud your efforts with the co-op you're describing, and if you're able to make it work, scale up, and sustain itself in the long run, more power to you. But it's a bit strange to imply that in the more common scenario, it's somehow untoward for the people paying the upfront costs of your endeavors -- and indemnifying your risk exposure -- to expect a share of the proceeds in return.
> Your guess that ~24/200 will be "good enough" is unfortunately wrong in my experience. In my last go, only 10/200 were able to demonstrate sufficient knowledge of the required skills to be hireable, and by that I mean fulfill the needs of the role in a way that justifies their salary, rather than be so inexperienced as to be a drain on resources rather than net gain.
I mean, this is fundamentally dependent on the specific position being hired for.
I'm interested in this conversation however this comment doesn't really mean anything to me. What are you saying? And so, how would you hire? If you just wanted to say, "hiring sucks," I agree. Hiring sucks.
This comment is saying "the percentage of any given 200 programmers applying for a job that are, in the end, reasonably fit to do the job depends on the job being applied for".
If the job is a mid-level C++ programmer job at an insurance company, many more of them are likely to be good fits than if it's a senior embedded systems architect job at an aerospace firm.
Yeah, seems I'd be doomed for doing interviews on my Windows laptop for the webcam and the compatibility with my bluetooth headset rather than my linux desktop. Tunnel vision and a lack of empathy are negative signals, so you could say I'd have dodged a bullet, but unfortunately in these situations I'd need the job more than the job would need me.
From my perspective, I think it shows poor judgment that you've chosen hardware where you can't get your webcam and bluetooth headset to work under Linux. Or you haven't bought a wired headset and a USB webcam that you've researched and know works properly under Linux. It sounds like the alternative you've chosen is to take interviews using an OS and development environment you're not comfortable in, which seems like a foolish choice to make.
These days it's not difficult to buy hardware with Linux in mind, even on a budget. (And if you have two computers, I feel like budget is probably not really a problem for you.)
Even if you bought with Linux in mind, there’s no guarantee what works today works tomorrow. I have a Linux box that had working HDMI audio. A recent set of updates to the audio subsystems now means that when the box boots, the HDMI devices are muted by default. It seems like something changed in the order that things are initialized and the HDMI devices aren’t present when the audio system is initialized so none of your saved settings are re-applied. Every boot now requires manually fiddling with the audio settings to reset where audio should be going and unmute the devices. If my choice when going into an interview is the box that you need to buy specific hardware for and hope that no one re-configured the audio subsystems in the last update or the box that runs an os by a company known to put explicit code paths to recreate a prior edition bug that other software relies on… I might choose the latter too, even if it is windows. Of course I’d also probably choose the latter because there’s a non zero chance the interviewer is going to want to use some conferencing software or website that doesn’t work in Linux regardless of how well matched my hardware is.
I simply don't use a headset or a webcam with my home Linux setup, because it's often been a hassle to deal with, and my work setup is separate. For screen-sharing type coding interviews, I have a perfectly functional remote SSH setup from my windows laptop, which took less time to setup than the last time I fiddled with a bad headset connection on Linux a long time ago. I find the "not using all of screen real estate" accusation to be strange as well, because usually screen-sharing is ergonomically limited to 1 screen, but people may usually work with two screens and not have developed habits to make 1 screen work.
> sometimes for many months before they land a job, and they probably haven't set up their computer specifically to impress you
I wouldn't expect them to. I would expect them to have their computer set up to program. If it's not set up for programming, then, that's ok, they just won't fit in in an environment of people who really, really enjoy programming, and most likely aren't able to program at the level we expect. This theory worked out - about 10% of candidates were the kind that program regularly, for fun, or at least to build their portfolio, and of that 10% the one we ended up hiring turned out to be phenomenal.
Like I said, the people who got furthest in the interview (solved the most problems) were the ones who had computers set up to program and were comfortable in their environment. Everyone got the same email, everyone knew they'd need to clone a repo and run node, and everyone who got the email had already passed the initial screening so I'd expect them to actually start reading our emails and taking this stage of the interview process seriously, considering it was the final stage (and the only stage involving actual programming).
> you're also leaving on the table the potential that comes from diversity (a loaded term these days, but substantively still a valid point).
Diversity comes in many forms. Someone not great at programming, or not that interested in it, I'm happy to select against. Do you have a reason I shouldn't filter these folks out? We're paying someone to code at the end of the day so I'm pretty confused at all this pushback to my bias towards "interest in computers."
The other diversity markers I don't think were selected against - I have no idea what "high openness to experience" means but we had people with all sorts of different personalities and interests that we interviewed, all sorts of backgrounds, and sure all sorts of different gender expressions, national backgrounds, refugee status, race, so on.
> People who spend a ton of time ricing their Linux desktops may be bad at setting priorities. If you expect them to continue their ricing, but not do it "on the clock", you're implicitly age-discriminating and discriminating against people with families and/or hobbies and/or "a life".
Sure, and every hiring manager that puts people through a coding interview is implicitly engaging in ableism - someone with severe mental disabilities won't be able to pass the interview. Capitalism is ableist. I agree. They also had to have right to work - something I personally don't give a shit about but the State does. What am I supposed to do about it?
Anyway interest in computing and "having a life" or hobbies or a family aren't mutually exclusive. At all the companies I've worked in, I've been surrounded by super nerds with families and other hobbies, alongside interest in computing. I've known a mom that went sailing every weekend and programmed circles around me, a married individual running a pokemon selling business and a lasercutting etsy store on the side all while having the healthiest marriage I've ever seen and personally aspire to, folks that brew beer or garden or make cheese, a hella greybeard that runs DND (and ran a campaign for the office alongside two others he was running)... all of these people I mentioned far better programmers than me, far more advanced knowledge of computers than me, and I don't do even close to that much outside of computer stuff.
So, I don't know what to say other than I guess the last few companies where I worked and ran interviews at at just had really energetic people and wanted to hire more energetic people? That's something to criticize?
You mention IDEs besides VS Code, Linux, and ricing as “green flags”. Those are not proxies for “being a good programmer” and they are not proxies for “being enthusiastic about programming”. They're just selecting for programmers who share your subjective preferences on matters that are the equivalent of “vi vs. emacs”.
The only workplaces that realistically allow people to use Linux desktops are academia and top-5%-sexiness-factor startups. The other 95% of us have to use what our boss tells us to use (and he got told by the insurance company that scammed him into cybersecurity insurance). Those of us who have families, don't spend our leisure time staring into yet another desktop computer that isn't our work machine, so how, on earth, would we be using Linux desktops?
Conversely: Imagine someone has spent an 8-hour-workday setting up their tiling window manager, so they can “improve their productivity” because now they don't need to spend 2 minutes painting all their windows into the right positions in the morning. That's an investment of time that takes (8*60)/2 = 240 days, so roughly one work-year, to amortize. What does that tell you about the time management skills of that person?
I don't say that to knock tiling window managers: If you're into it, be my guest. It's perfectly fine for reasonable people to reasonably disagree on those kinds of subjective preferences. That's what subjectivity is all about. And that's why it's valuable to hire a diverse range of people who have different viewpoints on these kinds of things.
EDIT: ...and that's what I mean by "diversity": To include both family-people and people without families. Young and old. People with an academic background and people without one. Vi-people and emacs-people. Please don't strawman me by bringing up disabled people and work permits and whatnot.
> To include both family-people and people without families. Young and old. People with an academic background and people without one. Vi-people and emacs-people.
Well, I don't know what to tell you, you've just described my entire team, same as my previous company that had a bunch of linux/unix dweebs, so the fact that we're all really into computers hasn't hindered us from this diversity.
All my jobs have let me choose my OS, all my jobs were full of people exactly as you describe, they just all happened to be really into computers. How the family folks found time for it is a question I still ask myself to this day when I compare my knowledge to theirs, but regardless, it wasn't a hindrance.
So I maintain my confusion around selecting for this. It's just not my experience that it prevents me working with family folks, or old folks, bootcamp kids and phD ML people.
So, ok, we've come this far: How do you run interviews? What's the alternative to the way I've seen?
> You mention IDEs besides VS Code, Linux, and ricing as “green flags”. Those are not proxies for “being a good programmer” and they are not proxies for “being enthusiastic about programming”. They're just selecting for programmers who share your subjective preferences on matters that are the equivalent of “vi vs. emacs”.
Are you sure about that? I have a strong suspicion that there may be a measurable correlation between using IDEs and other tools that aren't currently trendy/overhyped and having a stronger-than-average foundation of experience.
Given that VSCode is the big, trendy IDE at the moment, doesn't using a different one indicate that a developer has, at minimum, invested some thought and effort into considering alternatives and making a conscious choice?
> The only workplaces that realistically allow people to use Linux desktops are academia and top-5%-sexiness-factor startups. The other 95% of us have to use what our boss tells us to use (and he got told by the insurance company that scammed him into cybersecurity insurance).
This is super ironic and shows your "us" in "the rest of us" is a tiny, marginal group, maybe "Silicon Valley programmers" or something. In most small software companies they couldn't care less what you use, the only thing they look at is perceived "speed". You could install Red Star OS and get a few pats on the back if you're closing the highest number of Jira tickets.
Hell, nowadays more and more are full remote and the devs do their work on their personal device. Or they do BYOD. Work devices are a cost center.
It's the opposite, the only places that force a particular OS are the top companies for whom compliance, fleet management and such are priorities.
Kind of funny, these mutually escalating accusations of being a member of an out-of-touch elite.
All it takes for BYOD to become difficult is having to handle personally identifiable information under the rules of the GDPR, or having some kind of professional indemnity insurance with cybersecurity provisions, perhaps having quality management certification, being in certain highly-regulated professions like law or medicine, being in the public sector, working government contracts, etc. etc. (the list goes on and on) -- I'm just finding it hard to believe that this list doesn't capture most companies.
But then again, maybe, I am a member of an out-of-touch elite.
> I nearly cut an interview short once when I saw someone right click copy right click paste
I like to live in the terminal, but I still sometimes do that. There are multiple clipboards, so using the mouse might sometimes do something different and sometimes I'm just tired and want to use my hands in a different position. And if I selected with the mouse its not much more effort than stopping the selection. You press down left for the selection, move for selection, at the end roll the finger over to the right mouse button without lifting, continue moving so the pointer goes over the rollover and lift the finger again once the pointer is over the copy action. This is the same amount of finger lift than just stopping the selection. Then pressing one or two keys on the keyboard are two finger movements more.
The interview has various portions, given in sequence. The ones who got the furthest (or ran out our interview to where we had to invent "new fun bits" on the fly) were the ones who I mean when I say "performed best."
The interview was implementing in live coding a prepared frontend stack. The email sent out indicated explicitly the task, that they'd be expected to share their screen and clone a repo off github, run `npm` commands, and then pair program. So those that weren't prepared for this, fussing around with ssh keys not set up or node not installed, or not knowing how to use bash or git, yeah it counted against them.
Remembers me of a fellow student who refused to maximize his editor window. It turned out that he moved the text cursor to the next line with the right indentation by using just a lot of spaces.
Some of these yes, some of these no. In general being a clicker is a completely fine way to weed people out. If you don’t code like time is on the line without being asked to, I will not take the risk of needing to ask you.
I’m less passionate about windows and have met some absolute wizards who use it, but in general it’s a negative indicator.
> cloning the github repo we used for our interview
Unless it's a very well-known big tech, I'm not sure I'd feel comfortable running any externally provided code during the interview. For all I know, it's RCE with potential to steal cookies and/or crypto.
It's a FOSS repo on github... you can just look at the code yourself. If we RCE you you can easily sue us lol.
So for you, how should a company determine from 200 applicants, which one will be able to do the job best? Or at least some approximation to get down to the 5 most likely to do the job best?
I think going by that, for juniors anyway, isn't great. Remotely coding during an interview isn't a great environment to start with, and you're probably seeing a lot of people unable to achieve any sort of flow because their mental capacity is devoted to the interview. Some people also won't pick up more advanced tooling until they have to start coding day after day for a living, and until they have other people to learn from. That was my situation anyway.
I am sometimes forced to do this because with markdown, Ctrl+Shift+V will render the markdown instead. I almost never use Ctrl+V because it will append paste instead of replace paste.
Using vscode wasn't a red flag, using a different IDE was just a green flag. Everyone uses vscode, I wouldn't hold it against anyone for doing so, especially not a junior. But picking a different tool exhibits a unique level of interest in the job and our tools, and a different mindset. Those are pluses for me.
Nobody was rejected because they used windows. It just so happens that none of the windows folks got past problem 1 of 3 (as in, they ran out of time without solving).
Edit: I'm remembering now, one of the windows folks did get to the end of the interview, and they were the first person I recommended actually, so it's not like it was a deciding factor, just something that I'd see and go "hm" about.
If I handed you 200 resumes and said "hire from this set our next junior frontend engineer," how would you do it? Assume: generic b2b SASS, post-seed, 5 person engineering team making first junior hire.
Well, the lacking passion could be explained because the most known tech companies aren't very attractive. They intentionally obfuscate any technology, restrict access and disallow experimentation.
If you want to leech on the crowd that likes tinkering, you shouldn't give them some shitty iOS/Android environment and call it a day. For the industry, tinkering has become a security problem, scary warning boxes about unverified code being run on a piece of metal. How horrible! It is old and stagnant and just not that interesting.
There are some alternative venues instead, but they have a focus elsewhere.
> a lot of kids coming out of college have done little more than memorize Leetcode problems and outsourced classwork to AI
Even before AI, there were issues with super-polished leetcode grinders. Their entire skillset was passing FAANG interviews via memorization of correct solutions and scripted answers.
An effective technique for identifying these cases leverages the fact that you can only have a "correct" answer memorized if optimal solutions exist. Fortunately, there are many common and relatively simple problems in computer science and software design that require reasoning from first principles because globally optimal solutions can't exist even in theory. Small changes to the problem constraints lead to wildly divergent design outcomes that are effectively not enumerable. The possible solution space is so large that you can't realistically memorize it even if the problem is relatively concise and well-understood. The pure leetcode grinders never seem to have studied problems without tidy answers.
The answers don't even matter that much, I am always more interested in the demonstrated ability to recognize and reason through the implications of constraint changes when there are no correct answers. People with solid computer science skills can usually muddle their way through it, whereas many people with immaculate leetcode skills fail the most basic versions of this.
The most important skill of juniors was demonstrating that they could effectively reason about and were motivated to dive into problems they had never seen before. These were always the juniors that could be rapidly developed into strong senior engineers, which is more or less the objective when you hire juniors.
> The answers don't even matter that much, I am always more interested in the demonstrated ability to recognize and reason through the implications of constraint changes when there are no correct answers. People with solid computer science skills can usually muddle their way through it, whereas many people with immaculate leetcode skills fail the most basic versions of this.
> The most important skill of juniors was demonstrating that they could effectively reason about and were motivated to dive into problems they had never seen before. These were always the juniors that could be rapidly developed into strong senior engineers, which is more or less the objective when you hire juniors.
This is similar to what my advisor told me my PhD thesis defense would be; your committee would probe you until you got to the limit of your knowledge (generally in your domain but not specific to your exact topic) and only then could they test how well your reasoning abilities. I think this is a great evaluation technique but it was common practice in my PhD program that, as you started getting close-ish to your defense, you'd organize some practice sessions with your peers where you could recreate that kind of environment because being able to step beyond your knowledge, especially in front of a group of gatekeepers (your thesis committee or potential employer), while maintaining a professional level of composure is difficult! And most of us couldn't quite handle it well when we would practice with each other but after a few sessions we'd feel comfortable in that state, at which point the pass/fail is, in our opinion, much more reflective of your actual reasoning abilities. As an interview tactic, especially for juniors, it's an interesting idea and I'd be curious to know how well you think it works, but I think it would take most 90th percentile candidates 2 tries to really demonstrate the kind of critical thinking and reasoning skills that you're looking for.
When I used to interview developers, I was more interested in how they approached problem solving and working collaboratively than attaining any correct answers.
So I'd split the interview in two parts. The first bit I'd give them a set of requirements and ask them to come up with a design for it on their own. They had internet access and technical references available. It wasn't a memory test, and I'd leave the room (this probably wouldn't work well now given LLMs).
In the second part, I'd ask them to talk me through their design, and then explain we were going to change the requirements and work together on altering it to accommodate them.
The second bit was the most useful part of the interview; it's what we needed to do in the actual job, and pretty much everyone we hired in that process was good.
The second part sounds like it would be good protection against LLM abuse -- if they don't actually understand their design, they'd be hard pressed to explain and adapt it with any fluency.
I've seen this once. I was talking to two guys that I met randomly, and I said something like "Rich people see you the way you see homeless people". One of them instantly understood what I meant, while the other one got stuck on "but I am not homeless" and even his friend couldn't explain the idea to him.
How is that not understanding a hypothetical? Seems they understand it just fine, what they're saying is they don't have the needed knowledge/confidence to answer the question.
Not understanding a hypothetical would go like this:
Ok, but a completely fair and honest answer is to google it. Or review internal documentation/asbuilt for the system. Or to ask your mate steve.
You don't need to understand the technical detail in the hypothetical, to extract search terms and research it.
The answer of "I dont know that system so I wouldnt know where to start" is failing the hypothetical. You have many starting points for all technical research. It means you cannot even imagine where to begin.
If you are so shocked by the appearance of technical term you don't understand, that you wont even take the first step of putting that term into google, you really shouldn't be applying for technical jobs.
The most common answer I get, if I fight the interviewee, and reposition it as a technical issue they do understand, is that they relay to me an anecdote from a time when they did complete the troubleshooting. IE, they still dont engage with the hypothetical, they just use recall.
When I hire juniors I give them problems that focus on fundamentals.
If a junior can code vanilla JS well, they can learn React, Vue, Svelte, etc. if they can't, they will never fully understand any of them. If they can write raw CSS, that can learn Tailwind and understand how and why. If thry can explain what's happening in the browser console, they can find the entry point for most bugs.
This is pretty much how I also test seniors. Focus on the fundamentals; if those are off, nothing else matters.
> I've also seen less and less passion for the career as the years go by (ie. less computer nerds).
Well, if we assume that the share of the population of nerds is roughly constant-ish, then an expansion of the total number of developers would lead to nerds making up a smaller and smaller share.
Back in the olden days, you needed to be a hero who knows all the innards of your 8 bit machine just to produce a decently playable game that was more sophisticated than Tetris. These days even an idiot like me can hack something together in a high level language like Python or Rust. That's progress!
Similar to how everybody carries an awesome digital camera around with them today. The absolute number of photographers has increased dramatically. And even the absolute number of great photographers has increased dramatically, because constant practice helps.
But I'm fairly sure the skill and dedication of the average person engaging in photography has dropped equally as dramatically: that's how lower barriers to entry look like.
> I've also seen less and less passion for the career as the years go by (ie. less computer nerds).
Ah, yes, the passion thing. I'm not being sarcastic, i see this as well.
I saw the shift happening in the 2010s, and I attribute this to essentially two things:
- social media and the glamourification of computer programming (and related things)
- the startup craze of the early 2010s (everybody and their dogs wanted to develop an app or start up a company, and money was flowing left and right from more-or-less clueless investors).
In a way, I'm happy that money is tight right now, deep down I hope the computer programming/science scene goes back to people driven by passion and money rather than just money.
> Unless the company is doing something that requires almost no special domain knowledge, it's almost inevitable that it's going to take a good while for them to on-board. For us, it usually takes about year to get them to the point that they can contribute without some form of handholding.
I know that such places exist from reading HN but it always seems so counterproductive to join such a place as a fresh grad. As a beginner you need to be getting your hands dirty, getting some ownership and respobsibilities, making mistakes and decisions. Figuring stuff out, exploring tradeoffs and experiencing them firsthand.
It's like when a football player joins a big team before they're ready and spends a year or 2 on the bench. It completely stunts their development and they never reach their potential. When you look at those who reach the top, they were all playing nearly every match from a young age as an important member of their team.
Obviously I'm biased due to personal experience, as everyone is. And there naturally must be upsides to joining your company as a first job as well. But I'm very glad that in my first job I was writing production code and doing both brownfield as well as greenfield stuff by week 2.
The problem has become that a lot of kids coming out of college have done little more than memorize Leetcode problems and outsourced classwork to AI
I’m pretty senior and I memorise a bank of leetcode solutions if I’m going for an interview that is definitely leet code. It has served me well for some interviews, and will remain my top strategy. I can still solve problems on the spot when needed, and much prefer challenging non leetcode programming problems, but that is far and few between.
I don't think computer nerds are needed (I've worked with plenty of very good people who don't write a single line of code out of work), but I have noticed a huge uptick in people who are in the space for the money. Nothing wrong with treating work as a place for money, but the hustler mindset combined with being an annoying 22-year-old twerp is exhausting.
Please go back to fighting over finance and consulting jobs, people. Please. I know my salary is inflated thanks to the dynamics that also bring in these people, but I really would like to avoid working for people whose choice matrix is "finance or startups".
Great idea re: giving hard problems. Same motivation behind why we ask people about past projects and keep diving deeper and deeper. The point is to figure out if they're curious & capable of engaging on a deeper level, vs. just following a tutorial they found somewhere.
Yeah, we lost a lot of nerds with the higher status of Computer Science, or rather we got a lot of non nerds/geeks into the mix.
Every year as the criteria went up at the University, I saw less of the type that had always been there.
By giving candidates problems you know they can't solve during the interview, you give yourself the right to dismiss anyone "you don't like" by telling them they failed the test.
If that was your intention, why would you need a pretext? You're not obligated to hire anyone in particular in the first place, and apart from being accused of purposeful discrimination based on protected characteristics, you're not obligated to explain your decision criteria to anyone.
I don’t see how a year is an indication of something going wrong.
Year for a junior is perfectly reasonable.
Definitely making a commit to a GIT repo or opening a PR for textual change they should be able to do in first days. But doing any bigger task on their own that needs architectural understanding of our system a year is definitely good.
Employers, in the absence of having managers and senior ICs with any actual interviewing skills, have decided that Leetcode should be the primary means of deciding the worth of a candidate.
These kids are merely meeting what the market demands.
No one should be required to acquire a special literacy or hire an expert in a specialized literacy to use a well understood computing technique (Von Neumann and Turing).
IMO software first engineers are not much different than rent seekers. Using lexical tools based on understanding from the 1960s is hardly high tech.
For all their high minded rhetoric, SWEs are just self selecting biology driven by "FU got mine" philosophy like so many others. After 30 years in tech, it's become quite clear the majority are not much different than an ICE agent; willfully ignorant because their personal compensation banging
[1] figuring out how to store/recompute the geometry of an oscilloscope to keep it brief; too much syntax sugar involved as-is
> Unless the company is doing something that requires almost no special domain knowledge, it's almost inevitable that it's going to take a good while for them to on-board.
That's one reason why I prefer "fresh out of college" for juniors - if they seem bright enough that way they only have to learn, not also forget whatever nonsense they learned somewhere else.
It usually amounts to asking only 2 or 3 questions and a lot of discussion. I honestly wouldn't mind if we only get through one question if it leads to good insight on the candidate.
> The problem has become that a lot of kids coming out of college have done little more than memorize Leetcode problems and outsourced classwork to AI. I've also seen less and less passion for the career as the years go by (ie. less computer nerds).
Why is this a problem, though? Imagine hiring doctors or architects with that expectation. "The problem is that no one is truly passionate about dissecting cadavers anymore".
I think our industry got hooked on being able to hire self-taught geniuses in the early days of tech. But the profession has gotten a lot more commoditized, and we just can't continue like that. Gotta hire "normal" people and teach them what they need to know. And yeah, "normal" means people who decided to learn programming because it pays well, not because they want to design compilers in their spare time.
What people (managers?) don’t realize (or don’t want to realize) is that building software is much more complex than most other professions. Some software is easy and has been done n+1th time (like a simple crud app with a db connection). But some software is really hard and could fall more in the R&D category.
Which brings me to the following point: Earlier in my career, I was a medical student. All superiors were doctors, and though there were managers, no manager intervened in an operation. Also doctors selected their hardware and methods. No manager will ever come to a doctor and suggest that they do their work differently.
Now when it comes to software, everyone wants to chime in.
No offense, but this software engineering elitism does no favors to perceptions of the field. In reality, most other fields are complex and the phenomenon of believing something is simple because you don't understand it is widespread across fields. Dan Luu expounded on this at much greater length/with greater eloquence: https://danluu.com/cocktail-ideas/
because there are multiple abstractions in software that one is bound to come across once the software becomes complicated enough, and from that point on "passion" and "fundamentals" determine how effective they are at navigating that path
The doctors i know are definitely passionate about it. There is continuous learning, conferences, picking your specialty, and its such a time commitment the profession is part of your identity.
I completely understand people that are just doing it for the paycheck and that's totally fine.
However, I do feel that our team needs both types of people to be effective. People that have passion will try new things and explore possibilities more frequently. The "just a paycheck" folks tend to be a good moderating force to the "passion" people. They will generally bring focus and keep the end goal in perspective.
My goal is to avoid having too many of either. Too many "passion" people and you end up slowing progress because they're getting bogged down with everything they want to do. Too many "paycheck" people and the team/system starts to calcify (and usually accrues a ton of tech debt).
Unless the company is doing something that requires almost no special domain knowledge, it's almost inevitable that it's going to take a good while for them to on-board. For us, it usually takes about year to get them to the point that they can contribute without some form of handholding. However, that also mostly holds true for seniors coming to us from other industries.