I say that I'm a 'full stack' developer, even though it is a term I've never really liked all that much. The main reason that I don't like the term is because I feel like it doesn't mean that much to people. Full stack developer kind of feels like someone saying 'I'll do whatever'.
I'm not sure if it is directly related to being a full stack developer, but over the years I've seen a pattern in how I'm utilized. In my various roles as a developer, I often start out doing front end work, and then over time find myself doing predominantly back end work. This could be because back end work has a higher value at the places I've worked. It also could be because I suck at front end and just don't know it (hopefully not that one.) It's almost as if what people take full stack to mean is that the developer is exaggerating about their skill level on either the front or back end of the stack. Or maybe that they just haven't figured out which end of the stack their real talent lies.
I've always considered myself someone who prefers front end, so that is a bit of a challenging pattern to be stuck in. But lately I've been wondering, am I not being honest with myself?
Maybe I'm just describing myself wrong. I often describe myself as is a full stack developer with a preference for front end. While that sounds kind of like a line from a personal ad, it does describe what I like to work on. I prefer front end work, can do back end work, and especially enjoy back end work when it is in service of making front end work possible or better.
Drilling down on that last part brings us to the section where perhaps I'm not being honest with myself.
I can do back end work, and especially enjoy it when it is in service of making front end work possible or better.
Maybe my real thing is what lies in the middle. The overlapping part of the venn diagram between front end and back end.
There is so much in the middle.
Helping front and back end developers communicate. Developing and maintaining pattern libraries. Helping different developers or different systems integrate with pattern libraries. Everything that goes with decoupled architectures - the APIs supporting them, the fancy JavaScript frameworks that use those APIs. And of course, stepping out of the middle when the situation calls for it.
Maybe I've been a middle end developer all along.