569 karma · joined August 28, 2013
Having worked at four companies I have yet to see there being any serious discussions on merits of which questions to ask, the style of interview to be conducted, how to grade candidates reliably, or the amount of help and guidance to give candidates. In short as far as I can tell the whole tech interview process is generally a mess.
I have tried to push for discussions on all of the topics above and most engineers simply do not find the topic interesting enough to engage at length. There's a lot to discuss and everyone complains about the current state of the interview process across the whole field yet few do more than complain. Alas that is life.
As for vetting for "positive-only", I am not sure that's something that can even be done. Usually conducting interviews is part of your performance and you are expected to do them or it will reflect poorly on you as an employee. So every senior engineer or above typically will aim to do some amount of interviews and, let's say you are one of them and you are not very happy, when you get asked by your manager whether you are a positive employee, you are very unlikely to say no.
Also unhappiness is a pervasive quality regardless of title and you can very easily find high level managers and one year out of college engineers that are equally unhappy if you were to ask them candidly. This is a separate topic, but we as an industry have potential to make our workplaces incredibly engaging and rewarding but that potential somehow seems so very hard to achieve.
"Open Source means it has fewer bugs and is more secure."
Maybe not in the absolute meaning of that expression, but I find it true when you only consider the higher quality open source projects, e.g. say the top 10k open source projects. The code that most professional software developers produce at big and small companies alike makes me in awe that their final products work as well as they do.
"Being able to program is the most important aspect of being a good software engineer."
Ehh, I would say this is true. Certainly not the only aspect but if you can't code then you just end up being someone playing office politics all day trying to hide that fact.
Edit: this also seems to be in the original post
and no one is willing to say so.
Except most engineers are perfectly willing to say so in my experience but management decides to ignore them or force them to say a made up number promising falsely not to hold them to it. Even worse what happens very often is an engineer would give an estimate and then a manager would "bully" it down to a lower number.On the reverse of course it makes sense to have estimates otherwise how should managers or product people decide what should be done next?
A big part of the issue is we don't have good knowledge how to estimate work. It's not a skill that is heavily invested in and is wrongly assumed as an inherent ability.
Sure "unmask" their motives, but it's also worth considering if their actions are a net good or not.
The second noteworthy distinction is phones' ability to solve many different problems as well as provide many different willful distractions in a very accessible manner. A tool that can be both productive and entertaining requires a higher amount of willpower to use productively without succumbing to the desire to use it for entertainment.
Some of the most productive coding I've done has been in places where there was no internet to temp me with distractions.
Edit: though maybe my view on what an architect should do is different? I think of a software architect as the person that lays out the skeleton and foundations of a project and has the answers to hard questions. Very likely someone who actively codes or has solved very similar challenges to the ones being solved.
Absolutism like this often leads to logical traps. Even when it doesn't it's still unhealthy. Besides, the only way to exterminate an idea is to exterminate the people that might embrace that idea which in itself sounds pretty wrong.
So maybe you can pass forward refs from A to all the C's and then bypass B in the cases you want to directly trigger rerender on the individual affected C components. Is that the way to handle this scenario?
It's pretty late so the above maybe doesn't make sense, but to try to summarize, having a solution for updating deeply nested children without diffing all of the related components to see if they need rerender.
"The point is definitely not about prepared presentation" - to me this doesn't ring true at all, but I am sure it depends on the person who is getting interviewed. When I'm asked about times I've argued with my manager nothing really stands out but I'm sure that's not an acceptable answer either. Of course there are disagreements but they have never resolved to any serious argument or escalated to involving HR and even if they had I think it would be prudent to avoid talking about them. So I end up having to make up BS about something but now I'm the territory of exaggerating some minor disagreement and what I learned from it and it ends up sounding insincere. So the only way to avoid it is to prepare something for a lot of situations and to some extent rehearse before the interview. I've never had any significant interpersonal issues and I've been in the industry for six years. Most of the questions just leave me in a confused mumbling state as to me they sound a little ridiculous but at the same time I'm not allowed to just say, "no I've never had that as a problem".
Edit: point being is that there a number of companies that don't look only for traditional hires. Networking (via Meetup for example) helps. Also going through a recruiter or (Recurse if you have the time!) is also helpful.
Edit: From an ethical perspective it can be argued that a person who is "good" but does not help less fortunate "bad" people is not in a morally superior position (however you want to interpret that to make the sentence work).