£550.00 - £600.00 per day
about 2 months ago
Senior Full Stack Software Engineer required to lead the development and implementation of digital software solutions to help drive innovation and the delivery of a robust digital software capability within the business, enabling the realisation of desired business outcomes.
- Significant experience of professional, experience building mobile and/or responsive web applications in an Agile development environment.
- Strong understanding of the React.js frontend framework.
- Experience with mobile app development, especially the hybrid solutions PhoneGap/Cordova.
- Experience in developing and building back-end applications with RESTful API services and with web service protocols like SOAP, REST, and JSON.
- Experience with NoSQL and relational databases, e.g. MongoDB, SQL Server, MySQL including database design and use of database tools such as Mongoose for MongoDB.
- Experience in cloud computing platforms (AWS, Azure).
- Excellent analytical, problem-solving, written and verbal communication skills, having the ability to effectively communicate with both technical and non-technical audiences.
- Knowledge of build and deployment tools - Grunt, Webpack, NPM, Git, Jenkins.
- Experience with Native mobile application development (Objective-C/Swift for iOS, Java/Kotlin for Android, C# for Windows) or other approaches such as React Native or Xamarin.
- Experience with various design patterns (MVC, MVVM) and React implementations (Flux, Redux).
- Experience with CI/CD automation using Jenkins or other similar open source tools.
- Working knowledge of core AWS services (AWS Console, CLI, S3, SES, CloudWatch etc).
- Experience in unit testing frameworks (Jest/Enzyme, Chai/Mocha etc) and test automation techniques.
- Familiarity with CSS pre-processors, such as SCSS.
- Knowledge of low-code platforms.
- Formal testing qualification / certifications in foundation level software testing (e.g. ISTQB® Certified Tester Foundation Level).
- Appreciation of/experience in the rail industry or equivalent.
- Lead the design, develop and build phases of digital software solutions in the development/delivery life cycle to enable the delivery of software solutions to internal customers and investors.
- Provide technical expertise whilst developing bespoke full stack digital software solutions from ideation by analysing and interpreting user stories and collaborating with the Digital Factory team through to delivery in order to enable the delivery of a high-quality end-product with minimal fixes needed.
- Provide expertise at an escalation level to maintain and support existing digital software solutions to help deliver a robust, reliable and high-functioning growing mobile estate within the business.
- Plan individual development strategies for all stages of design and development for complex digital software business solutions, including solution analysis, design, development, testing and integration, completing builds and deploying the solution in accordance with architecture design and complying with safety, security and regulatory requirements.
- Develop highly complex prototypes and minimum viable products (MVP) to help validate customer proposals and enable the rapid delivery of digital software projects within an agile working environment.
- Complete sprint work within designated time constraints and quality standards whilst following appropriate agile methodologies and principles to deliver digital software projects within a highly agile development team.
- Identify opportunities to develop and continuously refine in-house reusable component library, guiding other developers to help build a better codebase, whilst specifying the standards for in-house components.
- Establish technical and architectural leadership and expert advice on the digital software estate and engineering systems used within Network Rail digital delivery function's growing project portfolio to the rest of the business as required to enable the rest of the business to develop own products following recognised standards.
- Coach and mentor junior members, guiding their technical and professional knowledge and development, in order to aid the development of junior engineers, enhancing their understanding of developing, designing and building digital software solutions.
Job Skills, Experience and Qualifications