5 Steps to land a high paying data engineering job

1. Introduction

The data industry is booming! & data engineering salaries are skyrocketing. But landing a new job is not an easy task. If you are

Thinking about getting a data engineering job

A data analyst but are doing data engineering work

A data engineer labeled as a data analyst with data analyst pay

Stressed from being pulled in too many directions, because your company cannot afford both data analysts and data engineers

Then this post is for you. Interviewing in our industry is tough! But it doesn’t have to be. With strategic planning and consistent effort, you can land a high-paying DE job. We will go over five steps to help you land a data engineering job that allows you to work on interesting problems, propels your career forward, and pays well.

2. Steps

We will go over identifying the companies you’d like to work for, tips on landing an interview, tips on company-specific interview preparation, and how to negotiate a good salary.

2.1. Choosing companies to work for

The first step is to create a list of companies you’d be excited to work with. Use these websites to research the companies TeamBlind , Glassdoor , Levels.fyi , and Reddit .

When researching a company, look for trends, and don’t be influenced by a few negative/positive comments. Speaking with an ex-employee of the company candidly is one of the best ways to evaluate a company.

Use the criteria shown below to create your list of companies.

  1. Pay: This includes base pay, bonus, sign-on bonus, stock, average yearly pay rise, stock refreshers, medical insurance, and perks.
  2. Work-life balance: This includes the average length of a work day, project management style, on-call rotation, and expectations to respond after work hours.
  3. Tech stack: While the tech stack can change and is just a tool to achieve an objective, you should be excited to work with it. EG. If you want to code in scala and the company’s data tech stack is SQL with DBT, it might not be a good fit.
  4. Analytics engineer v Software engineer in Data: Understand the expectations of a data engineer at the company/team. Some companies expect the data engineers to primarily do data analysis, present findings, and create dashboards and other companies resemble software development type work.
  5. Work process: Some companies allow you to track and deliver projects with minimal JIRA formalities. There are companies where you might have to go to multiple meetings for planning/scoping, etc. Make sure that the company’s work process aligns with your preferences.
  6. Product: If you do not use the company’s product or the company’s actions go against your values (privacy, censorship, etc.), it might not be a good fit.
  7. Name recognition: Working at a tech company with good name recognition (FAANGMULAD) can give your resume more visibility and can positively impact future job searches.
  8. Start up v Big tech: Start-up might be more challenging & fun, but has a high chance of failure, stress, bad management, stock worth almost nothing, etc. At big tech you’ll focus will be more narrow, better pay, slower development pace, high pay, etc.
  9. Team: Most teams within big companies have their unique culture. Make sure to understand the team size, job titles of the teammates, etc.

2.2. Optimizing your Linkedin & resume

Most recruiters use Linkedin Recruiter to find potential candidates. Make sure to keep your Linkedin profile up to date.

  1. Work experience: Add all of your work experiences. Make sure to
    1. Use the correct job titles.
    2. Follow the STAR method to list your achievements in the work description section.
    3. Add the technologies used in the skills section and associate them with the job. E.g. Python, SQL, Airflow, DBT, Spark, Redshift, Snowflake, etc.
    4. If you are struggling to add work experience, check out how to develop work experience .
  2. Location: If the company is looking for hybrid/ in-person roles having the location helps.
  3. Profile picture: A professional profile picture helps.
  4. Resume: Follow the STAR method to list your achievements. Attach your resume to the Linkedin featured section.

2.3. Landing interviews

One of the most demoralizing parts of looking for a new job is, taking the time to apply for a position to either get a generic no or no response.

A better approach to getting interviews are via:

  1. Referrals: If you know someone at the company that you are looking to join, reach out to them and ask for a referral, most are happy to help. You can get referrals on TeamBlind , or reach out via Linkedin asking for a referral. If you are asking for a referral, do the following.
    1. Include a link to the job opening on the company’s website.
    2. Describe your experience in a few lines, like “n years as a data engineer with expertise in Python, SQL, Airflow, distributed systems”. Your experience should match the job requirements by at least 60%.
    3. Not ask them to look at your resume and find a job suitable for you.
  2. Optimizing Linkedin: With a few years of experience and an up-to-date Linkedin profile, you should get recruiters reaching out to you.
  3. Reaching out directly to the recruiter in the job posting: You can reach out to the recruiter for that job posting. Make sure to follow the same reach-out protocol as with referrals.

Note: The chances of your application leading to an interview are pretty high at a small-medium stage startup.

2.4. Preparing for interviews

While preparing for interviews conjures images of grinding Leetcode and system design problems for hours on end, it does not have to be this way. It’s best to research company-specific questions before starting prep.

Let’s go over the rounds in a typical interview process in order and how to prepare for them.

  1. Recruiter Call (pre-tech screen): If a company wants to interview you, the first call will be with a recruiter. They will want to talk about your experience and provide information about the tech screen round.
    1. Preparation: Talk about your experience, and follow the STAR method.
    2. Questions to ask:
      1. Length of the tech screen (typically 45m to 1h).
      2. Type of questions on the tech screen? (usually easy-medium DSA and easy SQL).
      3. Tech screen example questions, if any.
  2. Tech screen: This will be a 45m - 1h long call with an engineer. This will usually consist of a DSA section and a SQL section.
    1. Preparation: Read up on the latest frequently asked questions for the company from Leetcode premium, Glassdoor, and TeamBlind.
  3. Recruiter Call (pre-onsite): If you get through the tech screen, the recruiter will set up a call with you before the onsite to explain the process. Make sure to ask the following questions.
    1. Number & type of interviews.
    2. Documents to help prep for the interviews.
    3. Example questions.
    4. Online resources(if any) to research interview questions.
  4. On site: This will usually be an entire day. The sections below are the usual interviews during the onsite. Have >3 relevant questions prepared for each interviewer. This post by Julia Evans has a great list of possible questions to ask. Also, make sure to thoroughly go over any preparatory material provided by the recruiter.
  5. Data structure and algorithms: This is an important section, failing this usually leads to a no-hire decision.
    1. Preparation:
      1. Read up on the latest frequently asked questions for the company from Leetcode premium, Glassdoor, and TeamBlind
      2. neetcode.io => blind 75 and do the easy & medium question. Complete the topics in this order Array & Hashing, Two pointers, Sliding window, Stack, Intervals, Binary search, Graphs, Backtracking, and others.
  6. SQL: The SQL questions can be leetcode-based or will test your ability to convert business asks to SQL queries.
    1. Preparation:
      1. Read up on the latest frequently asked SQL questions for the company from Leetcode premium, Glassdoor, and TeamBlind
      2. Go to the leetcode and select SQL problems, sort by hard, and do the first 20 - 30 questions. Understanding these questions will help you solve most of the SQL-type interview questions.
  7. System design: Depending on the company these questions can be the standard system design questions asked for SWE or they can be more data-oriented.
    1. Preparation:
      1. Read up on the latest frequently asked system design questions for the company from Leetcode premium, Glassdoor, and TeamBlind
      2. For the standard design interview questions, the SystemDesingInterview youtube channel is great.
      3. For the data-oriented questions, understand what facts and dimensions are, slowly changing dimensions, backfilling, change data capture, partitioning, and encoding format (parquet, ORC). Understand the question and requirements before you start. Some common questions to understand before starting the design are
        1. Frequency of data ingestion
        2. Data size
        3. Business process generating the data
        4. End-user query/access patterns
        5. Acceptable data processing latency
      4. Make sure to read these: data modeling , data pipeline , and system design sections for more details. Note: If you are interested in learning to write efficient SQL for data processing, checkout my e-book: Efficient Data Processing in SQL
  8. Behaviour interview: These are questions to understand how you work in a team, how you measure your impact, and if you are a good fit for the position.
    1. Preparation:
      1. Prepare answers for every question in this TheMuse article with examples that highlight your work experience.
      2. Read the company blog (the ones related to the job you are interviewing for). This can be used as an example to answer the “why do you want to work here?” type questions.

2.5. Offers & Negotiation

Try to get multiple offers from publicly traded companies, even if you are not planning on joining them. Offers from publicly traded companies will give you huge leverage during the negotiation phase. Use levels.fyi and TeamBlind to research the pay for your position and do not accept a low ball offer.

Read this article by Patrick McKenzie before the first HR call.

3. Conclusion

Hope this article gives some clarity on how to prepare for your data engineering interviews. Researching the company, and its interview process will give you a much better chance of cracking the interview than blindly grinding Leetcode and hoping for the best.

To recap we saw

Remember if you are

A data engineer labeled as a data analyst with data analyst pay

Overworked & underpaid

Stuck without career progression

Working on repetitive issues

Trying to land a good data engineering job

a high-paying & interesting DE job is only a few months of prep away. Use the above steps, set your deadlines (approx 2 - 3 months w/ 1-2 h per day), and start interviewing you will end up with a great job!

If you have any questions or comments, please leave them in the comment section below.

4. Further reading

  1. Need more detailed interview prep materials? Check out this article
  2. Struggling to get DE interviews? Read this article on how to leverage your current position
  3. Skills to brush up on as a DE

5. Reference

  1. TOC generator

If you found this article helpful, share it with a friend or colleague using one of the socials below!