Not a real engineer (2019)
twitchard.github.io
twitchard.github.io
Sometimes, the LAMP stack will do.
But I’ve seen “ok” programmers perform “adequately” (the project got made to acceptable level) but also seen better programmers work 5x faster (without working 5x the hours, or even more hours at all), be able to mostly self-manage, not need constant qa support to make sure the tickets they set to “done” are actually done and able to solve problems creatively (and not need me to untangle the git repository for them if something goes wrong).
They don’t need brains the size of a mountain but a good/great programmer makes a huge difference (even if enough management can make mediocre programmers work out) even on projects that to me seem technically pedestrian.
It still won’t have a 100% success rate, the best you can do is hire people you/someone you trust in the team have worked with before and know is good.
They get a timeframe and have to quickly elaborate on their process, what they got done and what they didn't get done.
There are drastic differences between candidates. Some barely manage the task or are satisfied as soon as it works. Some over engineer to no end and reason about all the bells and whistles and others write abstracted code without overdoing it, add some tests and rudimentary docs.
The way people approach this simple task and what their threshold for 'solving' it is has told me more about people than any difficult interview question.
That is - an “ok” developer that performs “adequately” is not actually sufficient and it’s have to be specific circumstances for me to compromise on keeping them (e.g. I can’t find anyone better, but historically this hasn’t been the case).
Also, you may not keep, but there are million of other managers who will be happy to have someone reliable even at x0.9 performance.
I’ve learned from experience that it’s not worth compromising on a mediocre developer (even if in some situations I’d have to). Better take the short-term hit of trying to find someone good.
Also the 5x ones would mostly not be genius level, just actually motivated and talented. I think a lot of people that can do well are stuck in jobs that aren’t a good fit for them.
It actually was. You said so yourself:
> perform “adequately” (the project got made to acceptable level)
You need to figure out whether you're talking about someone who is acceptable or not.
Again it depends if you have an alternative, in my experience I always had it was just sometimes costly/inopportune/a pain in the ass in the short term to find someone better. Long term it was always better (I never regretted firing someone too quickly but often regretted firing someone too late).
I was also always worried about team morale but every time a low performer was fired it actually improved morale.
In this scenario, the 5x engineer (who probably isn't getting paid 5x) will do 30% better than their peers. Unlikely that you would fire the most productive engineer on the team. Moreover with better peers, 5x engineer will be inspired to rise to the challenge.
I just think that it’s not really a benefit for the better engineer to underperform either, I know I’ve always found doing well at work (which was usually more my subjective feeling about myself than anything some else told me) less stressful than doing badly (and not any less work than pretending to be busy but not working).
Being a programmer myself I also know what you can roughly get done (I still program maybe 30-40% of my working hours these days). It could be that someone I hire is magnificently productive (relative to myself/my experience elsewhere in the last 15-20 years) and is managing to hit that while also doing other things, if that’s the case good for them.
Anyway part of what makes someone a good fit is that they want to do well and find the work interesting and fulfilling. We work 4 day weeks so they still have time for other projects in their free time (and I know most/all of them have such projects).
I've come across more technically able programmers than I am. But they aren't better engineers. And a lot of that is because I'm an entrepreneur and have a marketing secondary background as well.
So many companies discount non coding skillsets that actually make one an engineer in my opinion.
They hire the butcher instead of the chef and then wonder why it tastes like shit when it's cooked.
Here an example of his playing: https://www.youtube.com/watch?v=C97H_HvBjPA
30 years playing guitar, I believe I can recognize masters, but this guy is just wow.
Yet, they can not play like Paco De Lucia, who finger picks a nylon stringed guitar. And Paco De Lucia can't play like they can. So who is really best?
And fwiw, Paco De Lucia is technically skilled to a fault, but does very little for me.
I looked up Howe and he said this about Paco:
"There was mention of Paco de Lucía, who is the greatest, well, if not the greatest ever flamenco guitarist. Many people love him dearly as I do, and if somebody says, 'Can you play like Paco?' I say, 'No, no.' [laughs] So I just jumped on board, and it was wonderful. Very nice people." [1]
Howe made up a flamenco piece on the spot for a Queen song so he was talking about Paco then.
The nod is there by the man himself for the greatest flamenco guitarist.
But if you discuss something that is basically subjective, you still need criteria because if one person is saying oh Paco is the most technically skilled that's one thing. Another would be more akin to how the Decathalon decides the greatest athlete.
I don't know if Howe is the best ever, but if there was a Decathalon equivalent for guitarists, I'd bet Howe would top Paco no problem. And in that event, he'd top Jimi Hendrix and Page too. But that's just my benchmark, having range and full command of the discipline.
[1] https://www.ultimate-guitar.com/news/general_music_news/yes_...
- ability to plan and estimate
Real market values more Spring java coders than C++ engineers who work with hardware.
I think it's a fine career to go to school, get your BS in whatever technical field you choose, and work as engineer #52354 at Ingersoll Rand, or Boeing, or whomever, and retire after 30 years of being master of your highly complex but perhaps limited domain. That is a very valid definition of an "engineer". These people probably have very fulfilling personal lives that you'd probably see as miserably boring, and that's okay.
I've thought hard lately about this sort of thing, and one thing that seems clear to me is that management likely sees the "standard engineer" is a cost sink where someone like yourself may escape that sort of criticism as your value transcends just engineering and into other departments that directly generate revenue.
For what it's worth, we sound like the same type of engineer but I've worked to try and turn what may be contempt for the stereotype into something more... collaborative.
It’s not a choice between “the tech interview sucks” and “the job market has many unqualified candidates.” Both can be true, and in fact I think they are related in a market-for-lemons way.
I've grown to learn that it's important to understand that interviewing in particular and job-seeking in general is not an objective and impartial process, and the output is not deterministic or reproducible. You can be hired even when there are objectively better people in the race, and you can be sidelined right on the phone screening even though you are the ideal candidate. It's a crapshoot, and the only people claiming otherwise are motivated by a mix of survivorship bias with a need to avoid recognizing that the process is flawed by nature.
> I’ve also interviewed and rejected experienced candidates who talked a great game but couldn’t demonstrate the ability to code FizzBuzz-level problems in any language.
I'm afraid that this take is also a reflection of the cargo cult mentality that plagues recruiting. I personally know FANG engineers with half a dozen years of high-profile work who had to spend weeks training coding golf and algo&data structures trivia before passing the first round of interviews, all because these trivia games bear no resemblance with real world software engineering. In fact, I will go as far as to claim that they serve more as ladder-pulling than actual technical assessments. For example, once I was automatically rejected from a C++ position to work on a desktop app because I wasn't familiar with placement new. This also extends to framework tests. I know a guy who applied for a backend position who was rejected because even though he rolled out a Spring service from scratch that passed all integration tests, the interviewer complained about how the service did not commented the controllers. These are things that takes a single comment in a PR to address. I mean, is adding a comment w challenging technical feat? But somehow some interviewers reject candidates based on this nitpicking.
FizzBuzz is a trivial technical problem, though, not a leetcode medium or even an easy. I agree with you that you shouldn't have to grind leetcode all day in order to be considered a valuable software developer; but the existence of people selling themselves as "engineers" but who can't solve fizzbuzz would go a long way towards explaining how we got into this leetcode situation in the first place, because such a person would not be able to be successful as a software developer and they need to be weeded out during the candidate search somehow because they are around and they do want the job.
No, it is not. The term fizzbuzz doesn't refer explicitly to the loop with the modulus example. Fizzbuzz is an umbrella term for tests that are used to assess proficiency, but in practice they tend to have weird gotchas that get you disqualified for random reasons.
Case in point, there are online coding challenge tests where you do fizzbuzz tests that flag you as disqualified for cheating if you move your focus away from the page. That's one way to fail fizzbuzz tests: you start the test, switch your browser window, boom you're tagged as an incompetent moron.
> all because these trivia games bear no resemblance with real world software engineering
You may actually agree with GP for he is not talking about that. GP is talking about FizzBuzz: less than ten lines of code and three if or something.
Someone who cannot solve that cannot code, as simple as that. I don't care about a little error but someone who doesn't know how if and else do work has no place in "real world software engineering".
I mean: how many developers working on critical systems like those in a commercial airplane don't know how a conditional statement work?
Anyone who has ever interviewed candidates knows there are master bullshitters out there.
As one CTO once told me before I'd be interviewing people: "When you look at their CVs full of buzzwords, you'll often feel like you know nothing. But for many of them, once you'll start asking trivial questions you'll quickly realize they're the ones who know absolutely nothing".
Asking to solve FizzBuzz is not asking to solve a problem which requires to know when to apply, say, Floyd-Warshall.
FizzBuzz is not a high bar to pass.
Example: given the x/y coordinates of a rectangle, can you write a function that tells me which points in array are inside or outside?
Other companies may get a different pool of candidates, so such a low-pass filter may not be necessary. But these people have resumes which describe them as capable engineers. What I usually find is they are no longer coding much, but are doing design reviews, code reviews, and attending meetings.
yeah, and though the job advert says "spend 1 hour on this", you find that 1 hour isn't enough. And yet, the interviewer will pick up faults "you didnt finish this"
P.S. Please send someone to check up on Tim because he's now back wearing a strangely looking robe with a scythe taller than himself. Yes, the scythe seems real. No, I didn't test.
I miss Xtranormal.
The search for a job always puts me in a depression and I haven't got any answer except that you have to not hope too much about any one job - or be too dismissive of one that doesn't seem quite so amazing. You just cannot tell what will happen - my first boss in my current job turned out to be horrendous and there were not nice people working there and ...... they left the company! I got promoted. How could I predict that? The hiring people cannot predict you either - it's all a bit of a random and uncomfortable process.
When I'm on the other side of the table I've got some priorities:
1. My boss gave me a short bit of advice which is "try to hire nice people." I'd rather work with good developers who can be friendly and help each other and get along without always having to get their way than people who think they are highly productive geniuses and deserve to be in total control.
2. Is the candidate interested in software, or indeed anything. If they are not a bit enthusiastic about software, technology or something relating to the work then how will they learn the things they need to know that aren't on their CV? One should expect people to need to learn and not come "ready made."
I like to be able to afford my rent. Some food sometimes, as a treat.
Ah..... you could have just said it wasn't a Python position. Are you after a crustacean or a gopher?
It really taught me how much power we can have when we control timing. I was off for the rest of the interview. Even at a good interview, how can someone get to really know you in such a short period of time?
It's fine. It's normal. It's fine. It's fine. It's fine.
They feel they have candidates who are a bit stronger
coding wise that fit their needs right now that they
want to proceed with.
This said twice.Once before any interaction at all and the same after an initial meeting when the technical interviewer had not bothered to review any of multiple FOSS projects made available beforehand.
The phrase "Hoist with his own petard" comes from the young "Engineers"/soldiers tasked with breaching a castle door by rigging a bell shape charge, and sometimes getting tangled in the rigging.
Some mistake it as a wonderful title like Dr. or Mayor... others it is a job function like plumbing.
Yet very little has changed people wise in modern technology, and regulatory capture is rather popular. Strangely, these same places often also still charge money for bathroom access.
Engineer, Journeyman, Entrepreneur, and Tinkerer are all often still class specific pejoratives in some circles.
http://harmful.cat-v.org/people/basic-laws-of-human-stupidit...
If the problem is oversupply of talent, you'd think salaries should drop as people compete for limited jobs... But that would only be the case if we had a free market.
I feel like to get a job as a software engineer, you have to pretend to be brainwashed. Just act very friendly and optimistic, pretend to be member of a minority group and make sure you tell them that you're fully vaccinated and boosted. Also, use a stage name on your resume instead of your real name and a separate email address.
Of course you’re not a fit for this role, why would you ever apply? We considered you before we knew who you were. But now we see you as you truly are. Monstrously unqualified. Your 15 years of experience in distributed systems is nice, but we’re really looking for someone who could invert a binary tree in 10 minutes, and, well, you were on track for 20+ before we kindly stepped in and asked if you had any questions for us.
It's similar with e. g. positive discrimination, I think many people silently object, but not being able to filter it out in business context is a bad sign.