I was watching the course on "Focus, Focus, Focus" video from the coding course
As an MLE how narrow should my focus of a tech stack be? and what constitutes as a tech stack?
99% of my work is in Python, but at 1 job I did 90% of my work in PyTorch
At my current job I'm doing 40% sklearn/keras (it's a simpler version of PyTorch implementing same things, but is mostly used for ML stuff where models need low customization) + Pandas
Rest 60% of my job needed me to start working with Polars which is pandas but faster and is more heavy weight (similar to PySpark/Dask)
Is that too much branching? or Should I be narrowing my focus?
TL;DR it's ideal to hone in on 1 tech stack, but changing circumstances need me to use different frameworks depending on the problem. Is that bad?
At the end of the day, you should do what it takes to move your team and its product forward. This is especially true in a startup environment where you have to put on many hats. For example, when I was at Course Hero, I spent a lot of time on non-technical things like responding to Google Play reviews for the Course Hero Android app (when I joined the company we didn't have a formal customer support team doing this). This is because in a startup, your sense of ownership has to be far deeper than at a colossal company like FAANG.
Switching technology/frameworks isn't the best for earlier-in-career folks, but sometimes it's unavoidable. But if you're truly always doing the best thing for what you work on, the impact of that (both in the product success and the feedback you get from superiors) will probably outweigh the downsides of switching around.
That being said, I don't do a good job of defining exactly what a tech stack is, especially versus a tech domain. This is because I honestly don't know what the exact definition should be š¤£. There's 4 levels from my perspective, ordered from biggest to smallest:
When it comes to machine learning, I see the entire thing as a domain/stack. I think as long as you're doing ML stuff, you'll be fine.
Agreed with Alex -- the answer is whatever will most benefit the company.
Now, you could make an argument that excessive branching makes it harder for you to get things done, which is then less beneficial to the company, but that's a decision that should likely be made in concert with other people on the team.