How to Start a Career in FPGA Engineering
We recently interviewed Russell Merrick, author of Nandland.com and the new book Getting Started with FPGAs. As part of the interview process, we got an advanced copy of Russell's book, and we liked this section so much that we asked for permission to publish it. We're super pleased to give you an advanced preview of Russell's new book - this chapter is entitled Starting a Career in FPGA Engineering. It includes a ton of deeply relevant advice for folks looking to start a career in logic design, or perhaps transition into the field.
Starting a Career in FPGA Engineering
If you're considering making a career out of FPGA design, that's great! Working with FPGAs is a truly rewarding job: you get to wake up each day and solve interesting and relevant problems. Just as designing FPGAs takes practice, applying for jobs is a skill that you can refine. This article discusses strategies for getting a great job as an FPGA engineer.
I’ve been on both sides of the job search process, as both an interviewee and an interviewer, so I’ve identified some techniques that work to secure a fulfilling job, and I also understand what employers are looking for. In this appendix, I’ll share some tips first on how to improve your resume so you can land an interview, then on how to perform well during the interview to boost your chances of getting the job. Finally, we’ll discuss how to negotiate for your best possible offer.
The purpose of a resume is to get you in the door for an interview. That’s really it. Once you’re in the door, your resume’s work is complete. In my career, I’ve reviewed hundreds of resumes while trying to fill job positions, and only a small fraction of them have led to an interview. Let’s explore some techniques you can use to get your resume to stand out.
Keep It Short
A good engineer knows how to quickly show what’s important and what isn’t. Demonstrate that by getting straight to the point in your resume. If you have less than five years’ experience, there’s no reason why your resume should be longer than a single page. Many job seekers think that a longer resume will make them seem more experienced, but padding your resume with fluff will only do you a disservice. Recruiters know filler when they see it. For example, a sentence like “Coordinated with teams from around the world to share responsibilities and tasks” means absolutely nothing. Cut out the fat, and get to the meat.
Instead of including empty platitudes, use your resume to highlight tangible skills, successes, and achievements. If you have no previous work experience, that’s fine, but you’ll need to demonstrate your qualifications in other ways. For example, describe specific skills you picked up and tech-
nologies you learned about in undergraduate classes. If you worked on a large project with a group, that should likely get its own section on your resume.
Include Academic Information
Many companies require a four-year undergraduate degree in engineering as a minimum qualification for a job, so your resume should include information about your education. However, one of the things that I like most about engineering is that it’s very much a meritocracy. What counts most isn’t which school you went to; it’s your knowledge and competency.
This means that you shouldn’t worry if you didn’t go to the most prestigious private school (and if you did, it may not give you the leg up that you expect). When I’m looking at resumes, I usually don’t even look at what school the applicant attended. I’m much more interested in seeing evidence of what they’ve learned and what they’ve accomplished with that knowledge.
People often wonder if they should include their GPA on their resume. Personally, I would recommend including it if it’s above a 3.0, and leaving it off if it’s below that. Some companies have GPA requirements (they won’t even look at your resume if your GPA isn’t listed, or if it’s below some threshold), but this appears to have become less common in recent years. Hiring managers understand that being a successful engineer doesn’t always correlate with having the best grades in your philosophy class.
If you don’t have an undergraduate degree in engineering, your job hunt will be more challenging. Not all companies have a degree requirement, though. Smaller companies, in particular, are often less strict about their minimum requirements. You may be able to compensate for the lack of relevant educational experience by highlighting your practical experience. Be sure to describe projects you’ve worked on that illustrate your mastery of the field.
Tailor Your Resume to the Job Description
A job description details all the roles and responsibilities that the company expects the new hire to take on. The company is describing their ideal candidate, so you should try to reflect those ideals as much as possible through your resume. This means you should be prepared to tweak your resume for each job you apply for. Highlight areas that match the needs of the company, and consider removing areas that are less of a match. Include relevant buzzwords and specific technologies that you have experience with. Acronyms, in particular, stand out and are eye-catching.
Think about your resume from the hiring manager’s perspective. The job description is a list of elements that they’re looking for. Don’t make it hard for them to find those elements. The more keywords from the job description that show up prominently in your resume, the better. However, keep in mind that you should be able to back up anything you put down on your resume with detailed knowledge during an interview. There’s no better way to bomb an interview than demonstrating that you’ve made false claims of proficiency.
To illustrate how to tailor your resume, let’s assume most of your experience has been in Verilog, but you also understand VHDL. An FPGA job description will typically state which language the company uses. If you come across a job that requires VHDL, you should adjust your resume to highlight your VHDL projects. It might even be worth converting some of your Verilog code to VHDL to hone your skills. As another example, the company might want someone with image processing experience. In this case, you should add a bullet to your resume identifying any work you’ve done in this area. Conversely, if the job posting is from a company building a wireless product, highlight anything you’ve done with wireless communication instead. Make sure you’re specific when highlighting your skills: “FPGA experience with BLE over UART” is much better than “Worked with wireless communications.”
Critiquing an Example Resume
Let’s look at an example resume for a recent college graduate named Russell Merrick to see what can be improved. The figure below shows my actual resume when I was applying for my first job after college.
It wasn’t horrible, but in hindsight there’s certainly a lot of room for improvement. The biggest problem is that there isn’t enough technical content or eye-catching buzzwords. I learned a lot about engineering in college, but based on this resume, you wouldn’t know it. I didn’t include any details of specific projects that I worked on during my undergrad education that would demonstrate my experience; all I did was list the titles of the courses I took. Additionally, I went into significant detail about non-engineering work that wasn’t relevant to the job I was applying for. Let’s fix it up.
First, we can remove “Background in Engineering Management” from the Education section. At the time, I thought that having completed some management classes would be an asset, but I quickly realized that as an entry-level employee, you’re at the bottom of the totem pole. There’s nobody to manage, so your leadership skills aren’t relevant. Someday in the future you may advance to the point that you have people working under you, but that certainly wasn’t going to be the case in the job I was going for at the time. By the same token, I would remove “Management, Marketing, Accounting, Finance” from the Coursework section. It’s just not very relevant for an entry-level FPGA engineer.
In the Related Work Experience section, I describe a brief internship I had working in information technology (IT). This was a valuable experience for me because it taught me one important lesson: I didn’t want to work in IT! Here, it would be helpful to use more buzzwords and concrete detail. I worked with Linux computers and Cisco routers, for example, but I didn’t write that anywhere on my resume.
The other work experience item, about my time as an RA, could be pared down. It’s too long and not especially relevant to FPGA work. The Abilities section can likewise be trimmed. It’s taken for granted that job applicants can use Microsoft Word at this point, so don’t bother including it. With these cuts, there will be more room to highlight some technical projects I worked on as part of my degree.
Now let’s look at an improved version of the resume. The version below implements these suggested changes.
This revised version is a big improvement. I’ve added a section detailing a few projects I worked on to illustrate through concrete examples what I learned in college. In describing these projects, I’ve named many specific technologies that I worked with, like UART, PID, LDO, IR, and so on. Acronyms like these help to grab the attention of the hiring manager. I’ve also cut parts that were too general, while getting more specific in other sections, such as the description of my IT internship. With this new and improved resume, past Russell could have gotten so many more interviews!
Your resume is all about getting your foot in the door, but the interview is where you really need to shine in order to beat the competition and secure the job. An interview is really just an oral test, and as with all tests, it helps to be prepared. You should practice implementing the tips in this section until you’re comfortable with them. As awkward as it might feel, find a friend or relative to try out these skills with. It really makes a difference practicing out loud, with another person, as opposed to in your head.
Show Your Enthusiasm
Beyond proving your technical qualifications, an interview is an opportunity to demonstrate your enthusiasm for the job at hand. To do this, it’s useful to research the company beforehand. Make sure you understand the company’s products, as well as the overall industry they’re part of. This way
you can impress the interviewers with your level of engagement and your knowledge of the problems the company faces. You might even have some ideas for solutions to a few of these problems! It also never hurts to contact people at the company directly in advance of an interview. You might think this would be annoying to the people hiring at the company, but it can be hard for them to tell which resumes are submitted by people who are responding to every single job posting they come across, and which people are really excited about the specific open position. I’ve had job applicants reach out to me on LinkedIn or via email directly, and I’m always impressed when a candidate takes this extra step. It shows they’re really interested in the job and driven to achieve their goals. The most driven candidate I’ve ever come across literally started a podcast about the space industry to get a job working for my company. He wrote, edited, and published a dozen episodes, just so he could get his foot in the door. I’m not suggesting you need to create a podcast to get a job at your dream company, but just know that nobody has ever been turned away for excess enthusiasm.
As you prepare for an interview, it helps to anticipate the sorts of questions that will be asked. The first thing I recommend doing is reviewing the job description. The topics mentioned there are the ones that are most likely to come up in the interview, as they’re the ones the hiring manager is most interested in for that particular position. You probably won’t have experience in every single area mentioned in the job description, and that’s totally fine. However, I recommend doing some research and learning a bit about any topic you’re unfamiliar with, so you at least have some background if that topic comes up in conversation. Make sure you can also speak fluently about anything that you highlight on your resume as a skill.
The job description is always a good place to start, but if you’re looking for more ways to prepare, here’s a list of some common questions that come up in interviews for FPGA-related positions:
- Describe the difference between a flip-flop and a latch.
- Why might you choose an FPGA over a microcontroller?
- What does a for loop do in synthesizable code?
- What is the purpose of a PLL?
- Describe the difference between inference and instantiation.
- What is metastability, and how would you prevent it?
- What is a FIFO?
- What is a block RAM?
- Describe how a UART works, and where might one be used.
- What is the difference between synchronous and asynchronous logic?
- What is a shift register?
- Describe some differences between Verilog and VHDL.
- What should you be concerned about when crossing clock domains?
- Describe setup and hold time. What happens if they are violated?
- What is the purpose of a synthesis tool?
- What happens during the place and route process?
- What are SerDes transceivers and where are they used?
- What is the purpose of a DSP block?
If I were interviewing someone for an intro-level FPGA job, I would absolutely ask these types of questions. The good news is that each of them has been answered in this book. So study up and crush that job interview!
When you don’t know the answer to a question, I suggest you pivot by giving the interviewer some information that you do know that’s relevant in some way. For example, let’s say that you only have experience using SVN for version control, and you’ve never used Git. If the interviewer asks, “How would you create a branch in Git?” don’t just say, “I don’t know, I’ve never used Git before.” That answer won’t be sufficient. Instead, you could say something like, “Well, I haven’t used Git for version control yet, but in SVN I use branches to track independent lines of development—for example, when I fix a bug or add a feature. In SVN, this can be done with the command SVN COPY.”
This is a fantastic answer. Despite not having the information the interviewer was looking for, you’ve demonstrated that you understand the purpose of branching and have experience with it. Interviewers get that you won’t know all the answers, and that new tools and skills can be learned on the job. Always take the opportunity to explain what you know about a question posed to you, even if you don’t know the complete answer.
The Job Offer and Negotiation
At this point, you’ve beaten the competition and the hiring manager has decided to make you a job offer. Congratulations, you’re a professional engineer now! It’s time to celebrate. Then, once you’ve calmed down, I always recommend that you ask for a better offer. You’re probably thinking, “But Russell, that’s ungrateful. I should be happy that I got any offer at all. What if they pull my offer because I asked them to do better?” Here’s a life lesson that you can take from this book: it never hurts to ask. Checking into a hotel? Ask if they have any room upgrades available. Buying something expensive from a store? Ask if they have any coupons or discounts that could be applied. Got your first job offer? Ask if they can increase the salary, stock options, or sign-on bonus. The company will never take back a job offer if you’re polite and professional, but every single time I’ve asked a company for a better offer, they’ve given it. HR will never give you their best offer first. They expect that a little negotiation will be a part of the process. They want to get you to work for as little money as possible (without insulting you, of course). They always leave money on the table, but it’s up to you to get that money. So be polite, but don’t be afraid to ask if there’s any way that they can increase the offer.
Russell Merrick is an embedded systems engineer, the founder of Nandland.com, and the author of "Getting Started with FPGAs", which will be published by Penguin Random House on November 21, 2023!