Martin Harriman wanted to make his way back to the software industry after a decades-long break building hardware, so he did what most people do when they’re trying to change industries.
He carefully tailored his resume and cover letter to downplay his hardware experience and—in turn—emphasize his skills, knowledge and expertise in software. A quick CTRL-F command could tell you that he mentions the keyword “software” 17 times in his resume and “hardware” only six.
Technically, his resume should successfully pass through most companies’ applicant tracking systems and into the hands of software engineering managers. One problem though: The last time he was in the software game, the languages, tools and concepts that were considered “modern” included: LISP, Smalltalk, PHP, LALR, and AJAX. In fact, if you navigate to his LinkedIn profile, his most upvoted skill is Perl.
“It’s funny because I don’t even like Perl.” — Harriman.
Of all the programming languages and tools that Harriman knows, LinkedIn’s handy skill endorsement section is far from an accurate representation of his actual skills. Harriman can pick up today’s neatly packaged tools of Ruby on Rails or even newer languages like Objective-C in his sleep.
“I mean, after you learn a dozen or so languages, they’re all kind of very similar,” Harriman says.
After all, if he had the mental model, tenacity and problem-solving skills to be able to port the gcc backend to odd architectures, like the DEC PDP-10, today’s modern software development is not exactly rocket science.
But even if he makes it through the ATS system, regardless of how good he is at software engineering, the reality is there are blockades of biases all over this resume. When hiring managers have to go through stacks of resumes daily, it’s hard to move him onto the next step with a resume filled with:
- Older technologies. The reality is that the evolving state of software development makes it really hard for people to trust folks with older technologies on their resume — even if they’ve had decades of past experience in software. Will he be able to catch onto newer stacks? Can’t leave this to chance.
- ‘Hardware’ is a red flag.’ It’s fairly clear cut. Engineering managers think hardware is generally removed from software development. Harriman describes the general sentiment as:
“He’s a hardware guy, why are we wasting our time?”
- Potential age discrimination. It’s hard to talk about, but age discrimination in Silicon Valley and tech in general is rampant. After all, the Harvard Business Review reports that the average age of Silicon Valley founders is just over 31. Given that Harriman has experience dating back to the 70s, this could potentially trigger an unconscious bias.
Despite his best efforts of resume tweaking, the traditional, resume-driven screening and hiring process by and large works against him. He got a few call backs, but not nearly as many as highly sought after engineers today. Such traditional processes lock massive pools of talent, like Harriman, out of the running.
So, what happens when you stop depending on resumes to screen candidates? Resumes are ingrained so deeply into our hiring culture that it’s hard to imagine the tangible benefits that might come from replacing resumes with something more practical, like a coding challenge.
Pure Storage is one such company that has always aimed at being as objective in everything they do, including their hiring techniques. So, instead of relying heavily on the subjectivity of resumes, the team has always asked candidates to solve a coding challenge—or what they call a “quiz.” It’s a completely blind way to gauge the skills of anyone, no matter what background or universities they have on their resume.
Harriman applied to Pure Storage, aced its coding quiz, and he’s been an integral component of team for almost four years. It turns out, contrary to what most engineering managers think when they see a hardware resume, hardware experience helps you become a better software engineer. We sat down with Harriman to learn more about his experience and how he ended up earning a coveted job as as a software engineer at Pure Storage with odds stacked against him:
Martin, could you tell us a little about when you first started coding?
I started out in software when I was in grade school because my father was in programming. My first computer-related jobs were in software. I worked in computer software roughly from the mid-70’s to mid-90’s.
Wow, you’ve really seen the boom in software from the beginning. Why did you make the switch from software engineering to hardware in the ‘90s?
I switched to hardware because I was working with a lot of hardware engineers and it was fun stuff. I literally got a 5-min course on doing chip design and switched right into it. When it comes to doing chip design, it’s basically like writing software in a really bad programming languages.
Wait, you said literally a 5-min crash course on chip design? What do you mean by that?
There was more of a demand for hardware designers at the company I was working at (Silicon Engineering in Scotts Valley). All they had to teach me were the particular constraints in the programming language that you need to follow to compile into a chip. It’s pretty rudimentary stuff. The company that makes the compiler actually publishes a fairly thin volume on writing Verilog for synthesis. I got a 5-minute condensed version. I knew how hardware worked. I knew what design was and given that background, and knowing what a For Loop is, the rest was really trivial.
That’s awesome. So do you think your hardware experience helped you become a better software engineer, looking back?
From an engineer’s point of view, the actual work is kind of similar. What you end up with at the end of the day is a physical object that embodies what you do. That’s satisfying…it’s fun. You just made something that you can’t change. It has to survive for a couple of years for it to be worth it.
No pressure? 🙂
Well, there’s pressure in all of these jobs, even here at Pure Storage. It would be very significant if we created software that corrupted a company’s data. It’s a different mindset on the nature of the testing you need to avoid the disaster…the exact consequences of the disaster. It helps you prevent shipping sloppy work. Because in hardware design, the world is much more test-driven than the software world. The consequences of missed bugs is much higher. It helps in taking the testing side of things seriously.
So, how was your job search overall when you decided to go back to software?
I applied to Pure Storage because I think it’s a great company overall, and had heard really great things. They sent me a coding challenge, first and foremost, and they didn’t really look too closely at my resume.
I heard that you got a perfect score on that test. Did you prepare?
I did not prepare for it at all. I thought, great, I’ve been doing this for many years and I should be able to do this, let’s see what happens. I got a perfect score and I got the fastest time they ever had it.
Wow, why do you think you scored well? What was the quiz?
It’s a lot to do with having a lot of experience in both software and hardware. They did a good job of testing things that are more than just rote knowledge. Things that are fundamental of how computers work and how you think about programming languages.
There’s one question that we got the most heat on, but it was the most predictive of how people would do in the rest of our interview process. It had to do with the binary representation of a fractional number. It’s one of those things where it’s not something you think about everyday in your job. But if you know how binary computers work, you can answer the question instantly. That correlated very well for people’s ability to come into the interview process and produce code for us and talk about their process.
Do you think these are good questions for screening candidates?
We got a lot of heat from unsuccessful candidates, of course, in the grounds that this is silly because they don’t need to know this to do their job. And they have a point. I guarantee that nobody at Pure needs to know what an IEEE floating-point number looks like, for instance. It’s not something I think of day to day in my work. But it’s one of those things that it’s part of knowing how a computer works. Having that kind of mental model is important on producing code.
Would you have gotten this job if Pure Storage used the same resume process as everyone?
The embarrassing part of that for me is that, I carefully crafted my resume for Pure to emphasize the software experience that we had. They would read that resume and said ‘Oh he’s a hardware engineer, I don’t know why we’re bothering.’ That shows my resume writing skills, glad you’re not hiring me for that.
In fact, many of the most talented engineers at Pure are from interesting backgrounds that go against the grain of what most hiring managers look for in a resume. People come from a diverse set of backgrounds, whether it be their technical background or the university from which they graduated.
Pure Storage now scales the early quiz model by using automated coding challenges. It’s the same idea of asking candidates to solve problems in lieu of sending their resume, except now they can do so for thousands of candidates at once.
So, what kind of cool stuff are you doing now for Pure?
The most recent achievement was a team effort. I’m part of a team that works on space accounting, calculating the amount of space in use. It’s a surprising difficult problem at scale because the internal metadata is optimized for things like read and write performance and as a result almost pessimistic for the task of figuring out what space is in use and by what entity. So, we’ve had a couple of iterations of this over the last three years, and we’re very happy with the most recent one because it’s basically eliminated a significant portion of customer problem calls. It used to be a regular feature for our support organization.
Interesting. And do you think Pure had any problems or skepticism hiring you since you came from hardware?
I’m sure they did, they didn’t explicitly say that to me. Not everyone makes the transition. The good news is that once you have the job, and once you make the transition, you can show them what you can do. That’s the fun part.
That’s awesome. If there’s someone out there who doesn’t have software experience, like yourself, but wants to make the switch, what advice would you give?
Go find a job, which will be hard because people won’t want to listen to you. Try to find a job that’s actually a software engineering job, not just close to the software engineers. If you don’t get the software work you want, then keep looking. As long as you’re sharpening your skills overall, there’s no reason why you can’t prove your coding skills, especially when more and more employers are seeing the value of innovating their hiring process to find software engineers from different backgrounds, even hardware.
Enjoy this post? Please subscribe to the HackerRank Blog.