Principle Frontend Developer
2 days ago
Watford
Who Are We Looking For? To be a successful Principal Software Engineer you must have significant domain knowledge, not be fazed by any problems when facing into the unknown. Any ticket on the backlog you are expected to be able to pick up and implement in a timely way that meets or exceeds the quality expectations, standards and business value goals. The Role: Software Engineers are responsible for engineering all of the systems, products and services that power our client's business. This means being responsible for the software design, code implementation, test coverage and operation of effective software and supporting toolsets within specific business and technology domains. The role holder spends their time Exploring, Investigating, Developing, Enhancing and sometimes Decommissioning our provided Tools, Product and Services all with the aim of delivering the backlog, roadmap and overall corporate strategy with their success being measured by outcome value achieved and alignment to the agreed priorities. This involves translating requirements into quality (meet required metrics) technical solutions then creating code for products and services adhering to our engineering standards that’s maintainable, supportable and with minimal risk to operate and able to be deployed safely into a production environment for use by customers and colleagues. The Principal Software Engineer is the top of the Individual Contributor within the engineering track at our client and as such ensure software deliverables meet quality standards and are delivered effectively. They are the go-to person within their Centre of Excellence for tricky implementations; any problem should be easily resolvable by a Principal Engineer. They intimately know the design, topology, methodology and wellbeing of their centre of excellence and can help, guide and support all other engineers on achieving successful outcomes. Key to being successful is being responsible for creating a diverse, inclusive, and welcoming environment. It is essential to ensure that everyone feels supported to be their authentic self, can grow, develop, and positively contribute to delivering value. Key Responsibilities: People Leadership of the engineering change within their centre of excellence able to guide and support other software engineers in problem solving, code implementation issues and related challenges. Able to work in close partnership with others – Heads of Engineering, Solution Architect, Technical Programme Manager and Leads to help to shape the engineering approaches, share knowledge and their experience. Able to influence colleagues in a range of different approaches to solve problems to gain wider or better results and/or drive bigger benefits. Able to review code output and make constructive suggestions for future improvements. Represent our client externally at conferences, panels and industry events to ensure that our client is viewed as the leading innovator within the engineering / signalling industry. Act as a thought leader – the principal point of contact for expertise on software issues, industry trends on developing technologies within their Centre of Excellence and seen as a role model, exemplar of demonstrating our client's values. Process Accountable for resolving technical conflict when it arises able to balance a range of different viewpoints and perspectives then apply their domain knowledge to provide guidance and support to their Engineering Lead when making decisions. Guiding and developing, senior, mid-weight and associate team members through general guidance on best practices in order to ensure the development of world-class software. Can take any task from the backlog and can shape, then break them down into defined, implementable tasks/subtasks that align to our client’s Technology Standards and meet the Definition of Done/Story/Epic’s Acceptance Criteria. Routinely pairs with others along with reviewing and giving constructive feedback on others’ code. Review and writes tests using automated test-driven techniques to ensure code quality and future reliability. Provide frequent and accurate updates on ticket progress, expected timelines, work level outstanding, dependencies, risks, issues and duration spent to Delivery Programme Managers. Is accountable for documentation accuracy and writes, updates and reviews all domain documentation. Comfortable to contribute in group discussions/workshops on design and technical models, articulating contexts and boundaries and the rationale behind them, shaping the wider application landscape and identifying risks. Lead troubleshooting and resolution of issues throughout the product life cycle, including providing out-of-hours support for incident resolution and performing root cause analysis. Technology Skilled with full understanding of the systems delivered, technologies utilised, and approaches taken within their domain (Centre of Excellence). Has understanding and can provide context on historical choices and can rationalise and validate future decisions along with highlighting risks or areas that now require re-engineering. Work closely with Product to understand and translate roadmap items and needs into improvements in the domain, translating requirements into tasks and code and developing high-quality code that can lead to rapid delivery. This includes owning the scope, shape and prototyping aspects of technical implementations. Apply in-depth knowledge of multiple programming languages, associated frameworks, and the respective tool ecosystem to create elegant solutions to problems. Adopt new languages and new paradigms and produce proof of concepts to evaluate new tools, applying them to the problem domain where they deliver significant benefit. Continually learning and maintaining knowledge of the industry and competitor developments. Be experienced in Azure, .NET and REACT. Ideal Experience and Knowledge Sought: Demonstratable experience designing, and building distributed systems, for scalability, availability and performance and running whole system landscapes. Experience acting as a technical authority within a domain that uses multiple technologies. A pragmatics and viable track record of delivering large-scale, well architected complex solutions at pace. Confidently and competently share knowledge to other users, customers, and other team members. Strong understanding of running production systems in a secure, reliable and performant way.