DEV Community

Nathan Martinez
Nathan Martinez

Posted on

Trying to figure out my career

Hello, Dev.to!

I'm a little nervous to have my first post to be this earnest and vulnerable and not technical. But over the past year, I've watched from the shadows as Dev.to grew into an accepting and supportive community, so I hope that I can be honest and get some good feedback and advice.

So...I guess I should just dive right in, yeah?

TLDR:

The following will be an angry rant about my experience with a company for the last 4 years. It is more a public airing of grievances, both petty and substantial. It isn't especially important for you to see or read any of it.

If you can just skip down to the last section where I actually ask for some advice, I would be very appreciative.

I hate my job

Four years ago I was working as a wide-eyed junior dev at a small company when I was pulled off of my team and assigned as the only technical resource on another project that supposedly had potential as a new business opportunity. It was completely separate from what the company was doing.

Looking back, I probably could have said no. I definitely should have said no. But I was not asked if I would be comfortable moving onto this project. So I said nothing and told myself that it was a unique opportunity that not many junior devs get.

There is a reason for that. I wish I could go back and tell myself to run. Any 'opportunity' where a well-staffed company is only willing to assign their least-experienced team member is no opportunity. It is unserious bullshit, and the only person that stood to lose was me.

I was thrown into the deep end. We wouldn't bother to hire another dev for almost 7 months. Which means it was left to me to architect, implement, 'test', and maintain some sort of solution. None of this work was done before it was handed to me. I spent so much time trying to figure out what the hell I was doing. The project required coordination with a business partner to develop an interface with their CMS. My new manager had absolutely no technical experience or knowledge, so it was on me to stumble through call after call trying to get what we (I) needed. I had no idea what I was doing. During this time of anxiety and panic, I was also still doing the work I was originally hired to do.

I thought about leaving almost every day, but I was scared. During this time in the wilderness, I had gained some job experience, but had I improved? There was no culture of mentorship. Which is not to throw any of the team under the bus. They were very supportive. But it was not built into the culture to dedicate actual time or resources to help a junior dev grow. I did my work in a timely manner. I wrote code, of course. But I had no metrics, no experienced superior available to look over my shoulder and judge the quality of what I was making.

Fast forward...

I'm still working on this project. It was split off from our parent company a couple of years ago, which effectively cut me off from any access to help from their development team. They eventually hired another dedicated dev. He is competent and good at what he does, but he is also a lone wolf by nature. We've never really connected, and I haven't learned anything from him.

But together we have built a web platform that is the foundation for a profitable business.

Sounds like a happy ending as I'm writing it.

But now we still have only two devs who work fairly independently by nature and necessity: we are the only two with the knowledge and skills to develop new features and handle all customer support requests by our now 50+ customers. The sales team is made of all older men who promise every feature and customization to every potential customer and then leave it up to us to deliver.

(Aside: Based on their titles I assume they are all also own some part of the company. Which was never offered to the two people who actually built the product.)

And then...

One reason I've stuck it out was out of convenience. I fell in love with a wonderful person who teaches in a county about 2 hours away. As we got more serious, it was easier for me to adjust and move. So for the past year, I have been working remotely about half the time. It was lonely but fine.

But a month ago, a month before my wedding, they decided to revoke remote work privileges. Despite having no prior warning and completing customer requests and actual improvements on our system, my boss accused me of not doing my job for the month of September. I had to sign a 90-day remediation plan.

I was honestly in shock: is that really happening? Have I not been performing? But after digging through my email for any warning signs from management (I had literally received no messages from my boss, aside from WSJ articles that he sometimes spams us with before posting them to LinkedIn). I talked to our new customer specialist, who had been acting as our de facto scrum master for the past month or two. She was surprised: she couldn't think of anything that would have warrented the remediation. She was also not asked about my performance.

I'm done. I want out. I fantasize about the moment I can hand in my notice.

But I need some guidance

If you have skipped ahead, smart move! The long and short of this post is that I'm ready to get out of a bad work situation.

But I haven't gone for anything position in over 4 years. I find the interview process daunting: can I really sell myself and my bizarre experience to a company that I really want to work for?

Am I technically strong enough? I have built scripts, services, frontends to make my product work. But I've developed all of this in a vacuum. Is it all garbage? Is it passable?

I've been used to having to explain what I'm doing only in the most basic terms. Will I sound like an idiot when someone asks me about the web-scraper I built on Selenium, or the API I just deployed with Flask?

I'm starting small

I have a few things I have committed to make time for:

  1. HackerRank: This one is a little self-indulgent, but going through HackerRank and proving to myself that I know how to solve problems is helpful. Plus I'm hoping that it will all pay off when interview coding challenges come around. If there are other resources/practices that help with interview prep, I would love to hear them.

  2. Contributing to an open source project: I've always put this off because I never felt good enough to contribute anything useful. But I'm going to get over it and jump into it. I'm planning on checking out Dev.to's code, but if you have any suggestions let me know!

  3. Side Projects: This one is completely on me. I let my day job demoralize me to the point where side projects were the source of more anxiety instead of fun, creative expressions. I've been wanting to build a substantial app using Vue for over a year now, and I'm going to do it.

Top comments (4)

Collapse
 
zspencer profile image
Zee

Hey Nathan,

First off, getting a job is partly about your skills but more importantly it is about who you know and how you present those skills.

Second off, your boss plans to fire you. If he has put you on a performance improvement plan without validation from other team members as well as changing where you are allowed to work, he wants you gone. He may be trying to pressure you into quitting so he doesn't have to pay unemployment for termination without cause.

You have a few options:

  • Try your best to somehow change the mind of someone who very likely is dealing with some other weird political bullshit so that you don't get fired. Put in that extra effort like a good-little-employee! (this is probably what your boss wants you to do and is why he's doing the power-move of putting you on a PIP and changing where you're allowed to work, after all, fear about future earnings is a powerful motivator!)
  • Recognize it's over, put in the time and attention you get paid for (~40 hours/wk, no more) and use whatever other time you have remaining to find another job.
  • Put in your two weeks and use your free time to go through the hiring gauntlet at a variety of companies.

In the meantime, make sure you're keeping records of every interaction between you and your boss, as well as details about what you do each day and why you did it. This way if they decide to terminate you "with cause" to avoid paying you unemployment, you can fight that and get your unemployment checks while looking for your next job. Unemployment exists for this reason after all!

That said, I would recommend adjusting your job-search process. People aren't going to hire you in the next few months because your github is cool. Or because you contributed to an OSS project. Or because your website is slick. They are going to hire you because you ran through their hiring gauntlet.

Hiring gauntlets want to answer 4 questions:

1) "Do I think this person is a good worker who will get along with the team and org?"
2) "Does this person have experience doing the kind of work we need done?"
3) "Can they demonstrate their ability to do the kind of work we value?"
4) "Can we come to terms from a financial and responsibility perspective?"

While having a public github and oss may help you with item #1, it is unlikely to help with items 2~4. Dumpin a pile of time into HackerRank may help you present your fundamental skills more effectively, but if it's not directly tied to what the company you're interviewing for cares about, you're basically playing roulette with the chance that the algorithm or challenge(s) you worked through will be applicable.

Instead, I'd recommend breaking your job hunt into a few aspects:

  • Personal - Who do you want to be and what do you want to do? Are you looking to get into another ground floor venture? Or do you want to join a team that exists?
  • Technical - What skills do you already bring to the table? Put together a list of all your major project accomplishments over the last 4 years. Yes, you've been on the same project for a while, but there have been different phases and different pushes. This will reinforce your self-narrative that shows you observing a challenge and rising to it over those 4 years.
  • Social - Who do you know that is well-connected to people trying to hire typists... I mean programmers ;)... Recruiters, past-colleagues, that internet person who you seem to hit it off with, etc. are your best friend when actively looking for work.

Once you've taken inventory, it's time to start hunting!

  • Look at your network and reach out to most, if not all, of the recruiters you know. Send them a copy of your document that outlines your project work and technical abilities. It's not a "resume" per-se, but it will help them figure out if there are open positions that match your skills.
  • Leverage the "we get you a job!" tools, like Hired or TripleByte. From what I can tell, these provide the most bang-for-the-time-and-attention on a code-challenge perspective; as a single challenge gets you in the door at a number of companies. It's also 100% OK to do both (or more, not sure what the competitors are, tbh), as most employers use one or the other; and that will expose you to a wider variety of employers.
  • Spread the word! Your boss is (probably) planning to fire you anyway, so I don't know how secret you need to be. Make sure the narrative that you're using is positive "I'm looking for a chance to grow my skills in a different technology stack or problem domain" and never ever bad mouth a current or former employer. It triggers the "This person is a problem" instincts in HR and Management types ;).
  • Reach out as a person to someone at the company or companies you're interested in. Schedule coffee, either digital or in the flesh. A simple "I'm curious about what it's like working at your company and am thinking about applying. Would you be interested in chatting with me so I can decide if I want to or not?" goes really far and may even get you a person on the inside who becomes invested in your success at the organization
  • Continue spreading the word! Check back in with recruiters on a bi-weekly basis. Look for new recruiters you haven't talked to.

From there, it's a matter of time. Most full-time job searches take anywhere from 1 to 6 months, depending on how picky the candidate is, how broadly they search and how well they present themselves to hiring companies. Taking calls with recruiters, practicing code challenges and technical interviews (I hear interviewing.io is good for that, but I haven't used them), and reminding yourself that you, yes you, are worth hiring and that you, yes you, are a valuable asset on any software team.

Good luck out there!

Collapse
 
jfrankcarr profile image
Frank Carr

I hate to tell you this but your experience is very typical. I've been on that same ride, more than once, over the past 30 years. Things are going great, then there's a shift in management or the like and everything turns bad quickly.

First, bear in mind that "remediation plans", "performance improvement plans" and so forth are just a way to provide clean HR documentation for when they fire you in a short amount of time and to continue to hurt you after you leave. Most of the time they are personal, not business. A manager decides you aren't kowtowing to them enough, you say or do something wrong in their mind, you have an opposing political/religious/social stance or something else along those lines. To get even, they try to destroy your career. The "plan" provides a handy CYA to avoid potential legal problems.

So yes, you need to be looking for a new job very actively. Even if you have to take a dreaded short term contract it may be worth it just to get out of what appears to be a very toxic situation.

Skill-wise, look around on GitHub for other peoples' projects that use the technology you know. How well can you follow what they did? Does it make sense to you? What would you have done different? Is your code better, worse, different or the same? If it is small enough of a task, take the basic concept and code it yourself.

On the job interview front, it can be an ugly grind. Go with your gut feel about a company, especially when considering a perm position. If you don't feel good about the company and the people who interview you, don't move forward. Otherwise, you may be in the same position again within a matter of time.

In the interview, just be yourself. That can be difficult, particularly if it's a "code on whiteboard" or "language trivial pursuit" interview. One idea I use is to pick 3 selling points that I try to repeat whenever I get a chance. It's something I learned from a friend who's a pretty decent trial lawyer. For example, how many ways can you talk about your experience with Selenium or Flask?

Collapse
 
anaulin profile image
Ana Ulin 😻

I want to echo what others have said: if your manager is putting you on a PIP, they most likely are just creating a paper trail to fire you. Your main decision at this point seems to be either resigning of your own accord early or riding the PIP out to the end. If you can afford it financially, I would suggest getting out of there as soon as you can, as staying is most likely just going to further eat into your morale and motivation.

Probably the best you can do for yourself is to try to take some time off and do whatever you do to recharge and get yourself grounded, before jumping straight into another job search. The more rested and energized you can be for your interviews, the better things will go.

If you are finding side projects, HackerRank and Open Source satisfying, then by all means, continue down that path. But, speaking as someone who has reviewed many hundreds (thousands?) or resumes in my career, and who has hired a good number of software engineers, none of those things are going to get you hired. They are also unlikely to get you that first call to schedule an interview. To get the proverbial "foot in the door" the most important thing is to work on your resume, and try to apply for job opportunities via warm intros as much as you can.

In terms of preparing for interviews, my favorite resources are Interview Cake and interviewing.io/. Interviewing.io I highly recommend as a safe place to do practice interviews anonymously and get feedback from the interviewers. As a side bonus, if you do particularly well in a practice interview, the interviewer can request to get your contact data to take you further into their company's recruiting process.

The most important thing here is going to be managing your own psychology. Try to take a step back and realize that you are a competent engineer that has good things to offer for the right company. And don't let a bad interview let you down -- there is plenty of data that shows that performance in technical interviews is not consistent for even the best candidates (see, e.g. this interesting analysis blog.interviewing.io/technical-int...).

As an additional thought, it is November already, and hiring really slows down for the holidays. So don't be discouraged if you start applying to things right now but don't get immediate responses.

Best of luck.

Collapse
 
cathodion profile image
Dustin King • Edited

As far as the path from this job to the next one goes, that's always tough. It sounds like the PIP is some bs that might just be the result of your non-technical manager not understanding how you work, or it might just be a completely made up excuse for a layoff. Hard to tell, but looking for another job is probably the right move. The good news is you can do better than this company.

From the sound of it, you are technically skilled enough to build stuff with little supervision (which should qualify you for mid-level developer roles), as well as able to talk to non-technical people about your software, which is a big plus. So it should just come down to being confident about your skills and selling potential employers on that value.

One thing to watch out for when getting your second developer job is to not let them slot you into a another junior level position, which they sometimes will try to do if you give them too low salary expectations, or they might try on their own. Basically it would mean they get to pay you less, but it wouldn't be fair to you at this point. If there's a numerical level attached to an opening or an offer, ask them what that level means and argue for a higher level if you feel it's too low.

Good luck!