What to expect from Software Engineer

Supporting growth and planning goals for your teammates require an individual approach. But there is one root concept I use when working with every single software engineer.

According to Wikipedia, "A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software".

Design is about preparing the plan - for software architecture and its interface (either user or technical). Apart from technical skills, it requires a great understanding of a product, customers, and business.

Development is obvious but underrated. Next to coding, you need to care for quality (unit testing is part of development) and delivery (it's done when users can use it).
You need to remember that you build a product, not just the code.

Testing has a few different faces - testing performance, data integrity, the full system (end-to-end), and single blocks (functional, contract). There is also product-focused testing - usability or user testing, among others.
Testing influences the speed of delivery and quality of the end product.

Maintenance is split into short-term (post-launch) and long-term, called ownership. Software is like a living organism that needs to be taken care of. When something is live, it has to be fixed, updated, extended and monitored.

Evaluation is about ensuring that engineers understand what product they build. Basic behavioral analysis or value evaluation - contribution to the company's KPIs, mission, and strategy. How they influenced growth, expansion, cost savings, or customer satisfaction.

Here is a full blog post exploring the meaning of Wikipedia's definition. https://blog.practicalengineering.management/software-engineer-responsibilities-ac34c380fbb7

Software Engineer Responsibilities
What you should expect as Engineering Leader