Job DescriptionPrinciple Software Engineer - CRMJob 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 projectsKey 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 requirementsManage the time estimation of projects while following the project plan and timeline as well as the organization processes and standardsManage and ensure the execution of the software development life cycle following the agreed on methodology (might execute when needed and as per the project needs)Manage and ensure the delivery of the code as per the agreed upon technology stack while following the 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 engineersCreate the project architecture and design in collaboration with the technical architectEnsure the creation of application specifications and guidelinesIntegrate software components into a fully functional software systemCollaborate with the testing team in developing software verification plans and quality assurance proceduresSupport the testing team and supervise and guide the technical team across the project lifecycleRepresent the development team in the communication with customers throughout the project lifecycleManage the solution deploymentConduct UAT with the customer (upon assignment from the project manager)Fix nonconformities resulting from engineering processes audit and architecture auditReport work progress; technical issues; risks and changes in delivery dates to the technical lead and the project managerParticipate in the hiring process of technical team membersAdditional 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 RequirementsBachelor's degree in computer science or equivalent11+years of relevant experience including 6 to 7 years in a senior software engineering roleDynamics 365-SalesDynamics 365 Customer Service CRM 2011