Programming nowadays is less about writing code and more about using search
engines for finding tools, ready components and services. What becomes important
is the ability to tell which of them are the most relevant for the challenge.
Meritocracy works only when the context of knowledge is broad enough.
So most of the time coding is expressing business domain using dozens of Open Source
libraries and frameworks. Added value might also come from integration with external
data and service providers. But when understanding your
domain well enough, it might be that custom made core technology is the only way to go in
order to scale and perform. I was involved in many such a projects.
I am fan of domain driven design, test driven development, microservices and reactive
systems. I also believe that developers should design metrics to measure performance of their
code on production.
I prefer Java/Linux/Cloud ecosystems. But I am also watching closely what is happening outside
these fences. For deployments I will try to go as serverless as possible by utilizing
PaaS, IaaS, FaaS, DaaS, etc. offerings.
And last but not least, even if writing clean code takes more time, I strongly believe that
upfront intelligent effort is reducing Total Cost of Ownership significantly.
And in perspective it will let developers provide new features instead of dealing
with technical debt.