Lead Software Engineer (Python)
We are looking for a dedicated, enthusiastic, passionate lead software engineer to join our team as we strive to deliver excellence to our customers. You're a self-starter who will be part of an empowered agile team working on our portfolio of risk products.
You’ll be responsible for the analysis, definition, design, implementation, testing, maintenance and support of the Risk products, working individually or leading a small team of engineers. You’ll work closely with QA engineers to ensure that what we deliver is to a high standard.
Whilst your background will be in software development, your curiosity, desire to learn and passion for technology means you can get the job done. Quality is non-negotiable, so a good focus on code quality, unit testing and enabling automated testing is important. Mentoring junior members also forms part of the role, working alongside the team management to help further enhance the skills and capabilities of the team.
Main Responsibilities / Accountabilities:
* You will design, build and maintain efficient, reusable, reliable and secure code based on requirements or User Stories.
* Working within a multi-functional agile team, you'll develop enterprise software, adhering to company standards, software best practice guidelines, corporate policies and established software methodology.
* You will lead groups of engineers working with the scrum master, product owners and management to coordinate and deliver larger developments.
* Demonstrating a consistent focus on quality, you'll ensure that yourself and your team delivers reliable, robust software through the creation and execution of automated tests in conjunction with the team’s quality engineers.
* To help the teams develop and learn, you will review work of peers and more junior developers, providing advice and guidance to benefit the team.
* You will contribute to the creation of software designs, leading the design of components.
* Through agile retrospectives and reviews, you will inspect and adapt, finding innovative ways to make your team work more effectively.
* Through participation in refinement and planning sessions, you will work with other team members to analyse development requirements, provide design options and complexity estimates, and agree how to deliver the requirements.
* Actively participating in Scrum meetings, you will give timely status updates on areas for which you are responsible.
* Provide technical support to operations or other development teams.
* Create, review, and maintain all required documentation to ensure supportability and reuse.
* Assist with improvements to prevent problems, including problem resolution workflow.
* Participate in project planning sessions - with team members to analyse requirements, provide design options, and provide work breakdown and estimates of work.
* Actively participate in team and status meetings, providing updates for areas of individual responsibilities within projects to supervisor.
Key Relationships:
* Development Manager and Team Lead
* Scrum Master and members of the Scrum Team (Development and QA)
* Product Owner
Role Requirements:
* Experienced Software Engineer with excellent knowledge of Python and a willingness to cross train as required.
* Strong understanding of other languages and the ability to put that understanding into practice.
* Solid understanding of object-oriented programming.
* Familiar with various design patterns.
* Experience of unit testing.
* Knowledge of databases and SQL.
* Good understanding of security implications and secure coding.
* Proficient in using one of the popular Cloud technologies – if not familiar with AWS, must be willing to learn AWS fundamentals in a short space of time.
* Excellent communication skills, both verbal and written.
* Skill for writing clean, readable code and reusable components.
* Experienced in or a strong desire to work in a formal agile software development lifecycle.
* Understanding of JSON, HTML and XML.
* Proficient using source code management tools such as Git or SVN.
* Familiar with continuous build and integration.
* Self-starter.
Desired Skills/Experience Required:
* Experience with GitLab CI.
* Experience with RESTful interfaces.
* Knowledge of/Experience with service orientated architectures.
* Experience with Test Driven Development and / or Behaviour Driven Development.
Education/ Certifications:
* A good relevant degree is desirable, but experience and the right approach to work are just as important.
#J-18808-Ljbffr