Transition from Machine Learning Engineer to Full Stack Software Engineer

I changed my job in August 2021, from a machine learning engineer to a software engineer.

Before the transition, working as a machine learning engineer in my previous company is generally a memorable experience. I graduated from the ideal university way of doing deep learning (with ample resources of data and computation), and found that doing machine learning in an industrial company without enough data is really disappointing. The bad loop is that no data -> no machine learning scenarios -> no meaningful work -> no skills improvement -> no idea of improvement -> no data ... That's why I spent time on one and another one PoCs and finally proved some of them are promising. But knowing them promising is usually the final step of the work, and the team moved on to another totally different work. Very few times some work can be applied to improve the online system, but finally you will find it's nothing related to modeling or even machine learning.

Not all industrial companies are like this. Staying in my previous company is not a bad thing, considering the cost-effectiveness of working hours and wages. Just because I really wanted to learn/do something really meaningful and impactful, I chose to seek new opportunities.

Then I found the chance to work in my current company as a full stack software engineer.

So far I am feeling pretty fulfilled. The current work is pretty interesting. I have learnt much knowledge about frontend, API design, backend, and microservices. The current company has a powerful platform and its own technical stacks, so I also have taken great advantage of it. Senior engineers in the team are intelligent and reliable. The product manager is also full of wisdom and great ideas of products. The manager also provides much help on career growth and technical discussions. No matter working alone on a specific feature, or cooperating with other team members, everything is relaxing and enjoyable.

After being more and more familiar with the team's products and technical stacks, one important thing for me is to keep learning new knowledge on company-wide techniques and information.

Being insensitive is always the first step to stopping growth.