DescriptionWe have an exciting and rewarding opportunity for you to take your software engineering career to the next level.
As a Android Lead Software Engineer at JPMorgan Chase within Digital Payments, you serve as a seasoned member of an agile team to design and deliver trusted market-leading technology products in a secure, stable, and scalable way. You are responsible for carrying out critical technology solutions across multiple technical areas within various business functions in support of the firm’s business objectives. JPMorgan Chase has 50 million users on it’s mobile app across the globe. You will join an inspiring and curious team of technologists dedicated to improving the design, analytics, development, coding, testing, and application programming that goes into creating high-quality software and new products.
Job responsibilities
- Executes software solutions, design, development, and technical troubleshooting with ability to think beyond routine or conventional approaches to build solutions or break down technical problems
- Creates secure and high-quality production code and maintains algorithms that run synchronously with appropriate systems
- Produces architecture and design artifacts for complex applications while being accountable for ensuring design constraints are met by software code development
- Gathers, analyzes, synthesizes, and develops visualizations and reporting from large, diverse data sets in service of continuous improvement of software applications and systems
- Proactively identifies hidden problems and patterns in data and uses these insights to drive improvements to coding hygiene and system architecture
- Contributes to software engineering communities of practice and events that explore new and emerging technologies
- Executes standard software solutions, design, development, and technical troubleshooting
- Writes secure and high-quality code using Java, MVVM, Dagger, RxJava, and Kotlin
- Designs, develops, codes, and troubleshoots with consideration of upstream and downstream systems and technical implications
- Learns and applies system processes, methodologies, and skills for the development of secure, stable code and systems
- Adds to team culture of diversity, equity, inclusion, and respect
Required qualifications, capabilities, and skills
- Formal training or certification on software engineering concepts and 3+ years applied experience
- Hands-on practical experience in system design, application development, testing, and operational stability
- Proficient in coding in one or more languages (Kotlin, Java)
- Experience in developing, debugging, and maintaining code in a large corporate environment with one or more modern programming languages and database querying languages
- Overall knowledge of the Software Development Life Cycle
- Solid understanding of agile methodologies such as CI/CD, Applicant Resiliency, and Security
- Experience working with Restful API integration
- Experience working with RxJava, LiveData, or State flows
- Experience in Unit testing libraries like Mockito, JUnit, Gherkin scripts for UI Test Automation.
- Strong understanding of java and android ecosystem and
- all mobile UI fundamentals, from layout to animations
- Understanding of SOLID principles and architectural patterns such as MVP, MVI and MVVM
- Experience with data injection tools, such as Dagger, Hilt, Koin, etc
Preferred qualifications, capabilities, and skills
- Familiarity with Agile development including daily scrum and weekly iteration reviews and planning
- Experience with Unit Testing frameworks
- Experience with Android jetpack, Kotlin Coroutines