Why don’t they tell you that in the instructions?
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.
Monolithic repository vs a monolith
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.
All developers should know UNIX
If you are a developer, you cannot avoid learning UNIX. You may be able to get by day-to-day with graphical tools, and you will not advance your career without learning and understanding the UNIX ecosystem. To be productive as a developer is to know UNIX.
Keep your caching simple and inexpensive
Caching is a complex topic. It can make your application perform faster, and it can also make your life living hell. Here are some things I learned from experience.
Scripting languages are tools for tying APIs together, not building complex systems
What makes me think of these things early in the mornings is the proliferation of Java*Script* as an enterprise application language. I believe using JS as a hammer to solve every problem will hound enterprise IT for decades.
Good developers can pick up new programming languages
We shouldn’t be recruiting developers based on some single technology they know but on what they can learn and apply in the future. A generalist developer that can pick the right tool for a given taskand articulate why they made such a decision is a lot more valuable than a specialist.
Java is no longer relevant
Though Java was my primary way of earning a living from about 1997 to 2015, it has long outlived the problems it solved. Java’s issues are being solved now by modern tools like Docker. Except for a few niche use cases, I no longer use Java for my projects.
Automation and coding tools for pet projects on the Apple hardware
Though modern computers are a lot more complex in many ways, Apple does understand the need of power users and students to explore and create.
There is no such thing as one grand unified full-stack programming language
There is no such thing as one grand unified full-stack programming language or a full-stack developer using a single tool. As a SaaS software architect, I certainly do not see some holy grail from my vantage point. We need to use tools that best meet the needs of the task -- and the needs and the skills of developers who use them.
You must be logged in to post a comment.