Factors In Tech Career Progression
26th
July 2019, 01:14
In a departure from code and workforce politics, let's examine the subject of career progression in tech.
Career progress, to most laypeople, has a formula: start as a peon, work your way up, get a Senior title (and a pay raise), get into Management (with another pay raise). I've lost count of the number of people that have repeatedly advised me to get into Management, because, to them, that is career progress.
With due respect, these people aretalking out of their asses exhibiting a significant (but understandable) amount of ignorance. That's not how the tech industry works.
Sure, that might be how some tech firms work. But bear in mind that the tech scene in Singapore is hardly at maturation point and many companies still adopt the traditional structures that older companies have used over the decades. While that's how it currently works now at some places, that's not how it's supposed to work.
Titles. Fancy titles don't mean anything. And any organization that thinks they mean something, or tries to force them to mean something, has a lot of catching up to do. If someone wanted a fancy title, all they have to do is register a company (which will cost all of what? Fifty bucks?) and declare themselves CEO or something.
What does a title mean, really? A title is just a one (or two, or three) word phrase that describes what your job is as accurately as possible.
Engineer.
System Architect.
Technical Officer.
Web Application Developer.
Adding "Chief" or "Senior" to the title looks nice on a business card and even better on a resume. Sure, I get that. But what does it actually say about what you do? A bit fat nothing - because "Senior" or even "Manager" means different things in different firms and different contexts. If you were doing a basic job and the title got a bit too fancy, a few pertinent questions would get you found out in a hurry. Long story short, no interviewing Manager who knows anything is going to use that as a gauge for determining your worth to his company.
And speaking of "Manager"...
Management. Let's assume the word "Manager" on your resume is honestly earned. You are a Manager. You have at least one or two people taking orders from you, and you perform organizational delegation. But bear in mind that where you are a Manager at, is also pertinent. Being a Manager in some kuching kurap operation is worlds apart from being a Manager in a legit tech firm of a reasonable size. Also, what were you managing? If you were a Database System Manager, that doesn't instantly qualify you to be a Web Operations Team Manager... unless you're some kind of genius that thinks that anything under "Information Technology" is automatically related.
There's more to be said for aspiring to Management. In many factory settings, if you do one job long enough, you get enough experience in it to be able to supervise and train others. Ergo, you get promoted. You're now a Manager, or at least higher up the pecking order. Trying to apply this approach wholesale to the tech industry is incredibly naive. Management in tech is more about people skills and organizational savvy than technical skills. In fact, the longer you've been in Management, the more you can expect your tech skills to degrade because you don't exercise them often enough. And there is no guarantee you would be a better Manager than developer - you could become a walking, breathing example of The Peter Principle. There are plenty of very talented engineers and developers who won't survive in a Management capacity simply because people skills aren't their thing. Should this talent not be promoted? Well, if being in Management was the only way for their careers to progress, many tech workers would be screwed. Because, as much as I detest the stereotype that techies are antisocial geeks, there's an uncomfortable amount of truth in it.
The thing is, being promoted to Manager carries a certain amount of risk - most of which have to do with job security. Once you get to that level, there is no going back. There are always openings for developers - but a lot less for Managers. Why's that? Simple. Corporate structure can be represented as a triangle. The further up the pecking order you are, the less space there is to move. If you are a Manager and you ever lose your job, you can expect to take a lot longer than the average grunt finding another one. Because Managers generally don't obligingly vacate their positions for you unless there's space further up the pecking order for them.
Pay. Now we're getting warmer. Pay is a pretty good benchmark for determining how far your career has progressed. Generally, the longer you've been doing this job, the better your chances of getting a decent salary. That said, there's a ceiling. Grunt work developers are always in demand, but that's because they generally come cheap. If an employer is willing to pay more, that usually means they expect a certain amount of expertise to be in your resume. So, in that sense, you're not just a grunt.
Pay is a decent benchmark, but it's almost useless unless you couple it with other metrics. In fact, I would even say that other metrics are more indicative of career progress, and pay is simply a by-product of that progress. However, pay is very relevant in the sense that everybody, to some degree or other, does it for the money. There are people who don't care about titles, or rank. I confess to being one of them. But there's exceedingly few people who don't care about money at all. Of course, it takes all sorts to make a world and sometimes you may encounter people who don't mind getting less money if they have a nice senior title... all in the name of career progress. I find this patently absurd, but to each his own.
How about skillsets then? Surely acquired skills determines career progress? Well... not so much.
We're talking about an industry where things get outdated quickly and change happens at a breakneck pace. Thus, the ability to learn, unlearn and relearn is vital. Sure, some things are timeless and even industry-agnostic - properly structured programming, cleanliness of code and ability to work with others are just a few things to come to mind - but tools change, and they change frequently.
So knowing the latest tools, or even a wide repertoire of tools, is nice. It's certainly kept me employable. But it's not wholly responsible for any sort of progress I may have enjoyed. No, we're measured by what value we bring to the table. The greater the value, the higher the remuneration. Being in Management is one type of value, but it's not the only type of value.
Not convinced? Allow me to illustrate. Let's look at my career trajectory and see what we can learn from this. In particular, I want to look at the skills I've had to pick up over the years, and how they were picked up from one job and transferred over to subsequent jobs, and even more importantly, what I did in those jobs. Make no mistake, I've had a rocky career. Some of it was due to poor choices, some of it wanderlust. After the first six years spent in desktop support, I swore never again to allow my comfort zone to hold me back. The result was several one-year stints (sometimes shorter) in various firms. This also resulted in me picking up new skillsets and applying previously acquired skills.
The following table is comprised of this information...
Job. This is comprised of job title, company type and what I was doing.
Skills Transferred. This describes the skills I had picked up in my previous jobs that I got to use in the current one (those in bold denote most recent skills).
Learned. The skills I picked up during the stint in the company, whether at work, at school or on my own.
Remuneration. How much my pay went up (or down) from my previous job.
Editor's Note: I've been informed by a reader that I left out Java, which I picked up sometime in 2015. My mistake. While I have yet to use Java in any significant fashion, much of my current habit of almost exclusively using Object-Oriented Programming can be traced back to the time I learned Java. Still, it's a blip on the scale, and the data doesn't suffer significantly from its omission.
To make things simpler, here's a cumulative-value line graph plotted from the table. The red line represents the new skills I picked up, the light blue line represents the skills I transferred from job to job, and the yellow line represents cumulative salary growth.
In the table, you'll notice that throughout the years, my title has remained predominantly "Web Developer". There's been no mention of Management. Yet, my pay has gone steadily up, despite a slight blip at the beginning due to my career change. Sure, a 10% pay rise could be due to inflation. But towards the tail end of that table, the increase goes above 10% and up to a whopping 25%.
One could claim that where I work is a contributing factor, and that's undeniable. Smaller firms do tend to deal in lower-value work (take note; this will be relevant a few paragraphs later), and thus can't afford to pay much. But, without the experience and skills acquired at the smaller firms, I might not have been hired by the latter firms today.
Also, the amount of skills I leveraged off in each new place of employment is relevant. In fact, I've almost never failed to use stuff I've learned from my last place of employment. And near the end of the table, as time went by, it seems that the list of skills I'm leveraging on from past workplaces, is growing longer. You'll see the blue line trending upwards steadily in the graph. Of course, picking up new skills does help. The salary growth spikes each time the red line does. But it still isn't enough to explain why my pay went up over time.
Now, take a close look at what I was doing in each of these companies. At first, I was making dynamic data-driven websites. Then I graduated to CMS-driven web portals, followed by e-commerce sites. And finally, I began making and maintaining large-scale web applications. Am I still making dynamic data-driven websites? Haven't done that in years. With the rise of sitebuilders such as WiX, Weebly, SquareSpace et al, the value of the work needed to be done on such websites has drastically fallen. Increasingly fewer people are willing to pay others to do something that can easily be done themselves. Now such sitebuilders are capable of creating CMS-driven e-commerce websites just like that. There's no doubt in my mind that if I were still making websites as my main hustle, my career would be in a tailspin.
But web applications of sufficient complexity still require developer expertise. I've graduated to doing more valuable work using the same technical skills I've acquired over the years. That is the main cause of the rise in remuneration - higher-value work. My value is measured by the value of what I do, not by some grand-sounding title. It's not even because I'm particularly good at what I do. It's because what I do is in demand. And people are willing to pay for it.
Stop moaning over not being a Senior this-or-that, or envying those in Management. For all you know, you could be shit at that level and dodged a bullet by focusing on what you're good at. Though, if you really suck at this level, you might want to try getting promoted to Management. It seems to have worked for plenty of people.
That's not to say that only crap programmers become Managers (else I would have been promoted long ago), but the best Managers I've had weren't necessarily the more technically experienced ones, though this doesn't hurt, as you might imagine. No, those were the ones who knew what orders they were qualified to give and what they weren't, and were willing to shut up, stand aside, and let you work.
Years later, things have changed. Technology has changed. The tech landscape has shifted.
At this point in my career, I'm going to have to stop being, in military parlance, all-over-the-shop and try to specialize in something. Because with what I'm getting paid now, I'm rapidly going the way of the people I so blithely replaced years ago.
Tags
See also
Career progress, to most laypeople, has a formula: start as a peon, work your way up, get a Senior title (and a pay raise), get into Management (with another pay raise). I've lost count of the number of people that have repeatedly advised me to get into Management, because, to them, that is career progress.
With due respect, these people are
Sure, that might be how some tech firms work. But bear in mind that the tech scene in Singapore is hardly at maturation point and many companies still adopt the traditional structures that older companies have used over the decades. While that's how it currently works now at some places, that's not how it's supposed to work.
How people tend to measure career progress
There are some metrics that are often used outside of the tech industry. And while to some industries they may be a decent gauge of how far you've come, tech hirers generally know better. And here's why.Titles. Fancy titles don't mean anything. And any organization that thinks they mean something, or tries to force them to mean something, has a lot of catching up to do. If someone wanted a fancy title, all they have to do is register a company (which will cost all of what? Fifty bucks?) and declare themselves CEO or something.
Here's a nice title...
What does a title mean, really? A title is just a one (or two, or three) word phrase that describes what your job is as accurately as possible.
Engineer.
System Architect.
Technical Officer.
Web Application Developer.
Adding "Chief" or "Senior" to the title looks nice on a business card and even better on a resume. Sure, I get that. But what does it actually say about what you do? A bit fat nothing - because "Senior" or even "Manager" means different things in different firms and different contexts. If you were doing a basic job and the title got a bit too fancy, a few pertinent questions would get you found out in a hurry. Long story short, no interviewing Manager who knows anything is going to use that as a gauge for determining your worth to his company.
And speaking of "Manager"...
Management. Let's assume the word "Manager" on your resume is honestly earned. You are a Manager. You have at least one or two people taking orders from you, and you perform organizational delegation. But bear in mind that where you are a Manager at, is also pertinent. Being a Manager in some kuching kurap operation is worlds apart from being a Manager in a legit tech firm of a reasonable size. Also, what were you managing? If you were a Database System Manager, that doesn't instantly qualify you to be a Web Operations Team Manager... unless you're some kind of genius that thinks that anything under "Information Technology" is automatically related.
There's more to be said for aspiring to Management. In many factory settings, if you do one job long enough, you get enough experience in it to be able to supervise and train others. Ergo, you get promoted. You're now a Manager, or at least higher up the pecking order. Trying to apply this approach wholesale to the tech industry is incredibly naive. Management in tech is more about people skills and organizational savvy than technical skills. In fact, the longer you've been in Management, the more you can expect your tech skills to degrade because you don't exercise them often enough. And there is no guarantee you would be a better Manager than developer - you could become a walking, breathing example of The Peter Principle. There are plenty of very talented engineers and developers who won't survive in a Management capacity simply because people skills aren't their thing. Should this talent not be promoted? Well, if being in Management was the only way for their careers to progress, many tech workers would be screwed. Because, as much as I detest the stereotype that techies are antisocial geeks, there's an uncomfortable amount of truth in it.
Less space at the top.
The thing is, being promoted to Manager carries a certain amount of risk - most of which have to do with job security. Once you get to that level, there is no going back. There are always openings for developers - but a lot less for Managers. Why's that? Simple. Corporate structure can be represented as a triangle. The further up the pecking order you are, the less space there is to move. If you are a Manager and you ever lose your job, you can expect to take a lot longer than the average grunt finding another one. Because Managers generally don't obligingly vacate their positions for you unless there's space further up the pecking order for them.
Pay. Now we're getting warmer. Pay is a pretty good benchmark for determining how far your career has progressed. Generally, the longer you've been doing this job, the better your chances of getting a decent salary. That said, there's a ceiling. Grunt work developers are always in demand, but that's because they generally come cheap. If an employer is willing to pay more, that usually means they expect a certain amount of expertise to be in your resume. So, in that sense, you're not just a grunt.
Has your salary grown?
Pay is a decent benchmark, but it's almost useless unless you couple it with other metrics. In fact, I would even say that other metrics are more indicative of career progress, and pay is simply a by-product of that progress. However, pay is very relevant in the sense that everybody, to some degree or other, does it for the money. There are people who don't care about titles, or rank. I confess to being one of them. But there's exceedingly few people who don't care about money at all. Of course, it takes all sorts to make a world and sometimes you may encounter people who don't mind getting less money if they have a nice senior title... all in the name of career progress. I find this patently absurd, but to each his own.
What really determines career progress in the tech industry
Having taken a look at some of the things people use to measure career progress, I think it's safe to say I've adequately explained why those metrics don't work that well in the tech industry.How about skillsets then? Surely acquired skills determines career progress? Well... not so much.
We're talking about an industry where things get outdated quickly and change happens at a breakneck pace. Thus, the ability to learn, unlearn and relearn is vital. Sure, some things are timeless and even industry-agnostic - properly structured programming, cleanliness of code and ability to work with others are just a few things to come to mind - but tools change, and they change frequently.
So knowing the latest tools, or even a wide repertoire of tools, is nice. It's certainly kept me employable. But it's not wholly responsible for any sort of progress I may have enjoyed. No, we're measured by what value we bring to the table. The greater the value, the higher the remuneration. Being in Management is one type of value, but it's not the only type of value.
Not convinced? Allow me to illustrate. Let's look at my career trajectory and see what we can learn from this. In particular, I want to look at the skills I've had to pick up over the years, and how they were picked up from one job and transferred over to subsequent jobs, and even more importantly, what I did in those jobs. Make no mistake, I've had a rocky career. Some of it was due to poor choices, some of it wanderlust. After the first six years spent in desktop support, I swore never again to allow my comfort zone to hold me back. The result was several one-year stints (sometimes shorter) in various firms. This also resulted in me picking up new skillsets and applying previously acquired skills.
The following table is comprised of this information...
Job. This is comprised of job title, company type and what I was doing.
Skills Transferred. This describes the skills I had picked up in my previous jobs that I got to use in the current one (those in bold denote most recent skills).
Learned. The skills I picked up during the stint in the company, whether at work, at school or on my own.
Remuneration. How much my pay went up (or down) from my previous job.
YEAR | JOB | SKILLS | REMUNERATION |
2008 | Technical Officer in a small non-tech firm, creating dynamic web portals. | Transferred: Classic ASP, HTML/CSS/JavaScript Learned: MySQL, CPanel |
-8% |
2010 | Web Developer in a small tech firm, creating dynamic web portals. | Transferred: MySQL, CPanel Learned: PHP, AJAX, WordPress |
4% |
Mid 2011 | Web Developer in a small tech firm, creating CMS-driven web portals and e-commerce sites. | Transferred: WordPress, AJAX Learned: Requirements gathering, customer relations, Joomla! |
3% |
Late 2011 | Web Developer in a small tech firm, creating dynamic web portals, e-commerce sites and web applications. | Transferred: Requirements gathering, customer relations Learned: Stored Procedures, SQL Server, ASP.NET (C#), Visual Studio, TFS, ColdFusion, |
3% |
Late 2012 | Web Developer in a medium non-tech firm, creating dyamic web portals and e-commerce sites. | Transferred: Stored Procedures, SQL Server Learned: Bootstrap, SQL views, Mailchimp and Google APIs |
17% |
2014 | Web Developer in a medium non-tech firm, creating dyamic web portals. | Transferred: Bootstrap Learned: Java, Android Studio, Eclipse, jQuery, jQuery Mobile, AngularJS, Responsive Design |
15% |
2016 | Web Developer in a small tech firm, creating web and mobile application. | Transferred: jQuery, Responsive Design Learned: MeteorJS, Semantic UI, LESS, ECMAScript |
5% |
2017 | Web Developer in a large tech firm, maintaining large-scale web application, public-facing APIs and automated DevOps. | Transferred: ECMAScript Learned: Ruby, ReactJS, DevOps |
25% |
Editor's Note: I've been informed by a reader that I left out Java, which I picked up sometime in 2015. My mistake. While I have yet to use Java in any significant fashion, much of my current habit of almost exclusively using Object-Oriented Programming can be traced back to the time I learned Java. Still, it's a blip on the scale, and the data doesn't suffer significantly from its omission.
Let's interpret this data!
Data's useless if we're not going to interpret it, so here goes...Here's a chart...
To make things simpler, here's a cumulative-value line graph plotted from the table. The red line represents the new skills I picked up, the light blue line represents the skills I transferred from job to job, and the yellow line represents cumulative salary growth.
In the table, you'll notice that throughout the years, my title has remained predominantly "Web Developer". There's been no mention of Management. Yet, my pay has gone steadily up, despite a slight blip at the beginning due to my career change. Sure, a 10% pay rise could be due to inflation. But towards the tail end of that table, the increase goes above 10% and up to a whopping 25%.
One could claim that where I work is a contributing factor, and that's undeniable. Smaller firms do tend to deal in lower-value work (take note; this will be relevant a few paragraphs later), and thus can't afford to pay much. But, without the experience and skills acquired at the smaller firms, I might not have been hired by the latter firms today.
Also, the amount of skills I leveraged off in each new place of employment is relevant. In fact, I've almost never failed to use stuff I've learned from my last place of employment. And near the end of the table, as time went by, it seems that the list of skills I'm leveraging on from past workplaces, is growing longer. You'll see the blue line trending upwards steadily in the graph. Of course, picking up new skills does help. The salary growth spikes each time the red line does. But it still isn't enough to explain why my pay went up over time.
Now, take a close look at what I was doing in each of these companies. At first, I was making dynamic data-driven websites. Then I graduated to CMS-driven web portals, followed by e-commerce sites. And finally, I began making and maintaining large-scale web applications. Am I still making dynamic data-driven websites? Haven't done that in years. With the rise of sitebuilders such as WiX, Weebly, SquareSpace et al, the value of the work needed to be done on such websites has drastically fallen. Increasingly fewer people are willing to pay others to do something that can easily be done themselves. Now such sitebuilders are capable of creating CMS-driven e-commerce websites just like that. There's no doubt in my mind that if I were still making websites as my main hustle, my career would be in a tailspin.
But web applications of sufficient complexity still require developer expertise. I've graduated to doing more valuable work using the same technical skills I've acquired over the years. That is the main cause of the rise in remuneration - higher-value work. My value is measured by the value of what I do, not by some grand-sounding title. It's not even because I'm particularly good at what I do. It's because what I do is in demand. And people are willing to pay for it.
Track your career progress!
If nothing else, it will give you a greater appreciation for how far you've come.Stop moaning over not being a Senior this-or-that, or envying those in Management. For all you know, you could be shit at that level and dodged a bullet by focusing on what you're good at. Though, if you really suck at this level, you might want to try getting promoted to Management. It seems to have worked for plenty of people.
That's not to say that only crap programmers become Managers (else I would have been promoted long ago), but the best Managers I've had weren't necessarily the more technically experienced ones, though this doesn't hurt, as you might imagine. No, those were the ones who knew what orders they were qualified to give and what they weren't, and were willing to shut up, stand aside, and let you work.
Where I'm going
As mentioned earlier, having a wide skillset was advantageous early in my career. It allowed me to be easily employable. I may have mentioned this before here, but once, I stole the jobs of three people because I could do all their jobs - not because I was better at them at those jobs, but simply because the work did not require the level of expertise they had that the company was paying for. I was basically cheap labor doing three jobs (and the scary thing was, I've had worse. This was, in comparison, practically a vacation for me).Years later, things have changed. Technology has changed. The tech landscape has shifted.
At this point in my career, I'm going to have to stop being, in military parlance, all-over-the-shop and try to specialize in something. Because with what I'm getting paid now, I'm rapidly going the way of the people I so blithely replaced years ago.
Onward and upward!