Product Engineer - the skill set

A competent and valuable product engineer does not stop at the boundaries of engineering, and say “give me what I should build, and I will build it”. They engage actively in the process of figuring out what to build in the first place. Their engineering skills may prove invaluable in that process to begin with, and they will be way more well-prepared to make better engineering decisions that suit the present and the foreseeable future of the product they are building tools for.

If you haven’t yet, give Product Developers - definition and roles post a read to get an idea on the shared understanding of a product developer and team I may talk about later.

From that post, I state that the main task of a product engineer is:

to implement the conceptual and interactive designs in a working software and maintain the infrastructure behind running the software components of the product

Having said that that’s the main task, it isn’t the only one. That’s actually the main task of engineering itself, and to become an effective team player in product development context, a product egineer will need the following set of skills:

  1. Engineering skill-set relevant to the technology the product is built on. For example, when building SaaS product, fullstack engineering knowledge is required, while building a health self monitoring product will require embedded systems knowledge.

  2. Domain Driven Design (DDD): domain models result in an effective common language within the team for communication, and helps engineer tune their technical decisions more easily to solving the user problem in the right context rather than the technology problem. Which result in reducing the overhead and costs of development iterations.

  3. Experimentation and data collection (tracking) tools and methods. Examples include user identification across devises/apps, setting up a/b or multivariate tests, 3rd-party tools integration for product and data analysis, data anonymization for privacy.

  4. UX/Design collaboration tools and methods. Such as user personas, user stories and jobs-to-be-done, design systems and component-driven UI frameworks & flows to name a few.

Note

engineers in product context do not need to be experts in all of the mentioned areas. Product Development is an extemely agile process where ability to experiment with and adapt different solutions and ideas is way more important than perfecting every single component of it yet.