24 September 2014
“Your product shouldn’t be limited by the technologies you use.”
When making decisions over the architectures and technologies you use, always take into consideration how those will impact the end user. You prioritize the user’s experience over that of the developer. That sacrifice, and how you compensate its implications, is what makes you the kind of developer you are.
As part of your philosophy, you stand against the mainstream use of large, monolithic frameworks and you instead stand in favor of the modular application architecture. This architecture gives you freedom in choosing what technologies you need. By design, your stack can now scale and compose with other technologies or architectures.
Rather than use technologies that are designed for the experience of the developer, you use libraries and frameworks that let you focus on writing correct, performant and scalable software. You write out every loop by hand. You focus on structuring your code for maintainability from the start. You adhere to a strict code-style that enforces readability and verbosity to accommodate for the lack of ‘shorthand’ you can write.
You do not depend on a single architecture or framework to decide how you separate your concerns. You make decisions on the needs of your product, not the needs of your technologies. You can choose how to structure your application because you use a modular architecture. You trust yourself and the developers in your team to make these decisions on a smaller scale.
You are not a careless developer who does not worry about managing their production systems. You understand and control your production process. You make optimizations for your production environments. You structure your code to improve functionality in production. You know how to scale your production systems.