Much like a role-playing game, software engineers come in a variety of types, or “builds.” In gaming, these are referred to as “character classes.” Which are you?

Mage / Magic User

The mage, or magic user, is capable of writing incredibly performant and elegant code, that is nevertheless inscrutable to anyone else who witnesses it.

Including themselves, if it’s been a minute.

To gaze upon the result of their labors is to gaze into the abyss of madness. It works, just don’t touch it.

Tests? What are you, some kind of cop?

Don't bother asking a mage to explain code they wrote over a year ago.
Don't bother asking a mage to explain code they wrote over a year ago.

Thief / Ninja

The thief copies code from Stack Overflow without really knowing what it does.

Will shell into a broken production system and run a mysterious bash script that resolves the ongoing outage without anybody knowing they were there.

Just don’t ask why it worked.

Zero residual presence.
Zero residual presence.

Medic / Healer

A meticulous planner, the medic thrives as a “maintenance mode” developer. They harness thorny brownfield systems by erecting a bulletproof scaffolding of automated testing around them.

Sometimes you need to force them to put down their toys and go outside and play with the other developers. Implement a new feature. They get weird if you leave them alone for too long.

Trying to keep something alive with a series of elaborate machines for long enough will drive anyone a little mad.
Trying to keep something alive with a series of elaborate machines for long enough will drive anyone a little mad.

Scout / Ranger

Polymath who can be sent ahead to try out new technolgies and lay down a path that others can follow. They spot potholes and dead-ends before others fall into them.

The scout writes a doc or creates a library to encourage others to use the new thing according to best practices.

Sometimes the scout needs to be “brought in,” or they will wander indefinitely in the wilderness.

The scout will forge ahead and discover where all the lightning sand, flame-spurts and R.O.U.S.'s are, so that others may avoid them.
The scout will forge ahead and discover where all the lightning sand, flame-spurts and R.O.U.S.'s are, so that others may avoid them.

Tank / Fighter

If you have a seemingly insurmountable problem that never gets prioritized into a sprint, simply nerd-snipe the tank into fixing it.

They will bash their heads against it without stopping for rest or food until the problem has been smashed into manageable bits.

Needs medic badly by the end of the sprint.

It may not be the prettiest solution, but it works, darn it.
It may not be the prettiest solution, but it works, darn it.

You Have My Axe

Obviously, in real life, people contain multitudes. Nobody fits a single narrow “type” definition all the time, and people are constantly growing and changing. The only constant is change, right?

But, I find it kind of fun to think in these terms sometimes when working on a difficult problem. “I’m totally being a tank for my team right now, I’m slogging through all this tedious grunt work that nobody wants to do, but will improve the lives of everyone else on the team.”

More of a self-motivation tactic than a way to pigeonhole or judge your co-workers, hopefully.