Senior Software Engineer I
Summary
Designs, develops, and maintains scalable fintech enterprise platforms for American Express, ensuring 24/7 reliability, security, and alignment with business goals using Java/J2EE, Spring Boot, and cloud technologies.
The Enterprise Technology Services organization partners with every part of the American Express business to power the company’s growth and innovation with trust and efficiency and drive competitive differentiation with speed. We support the delivery and operations of technology, digital, and data capabilities, platforms, and services globally. Specifically, our team is responsible for the company’s technology engineering, architecture, and infrastructure, providing 24x7 support to ensure an uninterrupted, high-quality experience for customers and colleagues. We also provide product management for core enterprise platforms, and lead technology risk and information security, enterprise data governance and platforms, digital product and design, and enterprise AI platforms on behalf of the company.
The Senior Software Engineer is responsible for designing, developing, testing, and delivering scalable software solutions that support business objectives. This role requires strong technical expertise, product understanding, and cross-functional collaboration to translate business needs into high-quality engineering outcomes. The Senior Software Engineer is expected to contribute independently, influence technical decisions, support end-to-end engineering delivery, and ensure solutions are reliable, maintainable, secure, and aligned with product and business priorities.
- Lead end-to-end software engineering activities, including solution design, development, testing, deployment, production support, and continuous enhancement.
- Analyze business objectives, product requirements, technical constraints, and user needs to define practical and scalable engineering solutions.
- Partner with Product Owners, Architects, Analytics, Technology, Operations, and business stakeholders to clarify requirements, resolve dependencies, and support delivery planning.
- Create and maintain technical documentation, design notes, implementation plans, test considerations, and operational readiness materials.
- Develop clean, secure, maintainable, and efficient code using approved engineering standards, reusable patterns, and modern software development practices.
- Perform code reviews, participate in design discussions, and contribute to technical decision-making to improve quality, reliability, and maintainability.
- Support backlog refinement by translating requirements into features, user stories, acceptance criteria, technical tasks, and delivery estimates.
- Identify technical risks, delivery blockers, platform dependencies, and integration challenges early, and drive mitigation actions with relevant teams.
- Implement and promote automated testing, CI/CD practices, version control discipline, and release readiness checks to improve delivery efficiency.
- Monitor application performance, investigate defects or incidents, support root-cause analysis, and implement corrective or preventive improvements.
- Research relevant technology, product, platform, security, regulatory, and market developments to identify opportunities for modernization or product improvement.
- Prepare technical analysis, status updates, solution walkthroughs, and leadership-ready materials for internal reviews, governance forums, and stakeholder discussions.
- Mentor junior engineers through code reviews, design guidance, technical coaching, and knowledge-sharing sessions.
- Contribute to continuous improvement by identifying opportunities to simplify processes, reduce manual effort, improve engineering productivity, and enhance delivery predictability.
- 10+ years of professional software development experience or comparable hands-on engineering experience.
- Bachelor’s degree in Computer Science, Computer Engineering, or a related field; advanced degree preferred.
- Strong foundation in software engineering, application architecture, object-oriented programming, data structures, algorithms, APIs, and distributed systems.
- Hands-on experience with Java/J2EE, Spring Boot, Hibernate, SQL, microservices, REST APIs, GitHub, and API testing tools such as Postman.
- Working knowledge of XML, SOAP, JSON, web services, relational databases, NoSQL databases, multi-threaded programming, and integration patterns.
- Experience with CI/CD tools and engineering platforms such as Jenkins, Maven, SOAPUI, JMeter, OpenShift, Docker, and cloud platforms such as AWS, GCP, or Azure.
- Experience with BPM or workflow platforms such as Pega, Camunda, or JBPM is preferred.
- Understanding of secure coding practices, software quality controls, application monitoring, troubleshooting, and production support processes.
- Strong Agile delivery experience, including Scrum or Kanban ceremonies, backlog refinement, user story definition, estimation, sprint planning, and feature prioritization.
- Ability to analyze complex issues, break down ambiguous requirements, evaluate solution options, and recommend practical engineering approaches.
- Strong communication skills with the ability to explain technical concepts clearly to product teams, business partners, architects, engineering teams, and leadership stakeholders.
- Experience delivering enterprise-scale applications in regulated, high-availability, or customer-facing environments is preferred.
- Exposure to modernization initiatives, cloud migration, API-led integration, automation, process improvement, or platform simplification programs is preferred.
- Additional exposure to HTML, CSS, JavaScript frameworks, React, Node.js, .NET, Python, ML, OCR, Hive, or related technologies is an advantage.