This article is written for job seekers. I’ve gathered a lot of data over the course of a month-long search and learned about what the landscape looks like for the analytics engineer hiring pipeline.
Through around a dozen and a half interviews I had the opportunity to assess hiring pipelines both as a candidate and speaking with hiring managers who were looking to fill roles. I went through full interviews at six or seven companies and it gave me the opportunity to evaluate what works well and what doesn’t.
I came back with three offers so I’m happy to say that I’ve found some success and some valuable takeaways to share.
Is analytics engineering right for me?
Analytics roles have changed substantially over the past several years. These roles map out roughly to be something like this:
One of the biggest changes has been the introduction of a new role on the data team – the analytics engineer. Analytics engineering is a relatively new title that has been coming up more as business logic modeling layers are added to data pipelines.
A couple of reasons why I found myself gravitating towards analytics engineering
- I like to think about data organization as well as analytics needs
- I have an interest in coding and writing models with an understanding of business logic
- I enjoy thinking about what metrics the data will be used for, but I don’t feel strongly about building out reports and visualizations
As an analyst, I enjoyed working with stakeholders and building reporting around data I found interesting. But I also enjoyed building processes and thinking about modeling end-to-end. For me, being able to do both as an analytics engineer was the best of both worlds. If this aligns with your interests as well, consider this career path!
Making sense of job titles and responsibilities
Data titles are still blurry. It’s not uncommon to see job descriptions for data analysts and data engineers that are, in fact, describing the work of analytics engineering. So if you want to get a job doing analytics engineering work, you’ll need to look outside job titles alone and evaluate what the work actually entails a little more closely.
In my last role I was very much an analytics engineer in terms of responsibilities but held the title analyst. My responsibilities were mainly working in modeling business logic in dbt and working with stakeholders to create reports and dashboards. Whereas in my current role I have the title data engineer but a lot of my day to day is working with writing out data models in dbt and thinking about how to connect new data sources via Stitch.
One of the biggest takeaways from looking for analytics engineering roles has been that titles vary so greatly, though most responsibilities are pretty similar -- I interviewed for roles with the titles analytics engineer, senior analyst, and data engineer and not a whole lot varied between them. Had I been title focused, I likely would not have found my current role, because I never thought that I was someone who had the skills to be a “data engineer”; it’s incredibly important to look at responsibilities first and titles second.
Here’s how Fishtown Analytics outlines the boundaries of different data roles:
After reading closely through dozens of job postings, there are few good signals to look out for to help you evaluate what the responsibilities of a work actually entail:
- Are they using off-the-shelf ETL tools like Fivetran and Stitch? If not, someone in a data engineering role will be expected to write and maintain ETL scripts.
- Does the description talk about “empowering end users”, data modeling, testing, or data quality? That’s definitely analytics engineering.
- Are you the first hire on the data team? Then there’s no doubt you’ll be doing analytics engineering plus a good stretch into both data engineering and data analyst.
- Is the role hiring an analyst for a specific business department? Then there’s likely some amount of existing data engineering and analytics engineering support and you’ll spend most of your time building dashboards for that given function.
Be wary of data analyst roles that are unsupported by good analytics engineering practices. When I’ve been in strictly data analyst roles, a lot of data would come to me considered to be clean but still required a bit of work to become usable for working into reports. I was left doing cleaning using the same tools I would be using for reporting — this resulted in piecemeal cleaning of data rather than having a solid start when beginning report creation. It didn’t scale well.
By contrast, being an analytics engineer allowed me to set up data cleaning and transformations in a systematic fashion for all incoming data. A big benefit to having this transformation layer available and owning it meant that if there were transformations to be made, they would likely be prioritized rather than sitting at the bottom of a data engineering team’s backlog. This meant that the time to get cleaned data that had business insights and logic built in gets cut down tremendously
Where do I find companies hiring analytics engineers?
A few places to start:
- 1-1’s / coffee chats
- Slack groups
In particular, the Locally Optimistic Slack group and dbt Slack group. Slack groups can provide a signal for companies who actively look for best practices or interesting problems in fields or technologies you’re interested in. Engaging with people who are active can be a lot more fruitful than just applying to posts in the #jobs channel. Additionally, if you're already in the jobs channel, it’s a great opportunity to reach out to the posters and ask additional details about the company or team.
Speaking at a meetup is a great way to stand out in the community; you can simultaneously network and stand out in the crowd. There are likely to be companies hiring and if the company had a speaker, or hosted the space you have a great opportunity to get a better feel for a company. Choose a meetup group with a good level of community engagement that you can show a genuine interest in. If you don’t have a particularly strong interest in either, just be cordial and talk to people. You never know who might reach out in the future.
Leverage your network
Take initiative to reach out to new folks you’ve met and ask to grab coffee and/or reach out to their networks. Reach out and reconnect with your existing network as well. When I was laid off, I posted about my job search shortly after and let folks in my network know. I mentioned it when meeting new folks in person as well. Doing this gave me two strong leads —one of which led to an offer— where the hiring managers reached out to me on LinkedIn.
What does the hiring process look like?
Once you get that request for the first phone screen, you are officially in the hiring process! In addition to showing off your skills, you want to use this time to make sure you understand what you’re getting into. As discussed in the first section, titles in data don’t always align with actual responsibilities. Be prepared to discover what the work actually is.
I was in the hiring process with seven companies. Most commonly, the process looked like this:
- Phone screen with the hiring manager or a recruiter.
High-level questions to figure out if I’m a fit for them and they’re a fit for me
One of the most helpful questions for me in differentiating roles was asking about their ETL process, both tools/technology as well as roles and how they collaborated. Make sure you leave this conversation understanding how you would fit into the workflow.
- Technical interview with the hiring manager.
At this stage, the company is looking to understand if you can really do what they need you to do.
A common exercise for the technical interview is a code improvement project. I found this to be the most helpful in getting an idea of how the team works since it allows you to start thinking about the problem, looking how someone else broke it down, and ask questions about how requirements might be gathered. Code improvement exercises I went through had a lot more back and forth and were more like discussions than coding challenges, which felt like--at best--just verbalizing my thoughts while working.
- On-site with the data team.
They feel that you’re qualified! Now they want to better understand how you work and whether or not you’re a fit with their team.
This is when you’ll meet other members of the data team. Be sure to ask them what their day-to-day entails and how they would work with this new role. You want to leave this final round of interviews with a clear understanding of the resources on the data team.
My closing advice as you start your job search is to know what’s important to you. For me, I identified three things:
- Data Stack is incredibly important because I know what tools I want to be working with. I would love to jump into a role and start working in modeling in dbt, rather than advocating for dbt while a company is in the midst of considering tooling but already wanting to hire for an analytics engineering role — something I am less interested in diving into is working on vendor selection and migrating tooling.
- Alignment between where in the data stack I’m comfortable, and where I’d like to learn more. For me, that meant I was looking for analytics engineering work, with a slight data engineering lean. I wanted to focus on modeling data and less on refining stakeholder requests and dashboarding.
- Team size is especially important for folks who are newer to software engineering, or come from a less programming heavy background. As someone from STEM, but not computer science, I’ve learned a lot from more senior folks. I wanted to continue learning from my peers and growing, so it was important to me that I work on a team where there are senior folks to learn from. It’s also important to work on a data team that is more built out so that I can focus on analytics engineering as opposed to having to be a jill of all data trades.
Knowing what’s important to you going into your search will keep you on track and focused as you look for the best place to keep developing your analytics engineering skills. Good luck!
Check out my Meetup talk on this topic: