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
- 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 Core Java
- Strong experience in Object Oriented, RDBMS (Oracle), SQL, Spring, ORM (JPA/Hibernate) and Unix Scripts
- 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, Application Resiliency, and Security
- Demonstrated knowledge of software applications and technical processes within a technical discipline (e.g., cloud, artificial intelligence, machine learning, mobile, etc.)
Preferred qualifications, capabilities, and skills
- Experience in architecting and building secure, highly available, resilient, scalable systems leveraging clustering and load balancing of web/app servers and messaging systems (Kafka / MQ Series)
- Knowledge of container-based development, orchestration, microservices frameworks, and tools (Docker, Kubernetes, Spring Boot, Swagger)
- Knowledge of Reactive programming, i.e. Spring Flux
- Understanding of Agile methodology and leveraging SDLC tools to improve development and testing efficiency (JIRA, Jenkins, GIT, JUnit, Selenium, Lint)
- Experience in streaming/aggregation frameworks (Storm, Spark)
- Experience using NoSQL / BigData Stores (Cassandra, Elastic Search, Cloudera Stack or H-Base)
- Background in Banking and Payments domain