Getting Hired As A Senior Developer
Recently, I changed jobs.
Ever since I left Nationwide I've changed jobs relatively frequently. Moreso than I anticipated. I've been lucky that the marketplace more or less supports this activity. However, it can be exhausting. I love working somewhere and getting deep with the culture and goals of the company. HMB was a great fit for me, but CGI much less so.
Other engineers at CGI feel differently and I support that. It's impossible to be objective with a decision like this. Whether I acknowledge it or not, my feelings inevitably get deeply wrapped up in my work, both in the company itself and the individuals with whom I share the journey.
But life disruptions are sometimes accompanied by opportunity and so it is with this. I chose to leave HMB/CGI.
My last experience with recruiters occurred years ago when I left Nationwide. At that time I was two years into my journey as a developer and four years into my total IT experience. My skill and experience were mostly good but my ability to market myself was poor. After two years developers are generally considered mid-level (although this is very subjective based on experience). I had some interest from recruiters, but it was clear I was a stretch candidate for many of the positions in town. One recruiter in particular gave me great feedback and direction. I needed to either get more experience or market myself better.
I ended up bypassing the issue and getting a job at Sogeti by referral.
This time my experience was very different. I had been working on my LinkedIn profile and asked former coworkers and managers to add written recommendations. I also remade my resume. I experimented with many formats and publicly workshopped it. In the end, a friend of mine provided amazing resources and feedback and I was able to generate the resume in its current form.
When I began I was unsure of what to expect. I decided to cast a wide net. I put my resume and contact information up on every job board I could think of and a few I found along the way. I had a profile of the type of company I wanted to work for - but I had no idea how to find companies that were looking for me. This seemed like the best way to meet as many hiring managers and recruiters as possible in order to find that perfect company. So there I went, up on Monster, Indeed, Glassdoor, Dice, CyberCoders, Triplebyte, and of course, LinkedIn.
Here is my review of each by the way:
Monster: Spam bots and dumb requests - don't bother.
Indeed: Lots of spam, but also a few qualified leads and knowledgeable recruiters. This is the best place to bypass a staffing agency and interact directly with the recruiting of a big company.
Glassdoor: Very nice interface, but a total ghost town. No contacts here.
Dice: Some quality contacts from staffing agencies.
CyberCoders: Get lured by the appealing jobs boards, but don't bother applying. CyberCoders has their own recruiting staff who will reach out to you after a few weeks with jobs they think you're qualified for. I think this platform has potential but it's awkward right now.
Triplebyte: It has an interesting premise where you take a coding test and are ranked alongside other coders. That idea seems cool, but unfortunately it's poorly implemented in that it assumes a certain type of experience - say Scala and Java for backend. Also, they only offer jobs in San Francisco and New York. Overall it was a waste of time.
LinkedIn: The gold standard - the absolute best experience especially while we're stuck with COVID. The best leads are here. The best contacts I had were through InMail and LinkedIn Messager.
I should have just cut myself out of Monster immediately, but it took time for me to realize that most of my spam originated from there.
Overwhelmed With Communication
I made a huge mistake by signing onto so many job boards though. I completely misjudged the demand for developers. I thought demand would be suppressed as a result of the pandemic. This is not the case. An hour after posting to the first job board I was getting phone calls. Two days after I had put my details into all of the job boards and opened up my LinkedIn profile to signal I was looking for a job - I was inundated with phone calls, text messages, and emails. I received, on average, around 20-30 emails as well as 10-15 phone calls and text messages daily.
At first I tried to respond to each communication with either interest or a polite refusal. People are persistent though. I had a text exchange at one point that went like this:
Jay the IT Recruiter:
Urgently hiring for a senior .NET consultant with Azure and CI/CD tool exp. Columbus, OH. Can we discuss?
Not right now, might have time tomorrow though.
No problem. Let me send you the Job Role. We need to submit ASAP. The max Rate we can give is $80/hr on W2.
This exchange struck me as kind of odd. The urgency of it coupled with a hire dollar per hour rate made me feel suspicious, but I was juggling too many things to spend time figuring out why this smelled fishy. So I just passed.
Hey, I'm going to pass on this, thank you for reaching out!
The client liked your profile James, what's the issue?
The issue was that I did not trust the recruiter. I never replied.
In fact, with this many communications, I decided to I needed to trust my instincts. Communication was so overwhelming that I needed my subconscious to do a little work for once. If I got a bad vibe from a recruiter I just stopped immediately. Where at first I was accepting cold calls and responding to cold emails (Hey, I put myself on those job boards - I needed to make an effort to respond) I came to find that frequently there was little value in responding to those. Usually, with one notable exception, it was better to let the call go to voice mail and then listen to that. I would call back on promising voice mails and ignore the ones that seemed sketchy.
Wait, what was the notable exception? It was Jason at Stafford Technology! I ended up working with him and Jeremy Florea to get my current job. I'd highly recommend them!
After a few weird text messages, like above, I stopped responding to texts unless there was a prior positive communication.
I stopped responding to emails unless the initial email seemed like it came from a person who had read my resume or looked at my LinkedIn at least once. However, emails that had any sort of "Urgent", "ASAP", "Fill Immediately" type language were immediatley discarded. The desperation of the company or recruiter spoke many volumes to me, none of it positive. I think they put those descriptors on there as a sort of "name your price" type indicator, but I kept thinking - wow, what is going on with that engineering team that you would cede so much leverage right away? A surfiet of urgency is suspicious. Best to avoid it.
I also disliked the emails that were like "Hey, hope you're doing great. Need to fill this position: INSERT HR COPY PASTA. That HR Copy Pasta isn't good for much, but here are what they do well.
- It describes the tech stack in excruciating detail.
- Most of them have listed as "nice to have" a huge amount of technologies - some of which were part of the company's stack since its inception.
- It tells me the hiring manager has to go through an HR screen in order to interview candidates.
- It tells me that HR spent maybe 10 minutes (but probably 0 minutes) talking to the hiring manager and instead had some sort of tortured process to put in a FTE request.
- It tells me that I don't want to work there
The emails that appealed to me the most were very human. "Hey, I've got a position that might fit - do you want to talk about it? It involves a technology you like and there is potential for leadership and growth." I almost always responded to those. The ones I did not were mainly because I didn't see them until three weeks later and sometimes I still responded as soon as I saw it. I like working with people who see me as a human, and not a cog for the machine. It also implies they at least glanced at my profile to see what I like.
In fact, putting up the "Human Filter" was a great way to sift through communication as it arrived - but even then I felt like looking for a job was itself a full time job. I should mention that I was still employed while all of this was happening and I was juggling this while being careful to still maintain quality and standards for my client.
In the end I ended up working closely with a handful of recruiters who treated me with respect and had a genuine desire to get me placed at a company that fit with what I wanted to do.
In fact, I want to name the recruiting angencies that I really loved working with. My only regret with them is that I could only take one job.
Stafford Technology: They are a smaller firm and very personable. They are great listeners with a thoughtful and flexible approach.
Agility Partners: I really enjoyed working with them. We had several good conversations. They are very honest about what they see in the market place and potential fits.
Otterbase: I worked with one individual from this company and she was very personable and had put a lot of thought into her contacts with me.
Vaco: They had great insight into what employers find appealing and were discerning on whether a potential employer would meet my requirements. They were one of my initial contacts and their feedback was very good.
Purple Squirrel: They are very personable and forthright. I got the impression that they specialize in difficult to fill roles so it was interesting and illuminating to work with them toward an interview.
Working with Good Recruiters
There were several recruiters I ended up working with in the end. While each brought something unique, they all had a few things in common.
- Honesty. They were all upfront about the who was hiring in Columbus and their relationship with those companies.
- Insight. They could talk about the companies and describe good and bad aspects of their culture and compensation.
- Communication. They could articulate opportunities and did a good job listening.
- Flexible. They were sensitive to the fact I was not always available and would work with my schedule to create meetings. Last minute cancellations or changes due to my work were accepted gracefully.
In return, I tried to do a good job of being someone they could work with. I returned phone calls and emails. I responded to meeting requests. I never missed a meeting without communicating with as much notice as possible.
I tried to be as clear and upfront as possible about what I wanted in terms of salary, benefits, industry, hours and culture.
I tried to be flexible. Hiring quality people is difficult. Many companies have been burned before by bringing in someone who's not a good fit. It sucks, but it happens. As a result, many companies have hoops you have to jump through before you get to the interview process. I tried to be as generous and non-judgemental as possible for this sort of thing. I set reasonable boundaries and communicated those early.
Most of all I respected the fact that the recruiters were trying to help me. Yes, they had an incentive of some sort wrapped up in it as well - but that's totally fine. I wanted a job, they knew people who were offering jobs - it makes sense.
Getting To An Interview
I did a ton of interviewing in the space of about three weeks. I was motivated to move and ready to tackle new challenges. These conversations with hiring managers were extremely interesting and often fun. The initial interview is the chance to get insight into the business and understand the reasons they're hiring.
Hiring managers liked to ask about my experiences and the kinds of problems I like to solve. That's all good and I think there are plenty of guides about how to professionally answer those questions. I like to be honest and direct without any sort of negativity. Really though, the best part of these conversations is when I can start asking questions.
I love asking about the business, the culture and the challenges. I'd love it when a hiring manager would get into the details on something they were doing. The goal was to be engaging and open and have a fun conversation while still respecting their time. As soon as the conversation hit a couple of lulls or we'd creep to 5 minutes after the scheduled end time then I'd see if they wanted to wrap it up. Some did not! Enthusiasm for the business and its challenges interested me.
The technical interview presented a different set of challenges. There are lots of guides toward technical interviews, but you will almost always be talking to two or more engineers about design patterns, language implementation details, architectural patterns and etc. I did not have to solve many coding challenges for which I was grateful. I do have an active GitHub where someone can see a lot of the junk I've worked on in my spare time over the years though.
I didn't spend a lot of time preparing since every company is a little bit different with slightly different expectations for developers at every level. There is literally no point to trying to prep for every single interview individually. The best thing is to brush up on the fundamentals, revisit information on algorithms and data structures... and that's it. That is what fit me. Others will benefit from the confidence a lot of preparation can provide. I feel comfortable talking to groups of people. I enjoy improvisational speeches and while I wanted to do well I felt no particular anxiety. I think that probably helped a lot.
Most companies had at least two interviews - culture fit and technical aptitude.
I had a few interviews where I decided the culture fit was not for me. These usually resulted from strange or funny interactions. For example, once I asked a hiring manager to describe the values of his company. He said:
"Uh, no one as ever asked me that. I guess... 'work hard?'"
I thought that was pretty funny, not a deal breaker right away - but something to dig into. "What do you mean 'work hard'? It turned it meant work a lot of overtime. I passed.
Remember to ask about things like overtime and expectations. Its important to ask these questions, even if it makes you feel a little bit uncomfortable. You don't get many opportunities to find out about the team before you join.
I'd almost always pass on businesses with a low Glassdoor rating. The few exceptions were because, when I dug into the reviews I'd see a pattern of reviews, like a bunch of negative ones all grouped together in March of 2020. It was easy to guess why - those were COVID layoffs. Then I'd have to think, well if the business did this to survive and now they're hiring again then what does that mean? Businesses make mistakes and if they are capable of learning from those errors then it could be worthwhile to join the team. It definitely leads to more probing questions though.
Definitely the best experience I had in an interview process was with Leading EDJE. They asked probing questions and brought me to the limit of my knowledge in a number of areas. They were open and thoughtful with me and showed genuine compassion and interest. The best interviews are conversational and are not limited to simple tests of skill but are learning opportunities as well. Leading EDJE excels at this.
I got hired! I'm now a Solutions Architect at a mid sized company called Cass Information Systems. They have a very interesting business model with a lot of potential for growth. As of this writing I've been here for about two weeks and I think I'll be able to help meet some major goals for the company.
I think the manager who hired me is on the ball, cares a lot about his people and is focused on the right things.
I had a choice to stay in consulting and I was very close to going that direction. I love consulting. However, with this I sensed a deeper challenge and I have to test myself against it.
Hopefully, I can make a difference.