Software Developer Career Tips: Closing Thoughts

Date: 2020-02-12

Time to Read: 6 Minutes

Tags:

Comments

Photo By: Émile Perron

Don’t. Stress. It.

These words are might seem rich coming from someone who can’t personally relate to your situation. If you’re either (1) desperately trying to leave a toxic work situation or (2) unemployed or (3) facing an interview for your dream job then I would recommend adjusting your preparation habits accordingly. Otherwise, don’t stress it. Technical job interviews are strange fickle beasts and exhausting yourself by cramming programming problems and system design problems can negatively affect your performance. You could also spend a great deal of time preparing and find yourself just simply out of sync with your interviewer or perhaps your interviewer may ask you an esoteric question that you could have never prepared for. 

You should approach the process from beginning to end as a learning and growing experience. This might sound like a cliche but there is a good deal of truth behind this cliche. With each interview, you’ll find that your experience will allow you to anticipate certain questions, develop better communication skills, and lose some of the anxiety and nervousness that you experience in the beginning. Frame the process in a different context then simply “I have to have this job or I’ll die.”, in most cases, that simply isn’t true. Note your shortcomings in the process, your areas to improve upon, and questions that you simply didn’t know the answer to. There may even be times that you simply knocked every question out of the park and still somehow end up without an offer; which further proves that you should lessen the pressure on yourself throughout the process.

If your interview process didn’t end as expected, to help combat the discouragement that you’ll likely feel are the testimonials of other fairly successful individuals who faced similar rejections throughout their careers before ultimately finding success. These stories can be found at: Rejected.us .

Grow and become better with each experience.

With that said, I would only set aside a few hours or less each week to practice some of the more technical-oriented aspects of the interview process regardless of if you have any potential upcoming interviews. Your day-to-day operations may leave you unfamiliar or a bit rusty on some of the approaches that might be demanded from you in the context of your typical programming or system design challenges (honestly, how often are you going to be required to implement a bidirectional BFS algorithm from scratch at your job?). The resources explained in the previous posts should provide an extensive repository of practice for you in this regard. 

If you have a potential interview upcoming, I would set aside a strict limit on how much time you should spend preparing. Honestly, I don’t think you should spend more than four hours total in preparation leading up to the interview in addition to the aforementioned workload. You can spread it over a couple of weeks or spend it all strictly on the week prior to the interview. How should you effectively spend this time?  I would recommend simply reviewing your own responses to the typical STAR (Situation, Task, Action, Results) style behavioral questions, reviewing any interview experiences and questions by previous interviewees on Glassdoor, and perhaps surveying a selection of common programming problems and system design questions to refresh your memory on how to approach each problem. I feel like anything over four hours can begin to bleed over into time that could be better spent elsewhere and, given the nature of technical interviews, could ultimately prove ineffective. I would even go as far as to say that you should limit your preparation to not preparing the night before or morning of an interview. You should try to use this time to help you relax.

If you’re situation calls for more urgency and desperateness then adjust your workload accordingly. Regardless, try to grow from each experience. A poor interview performance or rejection can be incredibly demotivating regardless of your emotional approach to the situation but you should try to learn how you could improve upon your performance.

I’ve finished the interview, so now what?

If you’re lucky, you’ll hear back shortly or better yet, you’ll hear back when your primary recruiter or the company actually says that they’ll contact you. It’s not uncommon, however, to have an extended amount of time between the end of your interviews and actually hearing the ultimate result of those interviews. Frankly, no matter what your recruiter or the company specifies as a response time, I would give them a week. It’s also not unusual, sadly, for companies to ultimately just forget to reach out afterwards altogether and simply “ghost” you. If a week has passed and you haven’t heard a response from the company, simply treat it as a “rejection” and move on. This can be incredibly frustrating if you’re balancing multiple offers and you don’t want to commit until you’ve learned the outcome of all of your interview processes. 

If they do reach out and extend an offer then it’s time to return to some of that preliminary research that I mentioned in an earlier post. Know your salary expectations. It can company-specific or it can simply be a range that you deem worthy of relocating and switching positions and companies. Get an idea of the entire compensation package, vestment periods, and anything that they might try to use to pad the total compensation number that you may never fully realize. And negotiate.

I know that I titled this series, “Software Developer Career Tips”, and the content within is more-so focused on finding and preparing for a job rather than any career tips concerned with the period after acquiring a job. Maybe I’ll continue this series with content that is more focused on activities in that category. However, I will briefly touch on a subject that I feel is necessary to write about in limited detail and is closely related to the overall theme of this series.

When to leave your job?

This is a question that many will encounter in their career at multiple points and there is a lot to consider so I thought I would create a non-exhaustive list of things to reflect upon when answering this question.

  • How long have you worked at this job? A lot of people describe receiving better compensation raises by hopping companies every 2-3 years. Of course this is much easier if you live in a tech hub area and can generally avoid the relocation hassle. Some others warn against this strategy as multiple short-term job hops can raise red flags for potential employers, conversely a fairly long tenure can raise similar flags.
  • During your tenure at your current company, how has your role progression played out in both title and compensation changes. Can you put a percentage on how much your salary has increased since your start? Have you advanced enough to warrant sticking longer for possible future advancement. Have you topped out at your current role and simply can not advance further?
  • After calculating your effective compensation change ( ( (current salary - starting salary ) / starting salary) * 100 ) , has this surpassed inflation in that same time period? If not, then you could be making less than when you started. Smartasset has a solid tool for this here.
  • What do you lose by leaving? This could include intangibles such as work life balance, short commute times or benefits such as vested stock options, pensions with a long vestment period, and more.
  • The difficulty of relocation if you own a home and/or have a family.
  • And many more that simply hasn’t come to mind yet.

In closing, I hope that this series has helped you understand the following:

  • The importance of internships, side-projects, and specialization even before you graduate college (if you’re going the college route).
  • How extra-curricular programming on open-source projects and your own personal projects can help accelerate growth and provide content for recruiters to notice.
  • The rough classification of certain technology-focused companies from the Big-N companies to various start-up unicorns and everything in-between.
  • How job location should be considered when exploring potential opportunities.
  • The different opportunities in a range of locations from the Big 3 tech hubs in the United States to the collection of smaller metro areas in the Southeast.
  • How you should build your pool of potential companies and opportunities you’d like to pursue and how you should then approach pursuing these companies.
  • Navigating the initial phone screen if a company is interested in you.
  • What you should consider in your preliminary research in a company that has interest in you.
  • How to prepare for the technical challenges and behavioral questions that you’ll surely face.
  • And lastly, how much you should prepare in general and in anticipation for an upcoming interview.

Thanks for reading!

Software Developer Career Tips

12 February, 2020
A collection of posts detailing much of the information that I've learned in recent years when considering a significant career move.
View All 15 Posts
Like what you read? Don't? Discuss it.

About

Blake Adams is a writer, software developer, technical consultant, and financial independence enthusiast living in Oxford, MS.

Latest Posts

Software Developer Career Tips: Closing Thoughts

12 February, 2020

Read More...

Fitness Series: Illnesses and Injuries, Make a Contingency Plan

03 February, 2020

Read More...

Software Developer Career Tips: The System Design Phase

27 January, 2020

Read More...

Software Developer Career Tips: The Technical Phase

21 January, 2020

Read More...

Software Developer Career Tips: Do Your Preliminary Research

13 January, 2020

Read More...

Latest Booknotes

The Power of Habit

19 December, 2019

Read My Highlights in 9 Minutes

Rich Dad Poor Dad

14 October, 2019

Read My Highlights in 10 Minutes

Atomic Habits

19 August, 2019

Read My Highlights in 16 Minutes