What Titles Should We Use? Engineers, Programmers, or Developers? Senior or Lead? | Ask Matt


– Hey, welcome back to
another episode of Ask Matt. This time the question that
was asked to me was not public, but I’m still going to share it, I just won’t share when it was asked so. I was asking me this week was, “Why is it the Tighten uses
Programmer in our title and what does it mean
for someone to be lead and principle and apprentice and how do those things
differ from junior and senior?” So it’s a really common
thing in our industry to talk about an engineer versus
developer versus programmer and what makes somebody
junior, what makes somebody mid or whatever you would call them and what makes somebody senior. And so we tried those things for awhile, actually what we tried
for a while was to avoid all of those terms. For the longest time, we just
said everyone’s a developer and we just kept going with our lives. But what I realized over time was, I was giving people
responsibilities and expectations that weren’t in sync
with what everybody else was having expected of
them and paying them and giving them the same job title. And that wasn’t, didn’t
have integrity to do that. And so I realized we
needed to make a change. So at that point I took those two people, and I called them Senior. We created a new role
that was called Senior and it worked for awhile but we ran into some of the same problems
that everyone runs into with the concept of senior,
which is that seniority, how long you’ve been around, does not actually have
a direct correlation with your ability to do
those more advanced roles. Sometimes those roles are
more programming required, some of them are more people required, some of them could be held
by somebody who’s less senior than somebody who’s not in that role. And so there’s a lot of
things that are kind of broken about the ways we normally
talk about those things. So earlier this year, actually
at the end of last year, Dan and I sat down and said
we’re gonna have a conversation about a new way to do this. And I’d been thinking for awhile that I wanted to make a change, I wanted to come up with
a different structure and outside of this particular topic we were running into
limitations of that structure because we had problems like, if there’s only two of them what happens when the company grows and how many people can move up into this or whatever. So one of the things we were trying to fix on our own perspective
was how do we ensure that there’s an opportunity
for people to grow into a position regardless
of whether there are already x number of people in that position. But when we were solving that problem we started running into
all these same problems of what’s the terminology
that you use for people of varying levels and what’s
the base-level terminology? Is the base-level terminology
gonna be developer or programmer, engineer, whatever else? So choosing to not use engineer
made the most sense for us. Because first of all, we’re
all pretty full-stack folks and I think that engineer is
something that people often use when they’re really
interested in legitimizing what they’re doing, which is fine but I think that personally, I think we think that engineer
has a little bit of a vibe, it’s a little bit
different than what we do. I mean that’s a personal thing, I wouldn’t tell anybody else you shouldn’t call yourself engineers. That was a decision that we
made just really thinking about how we think about
ourselves and what we do. But one of the things
we did run into was that there are apparently
places including Canada, where you legally cannot
call somebody engineer without certain certifications
and we certainly don’t want to be beholden to things like that. That didn’t make the decision for us, but I think it tipped
our hand on just saying, you know what, engineer
is really not what clicks with our team, specifically. And it doesn’t meant
somebody else shouldn’t do it but that’s how we thought about it. And so we really had the
majority of our conversation about developer versus programmer. Again, it’s really just came down to what was most comfortable for our team. And it seemed that developer
has a little bit more of a vibe of being focused on
somebody who builds websites and we do a little more
than that these days, we build web applications
a little bit more. And as we were thinking
about really the kind of vibe you’d get in each of those, programmer made a little
bit more sense about what do you do every day? Do you develop or do you program? And that’s, it’s an arbitrary distinction and if we’d stayed a developer
it would have been fine. It was really just kind of
feeling out the gut of what, how do we feel when we
say each of those words or hear each of those words. And each company I think is perfectly fine to make those decisions for themselves because there is no definition other than the potential legal ramifications
around using engineer if you’re not supposed
to in certain places. But outside of that, it
really just kind of, to me, this isn’t something where I say, clearly everybody should be this and if they’re anything
else they’ve got it wrong. Like I’m not looking at
companies that use engineer terms and judging them. Not looking at companies
that use developer terms and judge them. So in terms of the developer,
engineer, programmer thing, it’s really just about what
makes the most sense to us. The senior, junior, lead,
all that kind of stuff, the main thing that made us go
in the direction we did was, so we went from having
everybody be a developer, to having developer senior and juniors. What we have right now
is we’ve got programmers, we’ve got apprentice
programmers, we have programmers and we have lead programmers and we have a principle programmer. We did a lot of research in terms of what other terminology
outside of senior and junior that other people use in other industries and it seems that lead and
principle are often switched. Sometimes lead is above principle, sometimes the other way around but in essence, that is a common
differentiation that people use. And it made a lot of sense for us because what we particularly
ask of our leads is that they can lead a project, that they can lead another
developer, they can lead a team. And so that was a really easy one for us because the definition
for that is not that they are more senior than somebody else but that they have the ability
to lead both technically and personally. And the principle, I don’t
exactly know which definition of principle that that
general concept comes from but it was really more just kind of, well we do have one and he is
kind of over the other things a little bit and it is
that also just the term of the two that’s not lead. Lead made the most sense
contextually and so principle just kind of came when
he was fell to Keith. And then in terms of apprentice, we wanted to do a better job of describing what somebody’s doing when
they’re in that context and an apprentice is somebody who is actively following
along, learning from a master and so we’re not masters
but in an apprenticeship, you’re focusing on learning
from the people around you whereas juniors know less. And so that was a pretty easy one. We interestingly had
some early conversations where people said junior feels diminutive and I don’t actually think that, that actually reasoning was
not something that made me care as much about junior versus senior because I think that if
someone has less experience it’s fine to say this
person has less experience. So I’m less concerned about that and I think I’m more
concerned about the idea that someone is in that role,
we should talk about what, our words should work, right? Like this whole concept of integrity, we should use the best words to describe the reasons somebody’s there. And they’re not there because
they have less experience, because you could have someone
who has less experience but is a prodigy or something like that and they wouldn’t be in that role. So it’s not about junior-ness
or juniority or seniority, it’s about what your
posture is in relation to the rest of the team
and what your capacity is in relation to the rest of the team. And so that’s why apprentice
makes the most sense because nobody expects
apprentices to be delivering at the same pace or velocity
or whatever you’d say, as the rest of the team
and so that makes sense. And we also do have the idea
that we’re rolling around with, an intern. But we do think that junior
and senior are most useless because the things we’re asking of them don’t line up with the
terminology that we’re using. And furthermore they’re such
mixed up complicated terms that somebody could be
a senior at one company and be maybe not a junior at another, but definitely not be a senior elsewhere. And we ran into that a lot
when people are saying, “Well I’m a senior at my current job.” And I would just say, “I don’t even know if
you’re at a mid at our job, “you’re definitely not a
senior, you might be a mid.” And that would be an
offensive thing to say and it shouldn’t be
because seniority is just this kind of hand-wavy thing. Whereas with lead I say, “Are you capable of leading
a team at Tighten, yes or no?” And if the answer is yes then that means you’re gonna be put on the
track to eventually be a lead and the answer’s no then you stay at a mid until your point where you’re ready for it and it has nothing to
do with what job title you had at your last job or how many years you’ve been doing this
job or anything like that. So that’s how we think about it, developer versus
programmer versus engineer and that’s how we think about lead and principle
versus senior and junior. So I hope this helps and as always send on more questions and
I’ll see you next time. (rock music)

Leave a Reply

Your email address will not be published. Required fields are marked *