The Lead Senior Software Engineer is responsible for all design creation, implementation, and review in the development team and at a consultancy level with various business areas. This is a hands on role where the individual with be an equal contributor on the team being assigned work through agile stories.
The successful candidate will have 6 plus years industry experience, ideally distributed across multiple companies thus bringing new ideas to the team. This will be a person that likes to dig into the code, find ways to make improvements, think proactively and not reactively.
The work will be a combination of greenfield work, enhancements to existing systems, troubleshooting, design, architecture, prototyping, mentoring and most importantly getting the work done to a very high standard. Having experience working with distributed enterprise systems will certainly be an advantage but if you have a strong aptitude for code and logic you will be able to navigate the complex map of systems.
The team love to hear new ideas, especially when they can be turned into solutions that save time and bring efficiency. This software engineer should ideally have full stack skills, but the greater emphasis will be on the serverside including DB & API modeling. The candidate must have advanced knowledge of Git and Azure DevOps build and release pipelines. The role will be a challenge for any senior seasoned developer but there is lots to learn and lots to teach the team if you are the right person.
Must Have (core skills that will be focused on as part of daily job)
- Computer Science or equivalent Engineering Degree or higher is a must
- 6+ years industry experience as a software developer covering, design, architecture, Db modelling, unit testing, utilization of design patterns, ORM.
- The stack is .NET based so advanced knowledge of ASP.NET MVC and Web API in .net framework and CORE is an essential.
- On the DB side RDBMS including SQL Server/ Aurora.
- Industry experience with setup/configuration of Azure DevOps including GIT and build & release pipelines and Octopus Deploy, these are essential to daily activities on the team.
- Ability to illustrate designs through sequence flow diagrams, ERD, physical and logical architecture design, UML or other modelling practices are essential for the role
- Web Server – experience with IIS
- LAN and Network Topology understanding (DNS, FW, Load Balancing, DMZ, Gateways)
- Takes a logical, analytical approach to problem solving and pays close attention to detail
- Knowledge of Agile development/methodologies
- Self-motivated and results oriented; able to motivate others
- Takes an innovative approach to problem solving
- Demonstrates strong focus on quality delivery and delighting customers; holds self to high standards of delivery
- Demonstrates excellent oral and written communication skills, experience leading groups of people through discussions, technical or otherwise
- Strong team player; able to lead and work effectively within a team and more broadly with people from a variety of backgrounds and areas across the organization.
Nice to Have (additional skills that can be applied on certain projects)
- Front end knowledge of frameworks like Angular, REACT, NodeJS etc. would be an advantage.
- Commercial experience with XAAS using AWS covering Docker, Kubernetes, Lambda, Cloud Formation Scripts, Containers, and other AWS components including cloud security would be an advantage.
- NoSQL DB such as MongoDB/DynamoDB
What do you need to be successful?
- Joining a team of experienced developers, this candidate will need to have a strong technical pedigree covering all aspects of the software development life cycle.
- The candidate must be able to demonstrate their experience more so than theoretical knowledge in azure pipeline setup, code optimization, best practices, design thinking, modelling and architecture.
- That candidate will have come from hands on development role, ideally focused on web applications
- The candidate needs to be a senior contributor, advisor, reviewer, mentor and consider the impact of all design changes on the landscape.
- Very good and vocal communicator that will work with both technical and business teams and be able to tailor their language to the audience.
- Keen interest in R&D to bring new ideas to the team that will make us leaner and build faster better solutions.
- Be a strong team player, this is a flattened structure, we all work together.
Principal Duties and Responsibilities
This team is responsible for delivering a wide range of new Solutions that will transform the way the company does business with its customers. Solutions covering Intranet, Extranet, Internet systems as well as REST API design and ETL as part of a middleware stack. Given the nature of the business; security and data integrity are core to everything we do. The team build, test, deploy and support all our own applications to the highest standard and there is a strong focus on automation and continuous improvement.
Core Duties and Responsibilities of the role also include the following:
- Provides technical leadership and direction for all solutions delivered
- Contributes to architecture roadmap for business area through leading and participating in Proof of Concept (POC)/prototyping initiatives
- Provides ongoing and appropriate mentorship for Software Engineers
- Plays an active role in improving collaboration between business and IT
- Responsible for application solution quality from design and implementation to deploy and run. Participates in definition and maintenance of software standards
- Responsible for the design, implementation, and maintenance of new and existing solutions for the existing portfolio of applications for a business area
- Responsible for communication and collaboration with key stakeholders in the delivery of solutions
- Design, codes, unit tests, maintains, and documents software deliverables using agreed upon standards, patterns, and tools
- Participates in sizing and estimation activities within the agile team
- Communicates daily team manager and the Agile team on progress made and planned progress for the coming day and reports any impediments that are blocking their progress
- Participates in code reviews and sprint retrospectives; ensuring their ideas for team continuous improvement are communicated so that the overall process and team can improve sprint by sprint and readily receives feedback for self-improvement
- Focuses on always delivering business priority and value
- Demonstrates an interest in software architectures and seeks to design solutions in alignment with Company stated architecture and standards
- Participate in Proof of Concept work and prototyping when necessary
- Collaborates with Business Analysts to confirm understanding of business requirements relating to solutions to be delivered and to help the Business Analyst define requirements that can be delivered from a technical perspective
- Collaborates with User Experience (UX) designers to ensure designs produced can be translated efficiently into working solutions for feature delivery
- Collaborate with Test Engineers as to ensure that software meets the definition of done, ensuring successful transition of work to the next stage of production during the sprints
- Ensures an innovation culture in the team by continuous improvement of deliveries and participates in evaluating new processes and technologies that can be applied to future solution delivery
- Always thinks with the mind of the end customer, ensuring solutions seek to improve the customer experience and drive efficiency by reducing manual touch points