A blanket statement like "Elon Musk Eliminated Remote Work Because Working From Home "Doesn't Work"" is a logical fallacy in a modern work environment. "Work from home" is not inherently different from "remote work," which in turn is no different from "distributed teams." If working from home doesn't work, then neither do remote work or distributed teams.
I believe Musk when he says that Twitter usage is at an all-time high: “And … we just hit another all-time high in Twitter usage lol,” the tech mogul tweeted late Thursday. Earlier, Musk had tweeted, “The best people are staying, so I’m not super worried.” He is right to be not “super worried.” People are … Continue reading If we stop feeding the monster, the monster will die
I encourage my followers in the US not only to make sure they are registered to vote and exercise their right to vote every election cycle; but also consider working at the polls. Take a day off from work, spend 15 hours helping your own neighbors exercise their right to vote. I am confident that just like me, you’ll find it extremely rewarding.
I am not a fan of the database per service model. The correct pattern for the database model in a cloud-native environment is a data abstraction layer that hides the underlying database mechanics while allowing for transactions that span multiple services. The services should not know the architecture of the database, nor should they orchestrate their transactions.
LISP is used in university computer science programs as a language to teach some of the most critical concepts in computer science. Most graduates don't end up using LISP for a living, despite some incredible niche applications of the language, such as deep space exploration. Likewise, learning Clojure and its concepts will make you a better programmer, even if you don't end up using it for your projects.
Working with the same group of people for 20 years is probably as bad for your creativity as working on the same project for the same company as long. Your skills stagnate, your ideas become inbred, your work becomes outdated, and your growth becomes limited by the Clique that helped you earlier in your career.
Ultimately, you must know your project, your needs, yourself, your skills, and your team. Only you are responsible for your project. So trust your instincts, fellow architect, and don't Shakespearize 🙂
The nature of our jobs as software engineers is such that we must deal with externalities. Hardware will crash. Services will auto-scale up and down. Garbage collection will occur. Humans will make mistakes and use our software in ways we did not anticipate. Someone will write configuration instructions for you on how to setup your dev environment, and they might not apply perfectly to your setup.
Monorepo makes sense under some circumstances and makes no sense under others. A set of related features with related code, similar security, performance, and scalability profiles belong in a single deployable service. Services that are functionally related and have a closely aligned release cycle belong to the same monorepo.