Live data from Hacker News

Ask HN: Code examples to find out if a person is addicted to “overengineering”

news.ycombinator.com

21–30 of 52 posts

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#22
post #15

I ask candidates to sketch an API (program, not REST, i.e. an outline of classes, functions and module structure) for a problem similar to those we solve, but smaller in scope. I also ask about things like test coverage and programming paradigms they have an affinity for. Some things I look for that can be negative signals are: * Propensity to choose classes and OO programming in a domain it isn't really suited for,…

Actually, the question is related to employee, not a candidate:) He is working with us quite for a long time, and he writes really good code. But he can't make simple solutions, only the hardest way to solve a problem. And because of it, we can't plan work and estimate tasks.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#23
post #12
post #5

How can you be so sure you aren't underengineering, and this person you know is actually planning ahead wisely?

Personally I feel as if underengineering is less of a problem than overengineering. I've seen both in real life scenarios and usually you just throw the underegineered code away and start over with knowledge gained from the previous solution. And the reason you can do that is because you usually realize that you have an underengineered solution fairly early.

[deleted]

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#24

If it's NodeJS the fastest way is to check how many dependencies they have in total, bad developers will find a way to include 100s or 1000s of dependencies, anonymous third-party blobs of code running within their application: $ npm install Another indicator is how elaborate their build process to munge w/e they wrote into w/e a machine understands.

Don't agree with the approach because using a proven solution can be superior and net a simpler code base than rolling your own.

Fyi, by using webpack, couple loaders, babel, etc I net 100s of dependencies just for the build. Ymmv.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#25

Are there actually experienced developers who still overengineer? I always thought of that as something that happens from the lack of experience. Straight from university developers, or people who never worked with a team before tend to do that, but I can't see how you will hold off this attitude after a bit of experience. And unless you're letting an inexperienced developer lead your team I can't see the problem. As…

He is experienced developer with great coding skills

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#26
My stock interview question:

> Tell me about the project you are most proud of, which best demonstrates what you're capable of. It could be academic, it could be professional, but be careful to not share any proprietary information from previous employers.

Then I proceed to ask a bunch of code, design, and implementation questions based on that scenario/project. If runtime is important, how they optimized for it; if scaling seems difficult, how they approached that; etc.

Note: This is a varsity-level interviewing question, since you need to be able to quickly come up with meaningful and consistent questions based on their proffered product. It works very well though when interviewing intermediate/senior engineers.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#27
post #5

How can you be so sure you aren't underengineering, and this person you know is actually planning ahead wisely?

Details. If someone can provided a detailed analysis explaining that it's very likely we'll need feature X in the future and it's more efficient to architect it in now then slap it on later, that's planning ahead.

If someone wants to do something just because of a vague one-liner about "future needs" or "best practices" and when you press them on why they don't really have any coherent reasons, that's over engineering. It's typically mediocre engineers who don't really understand the concepts and are just applying a formulaic solution.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#28

Have them build "A framework for X", where X is some commonly-done problem most programmers in their field have worked on (webapps, CMSes, forums, build systems, big data, etc.), ideally related to your business. If you want to do this in an interview or take-home setup, you will likely need to use a cut-down version of this problem, although really, much of the point of it is to see just how much the problem expands…

> will first ask a lot of questions about why you need X

Have an upvote, I love advice like this: a good engineer has the capability to have the one posing the problem also reflect on the problem and the requirements and should never just say 'ok let's do this' without making sure it is really needed. Because face it, there are a lot of people out there coming to engineers with a question and a 'solution' which is actually already partly an implementation - in a domain they're not really good in. (example of that style: I want a sandwich! Engineer, build me a sandwich vending machine!) Good engineers know how to deal with that as well, and will ask as many questions as needed to figure out the optimal (combination of good enough/least work/least technical debt) solution in a given situation. Which, sometimes, might be as simple as 'wont fix, no real need for it'.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#29
I think you're probably better off avoiding a trap or a trick here, and instead just ask about it. "Give me an example of a time you over-engineered something" and "Give me an example of a time you under-engineered something". Most people should have reasonable answers to both, and the one they have the most trouble with is probably the one you should be more concerned about.

Re: Ask HN: Code examples to find out if a person is addicted to “overengineering”

#30

Have them build "A framework for X", where X is some commonly-done problem most programmers in their field have worked on (webapps, CMSes, forums, build systems, big data, etc.), ideally related to your business. If you want to do this in an interview or take-home setup, you will likely need to use a cut-down version of this problem, although really, much of the point of it is to see just how much the problem expands…

Good thoughts here, but there's some generalization in the closing paragraph. Not every framework from scratch is unuseful or a mess. But the track record there is very bad in my experience.
Post reply on HN