55

I work for a startup which was acquired by a much larger company. My official job title is "Software Engineer" (SE) and I am a junior. I have been working at this company for three years. We have a distributed backup and recovery system which was written to no standard whatsoever and eventually the individual who built it could no longer maintain it (because she did not focus on scalability) and she burned out and quit. I immediately inherited the system because I had a bit of experience working with distributed systems and was very familiar with some distributed paradigms (HA, load balancing, fault tolerance, etc.). Over time, I "survived" and I built several new recovery systems, many of which are being used on clients. I am the only person in the company who knows how this system works. Now, a day-to-day for me involves:

  • Architecting and designing new systems from scratch
  • Maintaining existing systems I have architected
  • I have written 100% of the documentation for all the systems I have built. I write documentation every day (and I happen to enjoy writing documentation)
  • I have written 100% of the tests for all the systems I have built. I write unit tests for my work almost every day (I also happen to enjoy writing unit tests)
  • I review and merge pull requests from junior employees
  • I occasionally interview new recruits alongside my manager
  • I mentor new employees that myself and my manager have hired
  • At least twice a week I take phone calls from clients to troubleshoot any issues they may be having with my products
  • I do all of this with almost no oversight from my manager (or anyone)

All in all, I love it and I wouldn't change a thing about my current arrangement. Here's the problem though... I am still a junior SE... and recently, the new VP of our company stated something along the lines of "I'm not working hard enough." What's worse is that even my manager agreed that I am long overdue for a promotion.

Is it normal for a junior SE to be doing this amount of work? This is my first job out of college and three years is not a long time. Although, at this point, I can't help but feel like I am getting taken advantage of. When I think of "junior", I think of someone who is very new, doesn't know much about best practices, and focuses on work like bug fixes, as an example.

I should also note that I am strongly considering leaving the company. This company is having a serious issue with turnover, morale is down, and personally I am getting sick of people not caring about certain things such as code cleanliness and documentation, for example. The news that apparently I am not working hard enough is the straw that broke the camel's back for me. At the same time though, the pay is decent and I am largely free to do as I please - a privilege that I don't want to lose. So I really don't know what to do here.

1
  • 2
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Kilisi
    Mar 2 at 23:18

12 Answers 12

115

Figure out what you want first

Every job has its good things and its bad things. You need to go through this and check what's important to you. It sounds that your main complaints are:

  1. Job title
  2. No recognition from a new VP
  3. people not caring about certain things such as code cleanliness and documentation

On the other hand, the rest seems to be ok:

  1. "All in all, I love it and I wouldn't change a thing about my current arrangement"
  2. the pay is decent
  3. I am largely free to do as I please
  4. my manager agreed that I am long overdue for a promotion

It also appears that you learn a lot of diverse and useful skills with a fair bit of responsibility, which will come in handy in your career.

At the end of the day, you need to decide whether the plusses outweigh the minuses, but to me, that looks fairly good and your complaints are more emotional than having real consequences.

  1. Job titles are squishy and many people don't care much. What really matters is pay and scope.
  2. New VP come and go all the time. The relationship with your direct manager seems fine and what happens in the higher food chain probably doesn't have a lot of impact on your day to day work.
  3. There will always be some amount different work styles and priorities and different balances between maintainability vs schedule and revenue. As long as the business is heathy and you personally don't have to deal with too much mess, this seems acceptable.

So I really don't know what to do here...

Figure out what really is important to you and how the good stacks up against the bad. If there is one or two things that really want, you can create a very targeted action/communication plan on how to get them. There is also no harm in looking around a bit, but keep in mind that a significant change comes with the risk of losing some of the good stuff you have as well.

11
  • 14
    Upvoted, but just with a little concern regarding: "[t]he relationship with your direct manager seems fine". The fact that they don't want OP to speak directly with VP is a bit worrying imo.
    – nicola
    Mar 2 at 15:18
  • 24
    @nicola Not if the Managers knows that the VP is a #@#! and talking to the VP would be counter productive.
    – Dijkgraaf
    Mar 3 at 2:46
  • 5
    @nicola In some companies, going over your managers head directly to the VP would not help but be career suicide. Even if VP is in charge of the promotions. Ignoring chain of command can be dangerous.
    – Mast
    Mar 4 at 8:34
  • 2
    @Mast I totally agree. OP should not go to VP independently. It's their manager that should tell them to go and speak to VP and/or set some recurrent meetings. That fact that this did not happen is a little bit worrying as I said before, especially since what OP said in the comments. I don't see how OP could ever be promoted by a guy they didn't talk with not even once.
    – nicola
    Mar 4 at 9:43
  • 1
    @James, my advice is to sharpen your skills and leave the company for good. Keep your emotion personal. You're young but your works seem lacking of collaboration from the peers and higher experienced engineers. If you want to stay, find out the people got promoted and compare yours with their achievement. High managers don't tend to care the process, they care about the result. Make sure that you let them know how much effort you contributed and how good output from your works (you works are billable, that is a good part).
    – Han
    Mar 10 at 8:07
44

I really don't like the "junior" and "senior" job titles, because they are not well defined and every company can interpret them how they like. But your description of your duties sounds like "senior" level to me. Now to your question:

Am I getting taken advantage of?

No. And yes. There is nothing inherently unethical going on. Just you working for a lowball salary. But that's something you can fix. Don't wait for some manager approaching you: "James, good job! Here's your raise!". That's not how it works in most companies. You need to step up and demand that raise (and/or title change) yourself. As you are now quite proficient in the used technology you have a lot of leverage, because replacing you would be expensive.

recently, the new VP of our company stated something along the lines of "I'm not working hard enough."

If that comes up during the salary negotiation, ask for clarification. Why would they think that? What needs to happen that even the VP thinks you are good enough for a raise? If their demands are unrealistic, push back and politely state your view of things. Be very polite, but firm.

And as always in salary negotiation, think beforehand what you want, what you need as a minimum to keep working there, and what you will do if you don't get your minimum.

9
  • 4
    Sounds like the OP will be low-balled by the new management team up top. If the new VP thinks you're not working hard enough they can continue to think that when the OP is working somewhere else for more money and/or better prospects. Mar 1 at 7:04
  • 39
    My definition: Junior = needs supervision. Medium = does their job but sometimes asks a senior for help. Senior = handles anything. Is there anyone supervising your work? If no, you are not junior. Is there anyone you go to sometimes for help with hard problems? If not, you are senior.
    – gnasher729
    Mar 1 at 7:08
  • 12
    At this point, nope. I am the authority on this system. I report to a manager but he hasn't reviewed any of my work for 1.5 years at least. Moreover, at least 3 hours of each day for me is mentoring and providing advice to new persons, especially with regards to architecture and scalable design
    – James
    Mar 1 at 7:12
  • 1
    @MatthewGreen I couldn't agree more but... HR!
    – James
    Mar 2 at 23:22
  • 7
    @gnasher729 Hard disagree with the idea that if you go to someone else for input on a hard problem means you aren't Senior level. It's a sign of maturity to know when you are up against a very difficult problem and ask for help from someone more knowledgeable. Seeking input is a sign of self-awareness that many "juniors" lack. Michael Jordan had many coaches in his career, would you consider him "medium?" Please consider the implications of discouraging people from solving problems with help. Mar 3 at 15:02
15

The real answer is that you are being taken advantage of if and only if you feel like you are being taken advantage of. That said, there are a bunch of red flags here:

  1. Your job description does not sound like a job description for a junior. It sounds more like a job description for a tech lead. Specifically the parts about architecting new solutions yourself, reviewing and merging pull requests, and doing mentorship all sound like at least senior level if not higher; in fact those are the primary things that separate a junior from a senior (as well as depth of knowledge which is less quantifiable).

  2. You seem to have a lot of priorities; how do you get them all done in a day? If you're AFK for 3 hours to run an interview loop, those are 3 hours you're not coding, so of course your productivity will suffer. When your VP raised your productivity issue, what did you say? Did either of you mention all the side things you are doing? I also presume, as a VP, this person has never wrote a line of code in their life and have no idea how to actually be an engineer (this tends to be the case); if they are judging your productivity on "lines of code per hour" that's completely the wrong metric, as you well know.

Now, objectively speaking, titles don't really mean a lot unless you plan to quit your job. The reason is because if you were a "junior" at your previous company and you're applying for "tech lead" at your next company (which is probably somewhere close to what you deserve), you're not going to be taken seriously. The problem is that, at most companies, titles are indicators of salary; a junior engineer is paid less than a tech lead. So if you want the salary of a tech lead, you need to get the title of a tech lead, which means you can't continue to be a junior engineer who's doing tech lead-level tasks.

Based on this, I would say that in my opinion you are being taken advantage of. Here is a story of an engineer who had a similar situation to yours. This is a telling tale of how much leverage you have over this company; you designed one of their core systems and you're the only one who really knows how it works. If you leave, even if you spend 2 weeks onboarding your team, they're going to be in big trouble. Whether they think they need you or not, they need you a lot more than they think they do, and that's your leverage.

The way it's likely to play out is that, if you ask for a compensation review, it's not going to go the way you want; you've already been reprimanded for performance by a VP. Then you will find another job and you will quit, and they will call you back 2 weeks later when their entire system is on fire and nobody knows how to fix it to plead with you to come back. At that point, refer to the above story for instructions on what to do.

2
  • I don't get all my priorities done in one day! And unfortunately I never got to speak with the VP. It seems like my manager doesn't want me to speak with the VP after I brought it up. I really like this answer because the last paragraph depicts exactly what has happened to one of my co-workers
    – James
    Mar 1 at 23:10
  • Also WOW! The link you sent is literally exactly what's happening at my work!
    – James
    Mar 1 at 23:14
14

Check in your contract how much work “work enough” means. Since you were told you don’t work enough, make sure you work enough according to your contract. And not more.

At the same time, start looking very seriously for a position with another company that pays you adequately for your work.

You then have two choices: Sign a contract with a new company, giving the minimum notice legally allowed to the old one. Wish them good luck because they need it. If they ask for more time, handover etc., tell them that’s not needed since you didn’t work enough anyway.

Or you might go back to the VP as soon as you are confident you’ll find another job, tell them you totally disagree with his assertion that you don’t work enough, that he just tries to save on salaries, and ask for what you want. Don’t accept promises. That way you have a clean conscience (although I’d have a clean conscience anyway) and there’s a chance that you stay.

PS If the company has been cutting staff recently, definitely DO look for a new position.

4
  • 7
    Funny. According to our contract we must work 37.5 hrs/week or 7.5 hrs/day on a 5 day week. 10 hours a day was more typical for me. I take the blame for this one - I should have stopped the minute the clock struck 7.5 hours.
    – James
    Mar 1 at 7:08
  • 9
    Oh well. 7.5 hours a day it is then. Make sure you write your work in those hours down (which is also part of the 37.5 hours).
    – gnasher729
    Mar 1 at 7:11
  • 9
    @gnasher729 i was once asked to wirte more accurate timesheets. So i started to mark 15 minute increment slots. They were pretty pissed when i strated to include 15 minutes each day for filling more acfcurate timesheets
    – joojaa
    Mar 2 at 15:19
  • "tell them that’s not needed since you didn’t work enough anyway." That's a good way to burn bridges. You might have to deal with the manager again in a different company at a later date, so that might not be the best way to handle leaving. Instead, tell the truth that the new job wants you to start on a certain day and that's when you plan on starting. It doesn't have to be any more or less complicated than that, and it's more professional. Mar 4 at 0:55
5

The work that you're doing all seems reasonable for someone with a "Software Engineer" title. It's a wide variety of things but that's not uncommon, especially for startups and small companies. Now that you're part of a larger company, you might be able to reduce your workload by offloading the day-to-day management of the backup system to your company's IT department. That would potentially make your life easier, plus improve the bus factor a bit.

Don't get too hung up on the job title. Job titles aren't standardized and vary wildly between organizations. I once worked for a company where your job title simply signified what sort of work you did and not your rank. We all had the same "software engineer" title regardless of level of responsibility. At the same time, a buddy of mine worked a very similar job for a company in the aerospace industry where they handled job titles like the military. You might be a "Junior Software Engineer 3" or a "Principal Software Engineer 2". People would get title bumps every 18-24 months, but most had almost no impact on duties or compensation. His company had around 10 different titles that covered the same range of work as one single title at my company. The end result is that you really can't compare titles from one organization to another. To quote the bard:

What's in a name? that which we call a rose/By any other name would smell as sweet.

In other words, it's not what you're called, what matters is who you are and what you've done.

Also, your company's acquisition may have played a significant part in your lack of a promotion. Your old and new companies likely have different requirements for advancement, and it's not uncommon for promotions to get briefly put on hold after an acquisition while the company is still being assimilated, job titles/responsibilities are being adjusted to match the new company's standards, team structures are being shifted around, etc. The big plus here is that your manager recognizes that you deserve a promotion. Continue to keep track of all the good work that you're doing, and have a chat with your manager about what specifically it would take (from you and from them) to get that bump in job title. Your best odds of getting the promotion is when the two of you are on the same page and have a clear path forward.

Ignore the VP. That sounds like a really bad attempt to "rally the troops" and inspire them to work better, spoken by someone who's completely out of touch with regular people. Most first-level managers don't even have a full picture of what their direct reports do. Someone that far up the food chain won't have the slightest idea what you're doing (especially if they're new, and double especially if you're part of a recent acquisition). I'd bet that they wouldn't even understand any part of your job if you tried to explain it to them. Unless that VP is the one evaluating your job performance, then his opinion of you is just about as meaningful as your opinion of him.

All in all, I love it and I wouldn't change a thing about my current arrangement

That's the sort of thing that's hard to find. You won't necessarily find that at your next job, perhaps not ever again. I wouldn't jeopardize a good situation over chasing a job title or a raise that's anything short of "significant". Enjoying what you're doing is one of those intangibles that's just as important as other benefits.

I am getting sick of people not caring about certain things such as code cleanliness and documentation

Keep in mind that if you move to a new job, you very well might be walking into a situation that's far worse that what you have now. Software in the real world is rarely done the way we'd like it to be. Things that customers can see or that generate revenue have priority. The sort of things that you mention only directly impact the developers, so there's much less incentive to spend any resources on them. There are ways that you can increase adoption of best practices within your organization and even ways to get management on board, but that's a completely different topic (IIRC, one that's been asked on here many times before).

I write documentation every day (and I happen to enjoy writing documentation)

I write unit tests for my work almost every day (I also happen to enjoy writing unit tests)

Make this one of the biggest weapons you have. When you're fixing bugs or resolving customer issues, keep track of those that could have been avoided with better documentation or cleaner code, or that that should have been caught by an automated test that was never written. Have hard numbers for your manager that show the team encountered X number of issues this quarter that were completely avoidable, wasting Y man-hours of employee time and causing Z hours of customer downtime, etc. Create a clear cause-and-effect relationship between these sorts of maintainability problems and things that impact the company. That should make it much easier to get management on board with whatever process changes need to be made to improve your codebase and change the developer culture. It also helps you show the other developers how doing this small amount of additional work now can save them a much larger amount of work later.

1
  • All really great points! And yes, one reason I am hesitant to pull the plug is because I am very concerned that "grass is always greener on the other side." I like the idea of just ignoring the VP (unless he's directly engaging with me). I am trying to get better at ignoring corporate politics
    – James
    Mar 2 at 8:14
5

The real problem here is that since you're perceived as a Jr. employee who doesn't work hard enough, you won't be consulted on decisions which affect your area. Eventually a decision will be made above you which will wreck your job. The VP will force migration to a new recovery system that won't meet current requirements; or, without you knowing it, customers will be rerouted to a "better" help-desk area; and so on.

This doesn't seem like anyone's fault. It sounds as if they didn't really understand the effort in running a distributed system, and that your predecessor and yourself essentially created the job under-the-radar. I'd guess that you being the contact point for clients happened organically (and a typical set-up would have a Jr. such as yourself as the first contact anyway, for "is it plugged in" Q's). It's possible no one actually knows your job.

To compound things, self-created jobs are sometimes mostly useless. A not-very-supervised employee can fill their days shuffling the Pensky file (Seinfeld reference) in a way that seems very important to them. This new VP may take some convincing that what you do isn't time-wasting nonsense since it's not in the mission statement or your job description.

Fixes seems obvious: as part of a larger company, a better title is going to be more important as far as being in-the-loop. And maybe make sure everyone knows what you actually do. And sometimes being acquired inevitably destroys the acquiree and there's nothing to be done -- maybe your new owner has an entire department already doing what you do.

2

There's an urban legend that if you put a frog in a pot of cold water and put it on the stove and heat it up slowly, the frog won't jump out. Right now, you're discovering that you're the frog, friend.

You started out as a junior title but the company has added responsibility after responsibility, and your boss has done this while carefully observing that you've made no protests as to adding money to your pocket in kind, or changing your job title.

You've probably let it go on too far, to the point where they'll rebuff any protest you want to make at this point. i.e. "You've been good for three years, why are you complaining now?"

You can ask, but avoid giving any ultimatums. If you want more money and a different title without fighting an uphill battle, you'll probably need to find another job. Toxic work culture.

1
  • I'm updating my resume as we speak!
    – James
    Mar 1 at 23:00
2

What IS normal here is that when it happens, it is usually a junior SE that allows it to happen ;) It happend to me, I'm not likely to let it happen again.

The way you transition from a junior SE, who is really just a full-stack developer is through finding and employing the resources that you can delegate some, if not all of these tasks to.

It sounds like you still want control, you still want to know the ins and outs, which is great, but you are not likely to be able to step back and take time away from your work. Unbeknownst to you, you have been so good at this that you ultimately created this scenario where you are the source of technical debt.

Now it is time to slowly take a step back, it probably starts through documentation and a few upgrades to the roles that are below you. But I mean process documentation, no longer will you write the tests and the documentation, you need to delegate that to your subordinates. Yes, you will need to start treating them as such.

Start simple, lead by example, "here is the finance module that I documented... Use this as a style guide and continue the documentation of the backup module". Your role in terms of actual work in the project needs to transition to overseer mode. Give them room to make mistakes and own the process for themselves, you start to set targets in terms of content and quality, but you can't do all of the physical work yourself to a high standard at the same time.

The Title, Pay and recognition issues are usually easily solved through formal promotion or by leaving this organisation and moving into the next one. But you can start the change by referring to your role as how you want to see it, if anyone asks why you are starting to delegate then you explain the following:

You are lowering the technical debt and therefore risk by ensuring the knowledge on how to perform these critical tasks is distributed across the team. As the engineer and custodian of the existing processes it is your role to ensure coordination across the team and that the quality of the work is maintained through this transitional phase and beyond.

It is your goal to create efficiencies and sufficient resilience across the team such that you could take an unscheduled day of leave and almost no one should notice. That is the test, when you think you are ready, take that step back, if you come back and everything is still working, then you have done a good job and can now truly call yourself a senior Engineer!

3
  • I didn't think of that, but yes. In a sense, I did allow it to happen. One time I mentioned that I'd like to be bumped up to a more senior role but they gave me an expected canned response: "there are policies in place where we can't promote from one level to two levels above bla bla." I should have clearly kept on pushing. I have actually started implementing the "lead by example" strategy in the last 6 months as well, because yes, I see your logic here
    – James
    Mar 2 at 21:10
  • 1
    Its a common story, you start small, and the product and the team evolves. The reality is that you have evolved too. You just need to recognise your worth. Treat this next 6 months as training or experience that you will use to get your next job. Demonstrate that you can manage the people, manage the process, and can maintain quality of the code base. Then in your next job interview use this as a case study demonstrating how you identified the problems, stepped up and managed the process to implement solutions, that's what they'll want to hear. Work smarter, not harder! Mar 2 at 23:11
  • Nicely put. Thanks again for your thorough evaluation!
    – James
    Mar 3 at 6:38
2

The short answer is yes, you are being taken advantage of. I don't understand some of the other responses. What is going on is unethical in my opinion and there's zero excuse for it.

Keeping somebody as a junior for 3+ years is not normal.

Giving junior developers lots of responsibilities without promoting them is not normal.

Telling them "they're not doing enough work" without quantifying that is not normal.

Assuming everything you are saying is true, then you are being given all the red flags you need. Your senior leadership is more concerned with the bottomline than helping you grow as a person in your career. That's toxic and it will not serve you in the long run to stick around. You can follow some of the other advice and try to demand raises/promotions, but if your boss is already telling you that you "aren't doing enough work", then you have no leverage in those negotiations. If they were really concerned with your performance they would have worked with you on addressing it and setting achievable goals. Either way, nobody promotes underachievers. Whether or not you are actually underachieving is kind of a moot point at this point. If you're on their naughty list, then a promotion is a far off deal.

If I were you, I would already be handing out resumes and doing interviews. The market is way too hot to waste your time with companies that don't appreciate you.

2

My dear friend, in my opinion you are treated unfairly. From your description, you are more indispensable to them than they are to you; given your skills, there is no doubt you can find another good job in a short amount of time.

I would suggest you start looking for other jobs. It would broaden your view even just to chat with the hiring manager about their projects. And in today's job market, jumping ship often gives better rewards for one's career, which is unfortunate.

If I were you, I would also write to both the VP and the direct manager with a detailed list of my responsibilities, and ask for advice on what to trim and what to add. If you don't make noise, nobody knows your value to the company. If they really don't think you are valuable, there is no point of staying.

2

It sounds like you already know you are being taken advantage of but you're having a hard time weighing the risks and options you might encounter if you were to depart. Here's the thing: nobody is going to pay you more than they have to to keep you. Why would they? If you are willing to keep working for the same pay and the same title and the same abuse (not working hard enough) why would anyone think they should improve your environment for you?

I worked for the government for 12 years. I was a GS-12 managing a 15 person software engineering project. I had gone through all of the steps, twice a year, for four years to get promoted to a GS-13. Eight attempts, eight rejections, and the answer was always the same: You're doing a great job, I'm sure you'll get it next time (in 6 months).

I was having a particularly bad day one day and my manager came by my desk to let me know the promotion board had convened and that she was sure I'd get promoted this time. I spun around in my chair and told her that I'd better get promoted or I was leaving in 30 days. I didn't get promoted by the promotion board. However, the next morning, her boss's boss came around and presented me with an out-of-cycle promotion, effective immediately.

You have to know what you want and you have to know what your are worth, and you have to accept nothing less. Once people know you are willing to take less, that is all they will ever offer you.

1
  • 1
    "Once people know you are willing to take less, that is all they will ever offer you." This hit hard. And yes, I more or less know at this point. To your point, yes I am at that point with my manager. I had a fairly stern discussion with him yesterday, basically outlining that at this point I am getting used.
    – James
    Mar 16 at 23:01
1

Sharing some tactics you could take from the people leaders perspective. Anytime you come across a generic statement, ask for concrete examples or feedback. Don't let that slide.

  • Manager says you are due a promotion. Ask them why they think that? Only good from come from this. You learn to keep doing those things that add value and if something is mentioned you aren't doing, you can start doing those things. Moreover, if there is something you do you manager isn't aware you are doing, you can correct that.
  • VP says you aren't doing enough. Ask for a specific example. If you can't get one, it'll be obvious to that leader they overstepped. If a good example is provided, learn from it. Start with positive intent here. You may feel that's not warranted but it'll resonate with those viewpoints you are (rightfully) challenging.
  • Ask your manager to provide you a breakdown of your company's career ladder and where you are on it. Business titles can span HR career levels. From there, ask how close your salary is to the midpoint of that job grade because they likely won't give you a dollar value. From these two things, determine for yourself if you are in the right job grade and paid right. If you are over the midpoint and meet the criteria of the next job grade you have the argument you need for a promotion. A good manager is already doing this for you...but it's your career take ownership of it. Both of these things are allowed to be true at the same time.

After this, it seems like you are happy there, just not sure how well you are valued. The grass isn't always greener. I'd push to get a better understanding of how you are viewed by leadership before a change.

1
  • Amazing insight. I have a meeting with my manager in a few days to discuss all of this and these are all bullet points I will be addressing. I agree - they have yet to give me a concrete example of me "not doing enough." Or really any example for that matter...
    – James
    Mar 11 at 19:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .