Most of the problems I faced in the projects I work are caused by developers working only and exclusively with Chrome and not bothering to check their work on Safari and Firefox. The issues that were found with Safari were easy to fix or work around.
Nothing compares to the painful process during ~2005-2010 when it came to support IE6.
I interviewed for them. Questions were Front End related. One of the questions were "how could you find a node in an hmtl by id", to which I answered "using the DOM api, a querySelector would do a good job". The interviewer started hypothesising that the querySelector is not available, so we had to start discussing a whole binary traversal algorithm. If that's not leetcode I don't know what qualifies as it
Tree structures are very common in software. Needing to traverse them is also common. Sometimes people write utility functions to help you do it (that's where querySelector comes in), but it's really bad to think this knowledge is useless in writing software. You can't even list files recursively in a directory if you don't know how to properly do a tree traversal.
There are many algorithms in "leetcode" style questions that almost never get used in real world software development. Tree traversal is not one of them.
Heck, the whole family of lisp languages are nothing but "(non?)abstract syntax trees". Imagine getting reprimanded by a user named `morelisp` :)
And to be pedantic, since DOM trees are not binary trees, it's not a "binary traversal" problem. I encounter binary trees a lot less than the non-binary counterparts, but the traversal algorithm is basically the same.
It was hypothesized that querySelector was not available, not that the entire DOM API was not available. However, if we suppose that the entire DOM API was not available, there would no way to access the HTML nodes so no algorithm is going to save you anyway.
I ended porting a few clients we had in a company that were already running based on Docker to a Kubernetes cluster. The major issues were trying to push everything there. I think it works very well to manage web clients.
Problems started by trying to push too many things into the clusters. Databases and specially ElasticCache with Kibana to collect metrics from the cluster ended killing the performance.
So it's like everything, some cases are great for K8s, some are terrible. This + a complex abstractions makes it not that developer friendly, but overall it does a good job to run and allow to scale services without having to worry too much with hardware.
I used to work on a company that had MongoDB as the main database. Leaving a lot of criticism aside, the replicaset model for Mongo made the upgrades much easier than the ones in other type of databses.
While that’s true, managed services on eg AWS provide hot replica’s as well, which you can use to upgrade the database and do a failover to the new version.
We actually migrated from vanilla Postgres to Aurora that way with minimal risk / downtime, it was a really smooth process.
Funny story about using the alias as suggested, I have a couple of websites I can't unsubscribe because they can't process the character "+" on their forms.
You believe sha256 would drastically improve password hashing, being a not broken hash function? In 2006 they likely ran php4 and didn't have much choice what hash to use.
I do have my personal email in a Google Apps, but have a @gmail account for other stuff. I decided to try to set up a family account for my kid. After testing it I decided at this point it's still not needed so I deleted the account.
Next day I received a notification Google was terminating my account with the message "It looks like it was being used in a way that violated Google's policies." Had to appeal the decision and they restored it, no explanation given.
Google customer support is awful. I decided to move my professional email from Google Apps. I don't feel comfortable using a company that can decide to lock your out from your personal stuff without warning and a proper explanation.