Job description
Responsibilities include, but are not limited to:
- Owns all technical aspects of software development for assigned applications. Performs hands-on architecture, design, and development of systems.
- Functions as senior member of an agile team and helps drive consistent development practices wrt tools, common components, and documentation. Typically spends 80% of time writing code and testing, and remainder of time collaborating with stakeholders through ongoing product/platform releases.
- Develops deep understanding of tie-ins with other Amex systems and platforms within the supported domains. Writes code and unit tests, works on API specs, automation, and conducts code reviews and testing. Performs ongoing refactoring of code, utilizes visualization and other techniques to fast-track concepts, and deliver continuous improvement - Identifies opportunities to adopt innovative technologies.
- Provides continuous support for ongoing application availability. Works closely with product owners on blueprints and annual planning of feature sets that impact multiple platforms and products. Works with product owners to prioritize features for ongoing sprints and managing a list of technical requirements based on industry trends, new technologies, known defects, and issues.
Qualification:
- Bachelor's degree in computer science, computer engineering, other technical discipline, or equivalent work experience
- 9+ years of software development experience
- 4-6 years of experience leading teams of engineers
- Demonstrated experience with Agile or other rapid application development methods
- Demonstrated experience with object-oriented design and coding
- Demonstrated experience on these core technical skills (Mandatory)
- Core Java, Spring Framework, Java EE
- Hadoop Ecosystem (HBase, Hive, MapReduce, HDFS, Pig, Sqoop etc)
- Spark
- Relational Database (PostGreS / MySQL / DB2 etc)
- Data Serialization techniques (Avro)
- Cloud development (Micro-services)
- Parallel & distributed (multi-tiered) systems
- Application design, software development and automated testing
- Demonstrated experience on these additional technical skills (Nice to Have)
- Unix / Shell scripting
- Python / Scala
- Message Queuing, Stream processing (Kafka)
- Elastic Search
- AJAX tools/ Frameworks.
- Web services , open API development, and REST concepts
- Experience with implementing integrated automated release management using tools/technologies/frameworks like Maven, Git, code/security review tools, Jenkins, Automated testing and Junit.
We back our colleagues and their loved ones with benefits and programs that support their holistic well-being. That means we prioritize their physical, financial, and mental health through each stage of life. Benefits include: