I can't provide much help with advice for a career change, but I have some thoughts on your current situation...
> I feel like my skillset (Python and Django) is slowly fading into irrelevance (everyone seems to be about machine learning and data science nowadays)
Machine learning and data science are certainly trendy, but there are still 100s of developers for everyone in those areas, and will be for a long time. These skills are highly sought after and you'll likely naturally shift to new technologies to solve problems as you need to.
> I also would like more interaction with people instead of spending my days in front of a monitor.
I think the best engineers get a lot of interaction with people. Building something isn't worth much if it's not the solution to the right business problem. I'm an engineer but I'm heavily involved in the product thinking process, talking to "stakeholders", brainstorming ideas, liaising with external companies, etc. I'd estimate my time is roughly 70% at a computer and 30% talking to other people in various ways.
There are many opportunities to do this sort of stuff if you're interested, and you may even want to go into Product Management if you want to remain close to technology but spend more time getting human interaction.
> Note that I am only 20 so I don't have that much experience either, and finding a good developer's job seems hard given the competition for all the good startups.
I'm assuming you're right at the beginning of your career, or only 1-2 years into it. I would encourage you to find a different place to work, try more companies of different types, teams that work in different ways, etc.
I've seen "early employees" do well as PMs. These are employees who started out ostensibly in marketing, or operations, but at a scale where everyone in the company still does a bit of everything. These people naturally grow with the company knowing so much about the internal workings of the company and the product that they are the perfect candidate for a PM role even if they have no formal PM experience.
I've seen 2 people do this at my current company and have heard similar things from other companies where it worked very well.
One common path I've seen is to prove yourself inside a company and “step up” (volunteer yourself for the new position). 1-2 recommendations later, it'll be a done deal.
> I feel like my skillset (Python and Django) is slowly fading into irrelevance (everyone seems to be about machine learning and data science nowadays)
Machine learning and data science are certainly trendy, but there are still 100s of developers for everyone in those areas, and will be for a long time. These skills are highly sought after and you'll likely naturally shift to new technologies to solve problems as you need to.
> I also would like more interaction with people instead of spending my days in front of a monitor.
I think the best engineers get a lot of interaction with people. Building something isn't worth much if it's not the solution to the right business problem. I'm an engineer but I'm heavily involved in the product thinking process, talking to "stakeholders", brainstorming ideas, liaising with external companies, etc. I'd estimate my time is roughly 70% at a computer and 30% talking to other people in various ways.
There are many opportunities to do this sort of stuff if you're interested, and you may even want to go into Product Management if you want to remain close to technology but spend more time getting human interaction.
> Note that I am only 20 so I don't have that much experience either, and finding a good developer's job seems hard given the competition for all the good startups.
I'm assuming you're right at the beginning of your career, or only 1-2 years into it. I would encourage you to find a different place to work, try more companies of different types, teams that work in different ways, etc.