Are excited about technology, stays up to date with and brings in new technology understands/participates in CNCF workgroups, developer mailing lists. In short, Be curious
Love dealing with fast pace, changing needs, limited resources. Action bias.
Love freedom to execute and not expect every task to be defined ahead of time.
Have an Open source first model for building. Contribute, give back. Strive for excellence.
Understand and are excited 20% projects. You aim for moonshots but can get ground to deliver projects.
Coach, mentor other developers. You improve the team. You participate in American Express Technology Guilds to network with other developers.
Are maniacal about Developer Experience.
Disagree respectfully but commit. Bring people along. Articulate and drive change
You are a manager of one .
You know:
Hands on Java Programming experience with core Java constructs - Collections, Exceptions, Streams, and Lambdas
Hands on experience with Async programming constructs of Java- Multithreading, Executors, Futures, CompletableFutures or Kotlin-Coroutines
Good to have knowledge on Virtual Threads and new features of Java 21+.
Experience working with any of the Java frameworks on Reactive Stack - Vert.x (strong preference) and optionally Spring Reactive, RxJava, Netty, or Akka
Hands on experience working with microservices / APIs - Rest (required), SOAP, gRPC
Hands on experience with build tools -- Gradle (preferred), Maven (minimum)
Hands on experience using Unit Testing Tools - Junit (minimum), Cucumber or other equivalents
Hands on experience in high scale system design, performance tuning, problem diagnosis and resolution
Hands on experience working with git or equivalent source code management systems - resolve merge conflicts etc.
Good to have knowledge on Java Perf tooling - Analyzing heap dumps, Thread dumps, JConsole, JMC
Good to have knowledge on micro benchmarking - JMH harnesses
Good to have knowledge on messaging systems using Java client - Kafka, RabbitMQ etc.
System design and scaling concepts, Ability to break down complex/high level ideas into concrete design and provide proofs of concept.
The 4 pillars of documentation. You can use C4, PlantUML, draw.io, one of (markdown, asciidoc, rst), ADR (Architecture Decision Records) to express your ideas.
Optional: Familiarity with modern system development using Golang or Rust and understanding of Web Assembly (WASM)
Qualifications:
10+ years of software development experience in a professional environment and/or comparable experience such as: - Wide breath of engineering experience.
A minimum of 6 years of experience with Java, Kotlin or similar Object Oriented Programming Language in a professional environment required.
3+ years required with at least one other modern programming language such as Node.js/JavaScript, Python, GO, Rust.
Hands-on expertise with application design, software development, and automated testing required.
Hands-on experience in development of highly scalable, high performance backend applications using a variety of technologies, with specific expertise in Enterprise Java (including advanced design pattern common libraries) and cloud native technologies required.
Experience in building enterprise-grade APIs using state-of-the-art techniques and best practices (GraphQL ,REST, JSON, XML, etc.) required.
Experience with relational databases, including designing complex schemas and queries required.
Experience developing within distributed systems or a microservice based architecture required.
Experience with Cloud Native system design required.
Familiarity with Containers and Container Orchestration tools such as Docker , Docker Swarm , Kubernetes required.
Familiarity with Data Centric application design, Event Driven Systems, Kafka, Big Data ecosystem , Data pipelines, Stream processing systems etc. is required.
Strong verbal and written communication skills for documenting workflows, tools, or complex areas of a codebase.
Ability to thrive in a fast-paced environment and multi-task efficiently.
Strong analytical and troubleshooting skills.
Validated experience leading teams of engineers.
Experience using database systems like Couchbase, Cassandra, Redis etc. in a high performance and resilient configurations is a plus.
Experience working with Public Clouds (AWS,GCP,Azure) is a plus.
Bachelor s Degree in computer science, computer science engineering, or related experience required; advanced degree preferred.