4 ms·
The way I see it is that one should master their stack. If you work over and over again with the same stack you will know it well. You will be able to move mo
by jmartrican 6y ago
The way I see it is that one should master their stack. If you work over and over again with the same stack you will know it well. You will be able to move mountains with it. But it takes years to arrive to that. It takes implementing multiple projects the same way over and over again.
You need the wherewithal to stick with your stack and not get lured away. Maybe this is what boring means. Maybe boring is different to different engineers based on their background.
Sometimes you cannot select the stack cause there might be more senior engineers at a company and they have more sway. This is fine as long as the engineers picking the stack have picked a stack they have mastered and it is boring to them. As a regular engineer in their team I would hope to rely on their expertise and would hope to learn from them.
I remember at one job a rogue engineer picked a boring backend that would have been fine. But they fell behind because the other engineers knew their boring stack a lot better. Ultimately the rogue engineer had to switch to the other boring stack. The rogue engineer just was not fast enough to master it and implement the features required to keep pace with the demands of management. These demands were trace centralized logging, security, and of course features. So while they were still learning the ropes, we were moving on to even more advanced security, logging, and feature requirements. They just couldn't keep up.
- vasco 6y agoI agree completely. Another angle that is less common is remaining at one company you believe and respects your work. If you find somewhere like that, years of working in the same domain can make you more effective. Not to speak of the advantages of a team that works together for 5+ years and the power that comes from true camradarie with your team mates. It's sad that most places - and by definition the largest places also - end up being a meat grinder and people just hop companies and teams within companies every year or two. By the time you start understanding the domain you move on. It takes years to internalize a problem and understand it deeply.
- jmartrican 6y agoSo true. I feel empathy towards management that need to keep their engineering teams intact.
- koheripbal 6y agoThis equally applies to a company's business process. Focus on a specific scalable business model that scales - don't make a special niche process for every "opportunity" that comes by. It also applies to managing your life, personally. Know what things you do, what your personal goals are, and don't let yourself get distracted by the latest and greatest social media trends or stuff your friends are doing. Focus. Mature. Achieve.
- jmartrican 6y ago> don't make a special niche process for every "opportunity" that comes by. At my current job we call those snowflakes. "no snowflakes" is the motto of one of our senior architects.
- danjac 6y agoThe "opportunity" is often a dangling carrot from a big enterprise customer. It's very hard for a cash-strapped startup looking to make bank and reputation to turn these opportunities down, and they don't look at the TCO and long-term costs in terms of complexity and tech debt.
- bob1029 6y ago> The way I see it is that one should master their stack. If you work over and over again with the same stack you will know it well. You will be able to move mountains with it. But it takes years to arrive to that. It takes implementing multiple projects the same way over and over again. This is 100% how we did things for the last 5 years. We used the exact same basic tools & APIs, but iterated on how we integrated them together by way of our code. We took what most people would call a "toy" stack, consisting of just C#/AspNetCore/SQLite (and recently Blazor), and turned it into something that can serve thousands of users in production across several B2B customers. We don't use any sort of containerization or cloud tech. Our software can be deployed by unzipping a file on the target environment and running a single command. You would be surprised at how much speed you can get out of SQLite when you have had 5 years to live with and experiment with its capabilities. On top of its extensive internal testing framework, I have several testaments to its stability sitting in our customers' environments right now. We've got OLTP SQLite databases that are getting close to 1TB in production without any signs of distress. So, instead of focusing all of our energy on shiny things, we focused on building a 100% integrated vertical with (mostly) boring tech so that we can fully manage the lifecycle of our software product with the product itself. We have a management web interface built out for everything we need to do for building & operating the solution. We are very close to being able to partner with other organizations who can run the implementations on our behalf because the software is so easy to manage now. This is the type of real-world horizontal scalability the CEOs are after.
- jmartrican 6y agoThanks for sharing that. I think we need more of these stories of how a team was able to use the boring tools they mastered to implement amazing things.
- gilbetron 6y agoThis is a great comment and is spot on. Mastery has exponential returns over proficiency. The best thing is that mastery feels really good once you have it. I've been bouncing around the past several years not finding what I want, but I've realized the past year that I want to have the mastery with a stack that I haven't since my C/C++ OpenGL computer graphics years.
- jmartrican 6y agoGood luck on your journey to mastery. When someone needs an expert on your mastered stack, they'll be dumb not to hire you.