Principal Software Engineer
Job purpose:
Manage large and complex solutions and projects; ensure the execution of software development life cycle of applications and programs (installation, configuration, deployment, analyzing, documenting, coding/development, and unit testing) as well as acting as the technical lead and managing other software engineers assigned to projects.
Key accountabilities and decision ownership:
- Interpret the customer requirements into deliverables (code, installation of a system, deployment, etc.) and ensure they are well mapped with the requirements.
- Manage the time estimation of projects while following the project plan and timeline as well as the organization processes and standards.
- Manage and ensure the execution of the software development life cycle following the agreed methodology (might execute when needed and as per the project needs).
- Manage and ensure the delivery of the code as per the agreed technology stack while following coding and security guidelines (might execute when needed and as per the project needs).
- Manage and ensure the creation and execution of unit test cases (might execute when needed and as per the project needs).
- Ensure the documentation of the code (might document when needed and as per the project needs).
- Conduct code review for junior and senior engineers.
- Create the project architecture and design in collaboration with the technical architect.
- Ensure the creation of application specifications and guidelines.
- Integrate software components into a fully functional software system.
- Collaborate with the testing team in developing software verification plans and quality assurance procedures.
- Support the testing team and supervise and guide the technical team across the project lifecycle.
- Represent the development team in communication with customers throughout the project lifecycle.
- Manage the solution deployment.
- Conduct user acceptance testing (UAT) with the customer upon assignment from the project manager.
- Fix nonconformities resulting from engineering processes audit and architecture audit.
- Report work progress, technical issues, risks, and changes in delivery dates to the technical lead and the project manager.
- Participate in the hiring process of technical team members.
Additional accountabilities in case of full stack/frontend assignment:
- Manage and ensure the conversion of visual screens to UI elements for any portal or application (might be executed when needed and as per the project needs).
- Manage and ensure the creation of prototypes using UI technologies (might execute when needed and as per the project needs).
Job requirements
- Bachelor's degree in computer science or equivalent.
- 11+ years of relevant experience including 6 to 7 years in a senior software engineering role.
- Experience with Dynamics 365 Sales.
- Experience with Dynamics 365 Customer Service.
- Experience with CRM 2011.