The full stack developer trap
This is a replication of this tweet thread.
I would consider myself to be a full stack developer, but my strength is building backend systems for complex processes. My career started as a frontend developer and I have been building frontends throughout my various types of employment of the last 19+ years. I'd say I know frontend technologies VERY well. And this knowledge gets me very far even compared to frontend developers.
Because I know how everything works together, and I also have been educated in design theory, usability, it's easy for me to use frontend frameworks to build production quality frontend components.
But going beyond that, we are looking at UX and in the end hard UI design problems: going from Bootstrap to the next level, is something I can't do.
And this is where it gets tricky: If I'm confronted with a backend task, I can always go further and provide excellent solutions, because backend code for processing data, talking to to other services, scaling infrastructure, failure tolerance is my passion. Frontend code for mitigating browsers bugs, UI effects, positioning elements, animation: a sometimes interesting but mostly just necessary thing.
But for a non-technical founder, though, they do not make this difference between backend and frontend work. My work is evaluated based on my best skill, which creates unfulfillable expectations. And they will implicitly expect my frontend work results to be equally sophisticated as my backend work.
I maneuver myself into this trap by using frameworks like Bootstrap. They enable me to have great looking standard components, without designing. But for everything custom, it gets hard, and there needs to be designers, UI/UX experts.
I know this from the start, but at this point it's actually too late. It's now really hard to explain that to your founders and team, that they road you had taken them on is not getting just a little bumpy, but ends now, at a cliff.
Make your skill distribution and preference explicit when working in the full stack role.
As a full stack developer your are sought after in early stage startups, small teams because you can deliver everything technically they need in one person.
Make clear for which of the many roles you hold, you expect to be replaced and how quickly and what you want to keep doing forever.
This will help your team to commit to finding a replacement for you from the start of a project. And you will spend more time working with what you can and love to do.
I know this sounds contradictory to the term full stack developer, but I've never met one that truly excels in and loves both disciplines.
I think there is a better term for that: next time I'll introduce myself as a backend developer and full stack literate.