Job Description
Description for Internal Candidates
You’re ready to gain the skills and experience needed to grow within your role and advance your career — and we have the perfect software engineering opportunity for you.
As a Software Engineer II at JPMorgan Chase within the Consumer and Community Banking – Tech (Mobile Channels) you are part of an agile team that works to enhance, design, and deliver the software components of the firm’s state-of-the-art technology products in a secure, stable, and scalable way. As an emerging member of a software engineering team, you execute software solutions through the design, development, and technical troubleshooting of multiple components within a technical product, application, or system, while gaining the skills and experience needed to grow within your role.
Job Responsibilities
- Feature Implementation: Develop and maintain code for new features, user interfaces, and application functionalities, following the guidance of senior developers.
- Bug Fixing: Identify and resolve bugs in existing code to enhance app stability and performance.
- Code Reviews: Engage in peer code reviews to elevate code quality and disseminate knowledge.
- Agile Collaboration: Work effectively within a Scrum Team, with a solid understanding of agile processes and ceremonies.
- Testing: Write unit tests to ensure code stability and functionality. Collaborate with QA engineers to thoroughly test features and address bugs before release.
- Best Practices: Adhere to industry best practices, including clean coding, architectural patterns, and code optimization techniques.
- Version Control: Regularly commit code to version control systems like Git and collaborate on feature branches.
- CI/CD Maintenance: Assist in maintaining Continuous Integration/Continuous Deployment (CI/CD) pipelines for app builds and testing.
Required Qualifications, Capabilities, And Skills
- Formal training or certification on software engineering concepts and 5+ years applied experience
- Experience in Swift: Strong knowledge of Swift, Apple's primary programming language for iOS development.
- Knowledge of Objective-C: Understanding of Objective-C for maintaining and updating legacy projects.
- Experience with Xcode: Proficient in using Xcode, Apple’s integrated development environment (IDE) for iOS applications.
- Good Understanding of iOS Frameworks: Familiarity with essential iOS frameworks.
- Experience with RESTful APIs: Skilled in consuming RESTful APIs to connect iOS applications with backend services.
- Debugging and Troubleshooting: Proficient in using Xcode debugging tools, analyzing crash logs, and diagnosing performance issues.
- Logical Thinking: Ability to decompose problems into smaller, manageable parts and address them systematically.
- iOS App Lifecycle: Knowledge of app states (foreground, background, suspended) and memory management principles.
- Apple Human Interface Guidelines: Familiarity with Apple's guidelines for designing user-friendly and intuitive apps.