Principal Software Engineer manages the overall delivery and quality of the output for the team. Principal Software Engineer is part of the team striving for innovations and continuous improvement. This role calls for a senior software engineer who has worked on a variety of projects using various technologies to implement solid, enterprise-grade business systems. In addition to a keen sense of usability and the ability to deliver workable solutions that put the user first, you should also have good working experience with leading an engineering team.
In this role, you will lead a team and collectively develop solid, scalable information systems including designing and implementing databases that support the continuously evolving needs of our clients and internal operational teams. Your main responsibility is to ensure that the information systems scale and support the new features your team is working to deliver. You will ensure that the team defines the right information systems all the way from the point where we collect the information, through to the Data Warehouse and into our reporting infrastructure, and it is your job to validate data integrity on all levels of the system flow.
- Closely collaborate with business analysts, end users and product owner to understand, document, estimate, and implement information systems.
- Actively participate in backlog refinement, as well as release and sprint planning activities.
- Design cost-effective solutions to complex problems.
- Implement functionality increments which are well-covered by automated tests and which deliver concrete value to end users every Sprint.
- Lead, inspire, develop and coach direct reports to be a high performing, driven and collaborative team;
- Manage resources to ensure quality and consistency of delivery, while promoting efficiency;
- Act as point of contact for escalations and crucial stakeholder requests;
- Prepare periodic reports and communicate results to senior managers.
The right person for this job is able to communicate very well in English both in verbal and written form, and is used to working in an Agile environment following Scrum development principles. You should also have a strong desire to work closely together with the people who will be using the systems you help develop, and a good ability to understand the needs of your users and deliver workable successful solutions that match those needs.
The ideal candidate will have experience in several or many of the following areas:
- Experience in managing a team
- Ability to plan, organize, set correct priorities and good skills of coaching other people;
- Resourcefulness, problem-solving, and ability to act with confidence in non-standard situations;
- Strong sense of responsibility and commitment;
- Result-driven and customer/stakeholder-oriented;
- Ability to multi-task and balance priorities to meet challenging deadlines;
- Strong co-operation and communication skills;
- Databases: MS SQL Server 2008 and later, with strong skills in SQL, database modelling and optimization.
- Programming framework/language: .NET, C#
- Platforms, API's: WCF, Web API, ASP.NET MVC, Entity Framework
- Service-oriented architectures
- Scrum methodology
- Fluent English in both speaking and writing
- Degree in Computer Science or related area (MSc strongly preferred)
It will be considered a strong plus if you have experience/interest for the following:
- Machine learning
- Big data technologies, including non-relational databases
- Mathematics and Statistics
- Java platform