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
- Works directly with business, quant, and technology teams to articulate new technology requirements and solve business problems
- Collaborates with other members of a globally distributed team to brainstorm new ideas/solutions, and provide mentoring and technical expertise to the team
- Develops specific enhancements and/or build new solutions to fulfill business objectives related to new business requirements
- Provides end-to-end ownership of feature deliveries through the full SDLC process, including requirements gathering, development, unit and integration testing, packaging, deployment, and support
- Confirms technology solutions meet business and client requirements while ensuring they are robust and supportable
- Documents release procedures and support notes for deliverables to enable proper support by our production management groups
- Provides 3rdLevel production support on a rotational basis; Analyze issues observed in production, provide detailed analysis and recommendations to production management groups, and identify opportunities to improve the production system.
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts and 5+ years of applied experience
- Hands-on practical experience delivering system design, application development, testing, and operational stability
- Expertise in Java Core concepts, including object-oriented design, memory management, multi-threading/concurrency, and new language features up to Java 17
- Strong experience with Java technologies/frameworks such as Spring/Spring Boot, Spring JPA/Hibernate, REST based services, etc
- Proficiency with JVM performance analysis, including profiling, heap dump analysis, thread dump analysis, GC tuning, etc.
- Experience designing and implementing scalable Microservice architectures with high resiliency capabilities
- Proficiency in Unix/Linux environments, ability to navigate the system, investigate processes and logs, analyze system performance using tools such as Dynatrace, etc.
- Experience with Databases – relational as well as No-SQL - Sybase, Oracle, Mongo DB
- Experience with Messaging Middleware platforms – Kafka / RabbitMQ
- Experience with full development lifecycle and tools, including Git/Bitbucket, Jira, Jenkins, Gradle, Maven.
- Experience with Test-Driven Development (TDD) using tools such as JUnit and mocking frameworks.
Preferred qualifications, capabilities, and skills
- Exposure to cloud compute platforms, such as AWS
- Knowledge of the financial services industry and their IT systems