3 ms·
I have the same dilemma. I've worked at small startups most of my career so unlike many here I don't have many colleagues to lean on. Recently I was tasked wit
by nogridbag 4y ago
I have the same dilemma. I've worked at small startups most of my career so unlike many here I don't have many colleagues to lean on.
Recently I was tasked with building a new product that will bring significant revenue to the company. And with that comes tons of new challenges and responsibilities that I haven't had to face previously. From the non-technical side I have to wear basically every hat, project management, recruiting and interviewing, managing the team, etc, because I was given no resources or direction and these things are needed to build a successful product. With that comes lots of people skills that impact the product and architecture, e.g. making sure you hire compatible people, giving people freedom to own things but still giving important direction and feedback, and most importantly reining them back in when they try to introduce the latest tech fad into the product.
Getting back to the question, from the technical side, I had to decide if I'm going to stick with the same tech stack and basic architecture as the rest of our products and if not, I better have a damn good reason. And the truth was, we had essentially zero architecture, and the frameworks we were using in our existing products was a major contributing factor to a high defect rate. And even worse, management assumes I can re-use large parts of our existing products code but that code is tightly coupled to the tech stack they chose. Ultimately the success of the product was on my shoulders. Every night I was reading up on software architecture, researching web frameworks, listening to architecture podcasts. Much of that time was searching HN to read postmorterms of different architectures trying to separate the BS from what works. I chose the hard path of deviating from the existing companies stack. We're now quite a ways into development and that initial effort was worth it. We have a very simple layered architecture in a monolith. Our code quality is fairly high, we have solid unit tests, and our small team is very happy working with the codebase. With that said, I still have imposter syndrome especially when interviewing people that have more experience in areas I'm lacking. And every dev interview I seemingly have to explain and justify why I'm not using microservices!
- pcthrowaway 4y ago> listening to architecture podcasts Would love to know if you have any recommendations along these lines. I feel like not using microservices is a pretty common decision, if anything I think using microservices requires justification more than not using them
- nogridbag 4y agoI mainly listen to the InfoQ podcasts, but the only impact it had was contributing to my imposter syndrome. Regarding microservices, that may be common advice on HN but I'm not sure about the general dev community. I think most developers feel it's important to have on their resume along with docker, kubernetes, etc. And the only way to do that is to work at companies using microservices. Anecdotal, but many of my developer friends during the initial hype were asking me my thoughts on microservices and deciding to take lead roles to introduce microservices at companies without knowing anything about their codebase. Then they would change jobs every 6 months and repeat.