Types of software engineers you are bound to meet

30 Oct, 2024 (updated: 30 Oct, 2024)
1014 words | 5 min to read | 3 hr, 3 min to write

Software engineering is a vast field, and with it comes a colorful assortment of individuals that span the spectrum from geniuses to, well, let’s say “creative problem solvers.” Here’s a rundown of the various software engineer archetypes you’re bound to encounter — whether you like it or not.

1. The Stack Overflow Copypaster

No time for writing code from scratch? Neither does this engineer! The Stack Overflow Copypaster is the ultimate efficiency machine. Need a new function? It’s already on the internet! The best part? They don’t just borrow bits and pieces—they take entire code blocks, often forgetting to check for pesky little things like the right language or framework. After all, why waste time understanding a problem when someone, somewhere has probably solved it already? Fingers crossed.

Types of software engineers: The Stack Overflow Copypaster

Image credit: commitstrip.com

2. The Code Golfer

Why write readable code when you can write clever code? The Code Golfer’s mission is to make their work look like an elegant math puzzle that would bring a tear to Alan Turing’s eye—if only anyone could understand it. Functions are ten characters long, variables look like rejected Scrabble words, and a bug fix feels like decoding the Matrix. If you ever dare ask for comments in their code, they’ll respond with, “It’s self-explanatory.” (Hint: it’s not.)

Types of software engineers: The Code Golfer

Image credit: programmerhumor.io

3. The Meeting Lover

Who needs code when you’ve got meetings? The Meeting Lover can drag a 5-minute stand-up into an hour-long debate about Jira tickets, workflows, and the philosophical implications of agile. Strangely, they always have a lot to say about project velocity but never seem to have the time to actually work on that feature they’ve been “researching” for two weeks. Their greatest achievement? “Aligning synergies” without touching their IDE.

Types of software engineers: The Meeting Lover

Image credit: commitstrip.com

4. The Language Purist

If you’re not writing code in their language of choice, you’re doing it wrong. The Language Purist will roll their eyes every time someone mentions a different programming language, be it Python, Java, or heaven forbid—PHP. Their language is the best, obviously, and they will spend hours explaining why while conveniently avoiding the fact that your project uses something entirely different. Bonus points if they bring up how functional programming is the one true way.

5. The Cowboy Coder

Process? Testing? Version control? The Cowboy Coder laughs in the face of these so-called “best practices.” This engineer writes code like it’s the Wild West: fast, loose, and entirely undocumented. Deployments are treated like a high-stakes game of roulette, and when something breaks (because something always breaks), they simply fix it with a quick hot-patch… during production. The good news? The bug will probably go away. The bad news? So will your weekend.

Types of software engineers: The Cowboy Coder

Image credit: u/randomUser9900123 on r/ProgrammerHumor

6. The Framework Fanatic

Why write plain JavaScript when you could just layer four new frameworks on top? The Framework Fanatic lives for the newest, shiniest tech stack. Last week they were all in on Angular, but now it’s React, Vue, Svelte, and whatever came out yesterday. Forget about maintainability or long-term planning—the key to this engineer’s heart is staying bleeding edge. Bonus points if they introduce a framework that solves a problem no one knew they had.

Types of software engineers: The Framework Fanatic

Image credit: programmerhumor.io

7. The Self-Taught Genius

Who needs a formal education when you have YouTube tutorials and Medium articles? The Self-Taught Genius likes to remind everyone that they didn’t go to school for this and “just picked it up on the fly.” It’s impressive, really, until you discover the monstrosity that is their code structure. But hey, it works (sometimes), and that’s all that matters, right?

Types of software engineers: The Self-Taught Genius

Image credit: xkcd.com

8. The Commentator

Not the kind of commentator you’re thinking about. This one’s the king of code comments—though not the useful kind. They’ll add comments like //increment counter over a line that does exactly that, but when you really need insight into the logic behind a 200-line function, the only comment you’ll find is, “TODO: explain this later.” Spoiler: they never will.

Types of software engineers: The Commentator

Image credit: marcelgruber.ca

9. The Impostor Syndrome Sufferer

Despite their many accomplishments, this engineer is convinced they have no idea what they’re doing. They approach every task with a mix of dread and disbelief that someone actually trusts them with the codebase. They spend hours triple-checking work and questioning every variable name, fully expecting the day to come when the entire team gathers to finally call them out. Spoiler: it won’t happen, but they’ll still stay up at night worrying.

Types of software engineers: The Impostor Syndrome Sufferer

Image credit: workchronicles.com

10. The “I Got This” Engineer (Dunning-Kruger Dev)

Meet the “I Got This” Engineer, confidently tackling every task with zero hesitation and even less skill. When their code inevitably breaks, it’s “definitely the framework’s fault.” Their superpower? An unshakable belief in their coding genius despite reality persistently suggesting otherwise.

Types of software engineers: The "I Got This" Engineer (Dunning-Kruger Dev)

Image credit: thedecisionlab.com

11. The Architect (aka, The Overengineer)

Why build a simple, functional app when you could design a massive, scalable solution for an enterprise-sized problem that doesn’t exist yet? The Architect has never met a problem they couldn’t solve by adding a few more microservices and creating a complex orchestration layer. Their motto? “Think bigger.” Meanwhile, your application’s still trying to render a basic webpage. But rest assured, when it scales to millions of users, you’ll be ready. Too bad you only have 10 users.

Types of software engineers: The Architect (aka, The Overengineer)

Image credit: xkcd.com

In the end, it takes all kinds to build software. Whether you’re working with the endlessly efficient Copypaster, the Cowboy Coder who thrives on chaos, or the Architect overcomplicating your simple CRUD app, remember: every team needs diversity. Otherwise, who else would you roll your eyes at during the next sprint planning meeting?