How to choose jobs in the DS world
My evaluation list on DS jobs
- How to choose jobs in the DS world?
- Job nature
- Business/product model
- Team
- Company
- Conclusions
- Recommended reading:
How to choose jobs in the DS world?
This is what I have struggled with in my mind over the years, what is a good DS job……. To solve this problem, I have created the checklist/questions which I hope the previous me could read before making the career decision. I won’t talk about compensation/tech details/interviews, that’s another story You are not always in the position to choose (such as finding jobs during COVID-19) but you should seriously evaluate your options if you can
Job nature
There are thousands of jobs sharing the same title, eg: data scientist, data engineer, ml engineer. But they could be totally different from company to company, be aware! The first thing I will look into is the skill requirements to identify the job nature If it is analytics, expect tons of SQL, dashboards, presentations, product analytics, and experimental designs. You probably need to enjoy talking to people, finding insights, and guiding the business, which means you need to be a domain expert in that business. In short, I think it is more like a business/PM/consultant type of role, but from a data perspective If it is engineering, be alert if the job responsibilities are vague, and don’t make assumptions, let me repeat: don’t make assumptions! For example, the people who share the data engineer title may do completely different things. Some are developing ETL pipelines; some are working on instrumentation; some are building the new data / ML infrastructure. You should think clearly about whether that fits your career plan! Also, another common “trap” is internal transfer, you want to get into the company first and switch to the roles you want, while I don’t deny the possibility, don’t be over-optimistic in your calculation, hope is not a strategy
If it is modeling, I will consider two things, one is the value of the models, and another is the team maturity. For example, developing a model for Dogecoin price prediction sounds great but the outcome is probably not promising. Team maturity is another consideration, be aware of the team is too green or even worse, you are the first member. They will sell as every startup does: you will have enough space to innovate. There are success stories but think about survival bias. If you are super capable/team lead level, it may be worth trying; if not, then………
Business/product model
Personally, I think this is the fundamental factor to determine your scope and potential achievements in the organization, and financial uplift, I will ask myself the following questions:
- How do you justify your (or your team’s) paycheck in that business/product? How large is the potential uplift? This question requires you to think about how the company makes for living, and what area you can contribute. For example, in traditional industries such as merchandising, they probably don’t need advanced ML yet but they need to digitalize their business first. So even if you are a genius in ML, there are no such demands, and your deliverables will likely be ppt or fitting some models on some data in a Jupyter notebook. You will likely try to establish some KPIs or standardize the business workflow and get rejections from business experts. The trap here is these companies usually say they are willing to change/digitalize themselves, but that usually won’t happen because that doesn’t fit their previous success path, your role is in fact threatening the interests of the original core team if you can’t show values quickly. Don’t recommend it unless you are confident that you can be an asset rather than a liability.
- What is the “resource complexity” to scale? O(1)? O(n)? O(n**k)? The software industry is different from others because it is much easier to scale, or in economic terms, the marginal cost of software approaches zero. But not every software has such a property, especially B2B solutions. In recent years, there are tons of “AI companies” developing their solutions in different verticals and planning to sell them. The happy flow is they will develop one algorithm/system and run it in different customer systems, since the companies in the vertical are mostly giant companies [eg: banking, telecom, retailers, airlines], they can afford a big bill if the solution is nice! But the unideal parts are: selling solutions to business usually require custom integration, which hurts the scalability and increases the marginal cost, A LOT, especially if you are using AI [those deep learning things]. Deep learning models are still a black box, there are too many edge cases if the business requires more than the simple & straightforward use cases. These companies can definitely make money if the margin is big but nature will become more like a service or integration company, aka human-intensive. So from an employee perspective, it implies you will need to do one project after another, hence operational tasks/projects may take up significant amounts of your time and you have less time for R&D / innovative things if those are what you want. To compare the difference, imagine SaaS companies like Confluence [The company that makes Jira], the marginal cost to serve one more user is close to zero and even if they don’t develop any feature for a whole quarter, it won’t affect their growth in the short run. These companies hence usually have more time & resources to experiment the new things because the business outputs could be detached from employee’s work hours and client’s business logic
- business/product model also affects the operations, A LOT! We are doing DS so where is the data? SaaS / B2C products don’t feel such pains because users will likely use their developed applications, and engineers can implement tracking or log the events in servers to collect the data [there are also some headaches but everything is under your control, at least before Apple’s App Tracking Transparency]. But imagine if your clients are government, banks, airlines, and retailers, and you have an ML solution for parts of their processes. Then you need to ask them for the data, you need to understand their schema & business logic, handle the dirty data, and come up with tons of workarounds to run your models. That isn’t fun because your time is tied to the outcomes & your work is constrained by others. Never imagine those companies will change their process because of your product, never assume their digitalization level will boost suddenly to meet modern software requirements. You will probably be woken by PagerDuty and live with tech debts until the end of your tenure there instead Nice article from a16z to discuss AI companies
Team
Your supervisor and team contribute a huge chunk to your job satisfaction, they can determine whether it is an amazing or nightmare experience. But this part is quite general for every job, some key signals I recommend you to look for are:
- Growth mindset: Do they adapt to a growth mindset? Do they encourage people to grow but not box them like a robot? Do they micromanage? How do they make the decisions? Are they humble? Get this information during interviews
- Atmosphere: Are they a happy team? Are they humor?Are they willing to share their insights and knowledge? This will signal whether people are psychologically safe, if the answer is no, you better understand why and whether you can accept that. Mental health and growth are even more important than your compensation after a certain threshold. A mismatched atmosphere will make you become a philosopher, stay away from the toxic culture, it makes you negative, short-term focused, and anxious!
- Experience: Is the team experienced? If not, you may have a hard time getting up to speed. BTW, companies usually frame this shortcoming as challenge/opportunity, calculate the odds yourself
Company
- Do due diligence carefully Go to Glassdoor/Blind, and check the negative reviews because they are mostly true. My theory is that 5-star reviews could be neglected because they fits the company’s interest but you should read and evaluate every word in 1-star reviews
- Check the background of the management Are they experienced? Do they know what they are doing? Do you have networks that work with/for them? Give them a call! These are important because inevitably there are up and down in business, and these factors will take effect at that critical moment
- Check company retention Are there many people leaving recently? That may be a signal
- Check funding status if you are applying for a startup
- Trust your guts idk, but whenever I feel something weird / doesn’t make sense, they are usually true, unfortunately. Be rational, don’t be over-optimistic. Remember they are trying to sell you the company, which means they are like a sales team and show only beautiful pictures in your mind. Be rational!
Conclusions
Unless you are super lucky and get your dream job, your decision should be tradeoff b/w various factors we discussed above
- Some people enjoy coding while some people enjoy talking to people
- Some people enjoy quiet culture while some people enjoy a happy & open culture
- Some people prefer stability while some people prefer growth (risk)
- Some people prefer B2B because of easier monetization while some people prefer B2C because of the possibility of rapid scaling As long as you have evaluated the options carefully and understood the potential good and bad, the rest is your choice!