We are seeking a highly skilled and experienced Full Stack Software Engineer to join our dynamic team. The ideal candidate will have a strong background in full stack development, with expertise in building and maintaining web applications using technologies such as Node.js, React.js, TypeScript, JavaScript, Cypress, MongoDB, designing and developing high-quality technical solutions using Terraform, AWS services and best practices in Networking and IAM.
The ideal candidate should have a strong background in AWS services including IAM best practices, AWS API Gateway, AWS Lambda, and AWS S3 The Software Engineer is responsible for the design, creation, testing and documenting of new and innovative software products. This will be in accordance with agreed development and security standards and processes and with support from Senior and Principal Engineers.
The candidate will have a passion for technology and technology trends within the field of Software Engineering. The candidate will be an inquisitive learner, and seek to add value to the team immediately, while broadening their knowledge over time. The candidate will already have solid foundational knowledge, with demonstrable experience of building and supporting new products.
As a Full Stack Senior Software Engineer, you will play a key role in the design, development, and deployment of innovative solutions to meet our business needs.
Responsibilities
- Takes technical responsibility across all stages and iterations of software development. Adopts and adapts appropriate software development methods, tools and techniques. Measures and monitors applications of project/team standards for software construction including software security.
- Responsible for contributing to the efficiency of Product Engineering’s full software development lifecycle, utilising modern trends and approaches to ensure value is released early and often (Continuous Deployment).
- Leads simple refinement activities of small to medium-sized well formed and understood product features – partnering with Product and Design to break down these items of work into iterative releases of value to the customer.
- Designs software components and modules using appropriate modelling techniques following agreed software design standards, patterns and methodology. Creates and communicates multiple design views to identify and balance the concerns of all stakeholders of the software design. Identifies and evaluates alternative design options and trade-offs. Recommends designs which consider target environment, performance, security requirements and existing systems.
- Works together with the Tech Lead- Principal Architect to define the standards on code structure and quality we employ, and owns/reports on parts of that standard.
- Build and maintain efficient, reusable, and reliable code using best practices.
- Provides feedback to others on code structure and style, regularly reviewing other engineers’ code as a mechanism for learning and ensuring code quality within the codebase remains high.
- Provides and maintains technical documentation for new and existing solutions as a resource for colleagues within Product Engineering.
- Troubleshooting and debugging production issues and providing timely resolution of software defects.
- Contributes to all stages and iterations of the software development lifecycle. Adopts and adapts appropriate software development methods, tools and techniques. Measures and monitors applications of project/team standards for software construction including software security.
- Forge close partnerships with product managers, business analysts, and stakeholders.
- Stay up-to-date with the latest trends and technologies in web development.
Specific Skill based Deliverables:
- Designing, developing, and maintaining full stack applications using Node.js, React.js, TypeScript, and JavaScript to meet business requirements.
- Building efficient and reusable front-end systems and components in React.js with a focus on performance optimization.
- Writing server-side logic using Node.js and integrating user-facing elements using server-side rendering.
- Develop user interfaces with modern front-end technologies such as React.js, TypeScript, and JavaScript.
- Create and maintain scalable backend services using Node.js and MongoDB.
- Creating and maintaining databases, particularly MongoDB, and ensuring high performance, responsiveness, and scalability.
- Implementing automated testing platforms and unit tests using Cypress for front-end and back-end systems.
- Design and develop high-quality technical solutions using Terraform, AWS services, and best practices in Networking and IAM
- Managing infrastructure as code using Terraform for efficient provisioning and management of cloud resource
- Build and maintain scalable and secure AWS infrastructure utilizing Terraform, AWS IAM, API Gateway, Lambda, and S3 services
- Design, develop, and maintain scalable full stack applications utilizing AWS cloud services.
- Implement security and compliance best practices, particularly in AWS IAM to ensure secure access control and identity management.
- Leverage AWS API Gateway for building and managing secure, scalable APIs for applications.
- Develop serverless applications using AWS Lambda for efficient and cost-effective computing.
- Utilize AWS S3 for scalable storage solutions and integration with other AWS services
Qualifications & Skills:
- Bachelor's or Master's degree in Computer Science, Engineering, or a related field.
- Minimum of 5 years work experience as a Full Stack Software Engineer or similar role.
- Proven hands-on experience in developing and deploying web applications using technologies including Node.js, React.js, TypeScript, JavaScript, Cypress, MongoDB, Terraform and AWS.
- Experience in building highly performant applications with a micro-services architecture.
- In-depth understanding of AWS IAM best practices and security protocols.
- Hands-on experience with AWS API Gateway, AWS Lambda, and AWS S3.
- Strong understanding of software development principles, design patterns, and best practices.
- Expertise in integrating and consuming RESTful web services and APIs.
- Experience in building highly performant applications with a micro-services architecture.
- Experience with cloud platforms, particularly AWS, for building and deploying scalable applications. AWS certification(s) is a plus.
- Strong understanding and hands-on experience with Terraform for infrastructure as code
- Experience with managing cloud infrastructure
- Proficiency with version control systems such as Git, and CI/CD pipelines.
- Experience with assessing software security and potential risk factors
- Experience with incident response, disaster recovery and on-call processes
- Solid knowledge of database design, optimization, and performance tuning.
- Strong testing knowledge, understands what should be tested when and at what level to provide maximum efficiency.
- Working experience in a AGILE environment will be a plus.
Abilities & Competencies:
- Excellent communication and collaboration skills.
- Strategic thinking and problem-solving abilities.
- Ability to work effectively in a fast-paced environment and meet deadlines.
- Proven leadership and management skills with the ability to develop, communicate and inspire staff.
- Takes accountability and has a strong sense of ownership.
- Results oriented and a commitment to high quality customer service.
- Ability to lead a team/discipline to quickly resolve complex problems in the provision of Digital Services.
- Ability to work in an agile environment and adapt to changing requirements and collaborating effectively with distributed teams.