Job responsibilities
- Executes creative software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems
- Develops secure high-quality production code, and reviews and debugs code written by others
- Identifies opportunities to eliminate or automate remediation of recurring issues to improve overall operational stability of software applications and systems
- Leads evaluation sessions with external vendors, startups, and internal teams to drive outcomes-oriented probing of architectural designs, technical credentials, and applicability for use within existing systems and information architecture
- Leads communities of practice across Software Engineering to drive awareness and use of new and leading-edge technologies
- Own the delivery of value-add activities leading a scrum team (3-5 people) and be an active member governing the overall platform.
- Engineer a suite of performant, scalable and reusable RESTful micro-services and APIs using Python. Championing quality and owning the non-functional requirements.
- Have the freedom to act like an owner and ensure the health of the platform is maintained through initiatives such as a journey from private to public cloud (AWS) and our devops operating model.
- Collaborate with the team to form the sprints that will get us to the MVP and then finally the target state.
- Act as a Lead developer who will help set direction and best practice around automated testing, platform framework, SDLC as well as acting a point of contact for more junior developers to give them guidance on best practices.
- Collaborate with other backend developers to get involved with code reviews and building up our suite of microservices components to facilitate faster development.
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts and proficient advanced experience
- Hands-on practical experience delivering system design, application development, testing, and operational stability
- Advanced in Python programming language (5y+)
- Proficiency in automation and continuous delivery methods
- Proficient in all aspects of the Software Development Life Cycle
- Advanced understanding of agile methodologies such as CI/CD, Applicant Resiliency, and Security
- Experience building and maintaining a microservices architecture.
- Knowledge of the Python web frameworks (e.g. Flask, Tornado, Bottle) and OO databases (e.g. mongo-db)
- Experience in developing, debugging and automated testing (e.g. PyUnit) within a commercial setting
- Experience in leading an agile delivery team leveraging scrum, sprint planning, retrospectives and reporting progress to senior stakeholders.
- Experience collaborating with frontend technology teams in designing scalable and reusable RESTful APIs
Preferred qualifications, capabilities, and skills
- Exposure to python libraries such as pandas, scipy and numpy
- Exposure to python concurrency through python multiprocessing would be advantageous.
- Exposure to grid computing concepts would be advantageous.
- Working within Investment Bank / Finance Technology