Pearson is seeking a highly skilled and experienced Senior Software Engineer to join our team. In this role, you will be responsible for developing and maintaining top-notch software applications within a cloud-based environment. You'll lead a team of engineers, provide technical guidance, and drive the adoption of industry best practices to ensure the highest quality, security, and performance of our applications.
Responsibilities
- Develop and maintain top-notch software applications built on a cloud-based environment.
- Design applications by adapting proven industry best practices alongside R&D; objectives.
- Lead a team of engineers by providing technical guidance and product roadmap assurance.
- Raise the bar on application & infrastructure code quality.
- Strengthen application and platform security by adopting security best practices.
- Ensure Compatibility and Accessibility conformity along with various Non-Functional Requirements throughout the application lifecycle.
- Automate functional & other quality tests at different layers of the application to uncover issues as early as possible.
- Improve applications ability to continuously integrate & deploy to facilitate frequent and smaller releases with no customer impact.
- Actively monitor and resolve issues promptly.
- Monitor various performance indicators of the applications and make continuous improvements and optimizations.
Requirements
- Education: A Bachelor's degree in Software Engineering, Computing, or a related field.
- Experience: Minimum of 5 years of experience in Software Engineering.
- An up-to-date knowledge on industry trends & new developments in programming, application development, and lifecycle management.
- Robust systems designing skills, understanding of various design patterns, and where/how to use them in solutioning.
- A passion for solving problems with innovative & practical solutions.
- Strong analytical and reasoning skills with the ability to visualize the outcomes.
- Thorough knowledge of algorithms & data structures.
- Proficiency in at least two high-level programming languages such as Java, C#, Python, and the ability to quickly adopt new languages & techniques.
- Ability to craft quality code and automate various types of tests on application components.
- Proficiency in monitoring applications, troubleshooting, and fixing application issues.
- Thorough knowledge of the Non-Functional Requirements of applications such as Security, Accessibility, Compatibility, Observability & Availability.
- Working knowledge of continuous integration and deployment.