Why is everyone assuming that just because someone works for Google has to be competent? Solving algorithmic puzzles is not an indicator or actual technical skills.
To me, it looks like a work of incompetent developers led by incompetent technical managers upon requirements of clueless and ignorant product managers.
Cloud service providers aren't really optimizing for the same thing that the average website is optimizing for. They're attempting to maximize their velocity, maximize their API stability, and make programmatic usage of their system as easy as possible.
GCP's UI? Yea it's pretty bad. GCP's terraform provider? It's really slick. Probably the best one of the bunch (Azure, AWS, Oracle, OVH, ...).
I thought Terraform provider was developed/maintained by Hashicorp, not Google. Are Google employees actively involved? I also did encounter annoying issues (which have slowly been getting better though).
I guess it might speak to a solid, if somewhat slow, API.
Yeah they've got a nifty tool called Magic Modules that partially auto-generates the Terraform Provider (along with Ansible and InSpec) from the GCP API:
> Cloud service providers aren't really optimizing for the same thing that the average website is optimizing for. They're attempting to maximize their velocity, maximize their API stability, and make programmatic usage of their system as easy as possible.
Yep, already covered that under incompetence and cluelessness.
> GCP's UI? Yea it's pretty bad. GCP's terraform provider? It's really slick. Probably the best one of the bunch (Azure, AWS, Oracle, OVH, ...).
In that case, I would assume that backend team indeed consist of competent people, as opposed to web team. But TFA was about front end experience which is abysmal.
They had some big outages over the last year. I’m therefore still skeptical to bet on them from a “backend” operations reliability standpoint also. To be fair I’m not sure they are doing worse than AWS though when looking into details. I’m thinking recent AWS Kinesis us-east issue - move fast and break things? Maybe uptime is more important than a gazillion new “feature” services. I also prefer good terraform provider stewardship over any “fancy” new cloudformation CDK or “beautiful” GUI actually. It’s complicated.
> Cloud service providers aren't really optimizing for the same thing that the average website is optimizing for. (snip) GCP's UI? Yea it's pretty bad. GCP's terraform provider? It's really slick.
That's still incompetence. That counts as incompetence, too.
"This restaurant is filthy and full of bugs, but that's OK, because they're take-out only, so they're not optimizing for the same thing the average sit-down restaurant is. Sure, that place is disgusting, but the food in box still tasted pretty good..."
Coding for Android has taught me that is definitely not the case.
They managed to make a mess worse than JEE, the native layer took 10 years to finally use Android Modules, they keep fixing the header files, still don't have proper C++ bindings and force everyone to write JNI boilerplate by hand.
Android is really the worst platform for developers. Context? Let's make a god object, and also create application context and activity context, and screw liskov substitution principle. Also create a library to fix all our bugs in all versions of the platform, but also have a shit ton of bugs.
Microsoft did nail windows phone apis, 10 freaking years ago, too bad it didn't survive.
The Android base wasn't written by Google. Google bought the company that made Android 2 years after it was written. That's a lot of time to create a base system and a lot of time to create cruft.
I think by attributing it do incompetence you're missing the incentives problem.
Others point this out, but Google just has no incentives to improve this UX. Think about who makes the decisions to use Google cloud and what criteria they are using.
The snappiness of the gcp ui is not likely to be near the top of their list
I used to think Google hires only "top" developers. Lately I think they mostly hire average or below-average people which resulted in products of average or below-average quality.
The puzzles make sure you can write the O(good) algorithm, knowing the coefficients is a question of experience and knowledge of the shoulders your code stands on.
To me, it looks like a work of incompetent developers led by incompetent technical managers upon requirements of clueless and ignorant product managers.