News for hackers. Stuff that matters.
Re:Ask HN: How to avoid over-engineering software design for... by ex_amazon_sde on Wednesday June 24, 2020 @05:29AM (#23625906)
> In many companies (think FAANG) > The more complicated the design, the more 'foresight', the better.

Certainly not in Amazon. Surely there can be exceptions but in general the company has a culture of simplifying stuff anywhere is possible.

Re:Ask HN: How to avoid over-engineering software design for... by throwaway9191a on Wednesday June 24, 2020 @09:05AM (#23627379)
This is a huge problem at AWS.

IMHO the largest contributor to over engineering in this company is people suggesting flaws in other's designs simply to have something to contribute during a meeting. I can't remember anyone, ever, telling me to remove something from a design doc (3.5 years).

I have added unnecessary complexity to my own designs as a response to comments. Not customer driven, not data driven, but somebody at a meeting got focused on something and it ended up getting added to the design.

Re:Ask HN: How to avoid over-engineering software design for... by sidlls on Wednesday June 24, 2020 @09:24AM (#23627544)
>I have added unnecessary complexity to my own designs as a response to comments. Not customer driven, not data driven, but somebody at a meeting got focused on something and it ended up getting added to the design.

I've had unnecessary complexity introduced to my code during code reviews as a response to comments, too. Most often it's to make things "more testable" so as to reach an arbitrary code coverage target.

Re:Ask HN: How to avoid over-engineering software design for... by sharpy on Wednesday June 24, 2020 @06:29AM (#23626300)
I've seen promos being denied, because the problem wasn't sufficiently complex enough. I'd say it was, but the design was simplified as much as possible, leading to 'wrong' impressions.
Re:Ask HN: How to avoid over-engineering software design for... by numlock86 on Wednesday June 24, 2020 @06:12AM (#23626194)
>simplifying stuff anywhere is possible

https://raw.githubusercontent.com/aws-samples/aws-refarch-wo...

Ironically, that's how you are supposed to run Wordpress on AWS.

Re:Ask HN: How to avoid over-engineering software design for... by alharith on Wednesday June 24, 2020 @07:13AM (#23626568)
Unironically, this is one of the simpler setups for a multi-node WP setup I have seen, and I have set up prod WP many times. Anyone with associate level knowledge of AWS can do this. There is a reason there are entire companies (pantheon) dedicated to hosting Wordpress for you: doing it with speed, resiliency and redundancy is hard.
Re:Ask HN: How to avoid over-engineering software design for... by owenmarshall on Wednesday June 24, 2020 @09:18AM (#23627486)
Meta: I've vouched for this comment. You appear to be shadowbanned.
Re:Ask HN: How to avoid over-engineering software design for... by alharith on Wednesday June 24, 2020 @11:34AM (#23629106)
They don't like conservative opinions here, so I am not surprised.
Re:Ask HN: How to avoid over-engineering software design for... by ex_amazon_sde on Wednesday June 24, 2020 @07:31AM (#23626669)
You seem to be confusing Amazon's internal infrastructure and its development model to how AWS is used by customers.
Re:Ask HN: How to avoid over-engineering software design for... by numlock86 on Wednesday June 24, 2020 @07:44AM (#23626756)
I would have posted internal slides directly from app architects or even service(-prototyping) dev teams within AWS including similar vibes regarding this discussion, but for obvious reasons that's not a good idea. But whom am I telling that ... That "reference architecture" aimed at customers using their infrastructure regarding a Wordpress installation gets the general idea across, though.
Re:Ask HN: How to avoid over-engineering software design for... by regularfry on Wednesday June 24, 2020 @07:46AM (#23626761)
That's the result though, right? Radical internal simplicity forces incidental external complexity.
Re:Ask HN: How to avoid over-engineering software design for... by ex_amazon_sde on Wednesday June 24, 2020 @08:30AM (#23627096)
No, I'm talking about internal services that aren't directly exposed through AWS API. This represent the large majority of the internal codebase.
Re:Ask HN: How to avoid over-engineering software design for... by ComodoHacker on Wednesday June 24, 2020 @01:11PM (#23630791)
Would it be any simpler when running on-prem or in another cloud?
Re:Ask HN: How to avoid over-engineering software design for... by mabbo on Wednesday June 24, 2020 @06:43AM (#23626382)
You must not have spent long at Amazon.

My original comment was 100% based on my experience as a developer at Amazon.

Re:Ask HN: How to avoid over-engineering software design for... by ex_amazon_sde on Wednesday June 24, 2020 @07:32AM (#23626674)
I did, across different roles in two well known teams. As I said, there are exceptions, and the hiring bar has been dropping a lot in the recent years.
Re:Ask HN: How to avoid over-engineering software design for... by Aeolun on Wednesday June 24, 2020 @08:56AM (#23627302)
Well, they haven’t hired me yet, so either I’m terrible, or the hiring bar is just completely arbitrary.
Re:Ask HN: How to avoid over-engineering software design for... by ex_amazon_sde on Wednesday June 24, 2020 @10:09AM (#23628035)
In all large companies the people involved in an interview are a tiny fraction of the whole workforce.

Most of the time it's people from the team that is hiring and one or two "guests" from other teams (but usually working in the same building).

Managers also have plenty of power to influence the decision, therefore keeping a very uniform hiring bar is really difficult. (But no, it's not "completely arbitrary")

Also, I wrote that the bar dropped a lot, to the point of shifting all employees level up by one, but this does not mean that the company hires 90% of the candidates.

If a team was hiring 1 candidate every 1000 screened resumes and now it's 1 in 100 it's a whopping 10x change... but that doesn't make you a terrible engineer!

Re:Ask HN: How to avoid over-engineering software design for... by Aeolun on Wednesday June 24, 2020 @06:49PM (#23634738)
Sorry, I was just trying to comment on how interviewing itself is an arbitrary crapshoot.

Say one slightly dubious thing and you torpedo your chances of the job. Write one slightly dubious thing on your CV, and it will be rejected without a second look.

While I’m confident that most of the people rejected for those reasons would be at least adequate at their job.

Re:Ask HN: How to avoid over-engineering software design for... by collyw on Wednesday June 24, 2020 @09:40AM (#23627735)
Lets face it hiring is just a shambles in this industry. 20 years in the industry I know how to write a reliable system that is easy to maintain. Getting kind of crap at the tests they give in interviews.