3 ms·
I am specialized, I would call myself a lead microservices engineer. I would never claim to be a "web developer" because I'm not creating web pages. Full-stack
by brandonlamb 8y ago
I am specialized, I would call myself a lead microservices engineer. I would never claim to be a "web developer" because I'm not creating web pages.
Full-stack conversation happens every now and then at my company (big corp), and there is just no way that I see it being successful.
My platform team requires:
- JVM/Kotlin
- Domain-Drive Design
- Akka, streams
- Kafka, PostgreSQL, HazelCast, ElasticSearch, Cassandra, CosmosDB
- Kubernetes / DevOps (the platform infra stuff), knowing how to troubleshoot and resolve issues
- Pragmatic REST design and industry trends/best practices
- Build pipelines, exploring Jenkins/CircleCI
- Distributed system design
- Reactive system and reactive programming design/development
- Pragmatic, well-designed relational and nosql databases (indexes, foreign key relations, understanding wide columns and document based (we have both ScyllaDB and CosmosDB)
- Kong API gateway management
- Core business logic, inter-connected systems (upstream and downstream), complex pipelines
When the hell am I supposed to learn, practice, and keep up on html/css/js?
My org also has a product team which develops our mobile and web applications. The engineers on this team are trying to learn and build AngularJS (legacy), React, React Native, and nodejs for their product APIs which call our platform APIs (backend-for-frontend pattern). They can barely get time to learn how to dockerize their node apps, let alone deliver on business features while actually becoming GOOD. The same applies to my team on platform.
Full-stack might be fine at a startup or small company, but the way I see it full-stack is the classic "Jack of all trades, master of none", or in cynical terms - crappy to mediocre at everything.
I would much rather work with a peer who is specialized and I can be confident in their html, css, javascript, react and node skills as an engineer over someone who can cobble together something that might work initially, but has a shitty design, doesnt follow best practices, or will be a nightmare to maintain as stuff in our environment tends to stay in production 5-10+ years.
We started out as a single development team, full-stack, where everyone was doing everything and it was chaos. Nobody was good or did anything well, which lead to some really shitty code and team members stressed out about how much of a tech stack footprint they were having to try to learn.
Can it be done by the right type of individuals? Absolutely. I could spend a weekend or two and probably learn how to create an initially working React app, but I'm going to struggle to take it very far and wont be able to solve complex problems.