That's an interesting question - I think it varies greatly from company to company. Most engineers are expected to be able to adapt and do what it takes to get the job done and this typically also changes depending on the size of the company.
When I worked at a startup and small companies, we worked across different functions (backend/frontend/release) and learned new things on the job to get things done.
In bigger companies, the roles become more specialized and you get to focus on a specific niche. For example, as a mobile engineer I was able to concentrate solely on building features and we worked with other engineers to get things built on the backend.
This also changes depending on how user-facing your role is. For instance, as a product engineer, I mostly focused on features that users would see and interact with but someone working on infrastructure would build features for other engineers in the company.
In my specific experience, product engineers are responsible for scoping and defining the timeline for various features, work in a team to allocate and collaborate on smaller pieces, work with product designers to iterate and define how things look and work, work with data science to figure how we can measure if we're doing well (or not), work with user research/content strategy/marketing to figure out how to tell users about new features.
Matthew recommends the following next steps:
- Decide if you like to learn about various functions or specialize in a specific niche.