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:
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.
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!
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)
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:
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:
Once you've taken inventory, it's time to start hunting!
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!
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?
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.
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!