I’ve worked in 6 big banks in the past 20+ years and so far, I’ve only met two developers who write clean code - one is in FB now and the other in Citadel. The rest writes crappy code. Example of bad code I see every day written by developers with 0 to 20+ YOE 1. No API or encapsulation of logic. For example, application code are directly calling the persistent store API or messaging API instead of higher level API e.g. Job Tracker API, Audit Log API etc. As a result, there are lot of copy and pasted code and application code know’s the internal logic i.e. constructing the key of the record to update. 2. Code operating at different levels of abstraction (spaghetti instead of lasagna). For example, a function that reads from disk and also performs high level business logic. 3. Catching exception and raising a new exception that doesn’t even wrap the original exception. 4. Generic dumping ground e.g. utils.py, constants.py instead packaging or grouping the code together by feature or abstraction. Developers in FAANG, are codes any better there? My friend from FB told me that developers in his team don’t write clean code either.
I was gonna write that your friend at fb may be in for a surprise, but you're way ahead of me there. In general, it depends on the company, and then on the team. At G there's a lot of emphasis on code quality and a lot of tooling to assist with it. F and A(z) primarily focus on fast delivery, oftentimes sacrificing code quality to achieve speed. Even so, the infrastructure teams in those companies have been bitten by shit code hard enough to care about it. No idea about A(p) or N.
In the long run, won’t you be able to deliver faster if your code is clean, modular and extensible?
It depends on the lifetime of the code. Non-infra code frequently gets tossed out as the business requirements change. Spending too much time on the code that may not be there in two years is an overkill.
Apple sucks at code quality
LOL not at Amazon from what I’ve seen.
Nah.. We write shittier code and get paid more.
2 and 4 describe the code base I'm working in pretty well. It's a consequence of sacrificing code quality in favor of fast delivery as google said above. I was here from the start of this code base and it was always "we'll clean this up later we just need to get it working", now it would be a multi month effort to actually do that and there's no way they'll invest that
Yes I see 2 and 4 more. Another one that I see a lot is code that does too many things - basically, violating single responsibility principle.
Amazon code base is basically duct tape. They don't care about tech debt. Any shitty code would lead to some outages etc that is exactly why Amazon employees burn out after a year. Oncall there is just madness
I agree what I’ve seen in genera at Amazon isn’t too impressive, however what I’ve seen non FAANG folks write is just way worse. What I’ve seen from non FAANG: - Thinks a unit test is to execute the code manually once - 0% coverage on testing - Absolutely zero standards in code writing, specifically with adhering to syntax. Absolute worst I’ve seen is code from consulting engineers. Ugliest code and usually the customers don’t have the technical background to point it out (that’s why the consulting firm is there), which leads to pure trash being delivered to customers.
In one of my previous companies, not a faang, but the likes of Samsung, nvidia, etc. One colleague had 2 blocks of code with 95% similar functionality. He just copy pasted each into two separate independent files to be maintained in tandem.... he had ~20 years of experience
In a codebase I was working in I found a “util” file copied 4 times. I cleaned up that nonsense as we already had a “common” project that had one copy and referenced that in the other 3 places.
👏🏼
1. Yes/No depends I've seen both (worked at amzn and now at ms) 2. No 3. No 4. No
Lol no
There's a reason Linkedin is not FAANG.
LinkedIn is Microsoft