Job Summary
The Java Software Engineer will design, develop, and maintain secure, scalable, and resilient cloud-based microservices for a digital assets platform supporting the storage, trading, and servicing of digital assets. The role involves hands-on software development using Core Java, Spring Boot, REST APIs, asynchronous messaging, and SQL databases. The engineer will collaborate with technical leads, architects, and product management to deliver reliable solutions using modern software engineering practices, automated testing, containerization, and continuous integration and deployment.
Key Responsibilities
• Design, develop, test, and maintain product features using Core Java, Spring Boot, and modern software development practices.
• Build secure, scalable, and resilient cloud-based microservices in collaboration with technical leads and architects.
• Design and implement REST API clients and services to support communication between enterprise applications.
• Develop asynchronous messaging and service communication workflows using technologies such as Kafka, Amazon SNS, and Amazon SQS.
• Design, develop, and maintain SQL-based database solutions to support application data management.
• Write and maintain automated unit and integration tests using JUnit and Spring Boot testing frameworks.
• Package applications using container technologies such as Docker and support deployment to cloud environments, including AWS and EKS.
• Develop and maintain continuous integration pipelines and automated deployment processes using tools such as Jenkins.
• Apply microservices architecture principles and Twelve-Factor App practices to build reliable, maintainable applications.
• Design software capable of operating reliably in distributed and failure-prone environments.
• Participate in code reviews, design reviews, environment strategy discussions, and build and deployment pipeline improvements.
• Collaborate with product management to understand requirements, break down epics into user stories, and deliver solutions that meet customer expectations.
• Provide production support, including on-call support when required.
• Mentor junior software engineers and contribute to team knowledge sharing.
• Work effectively within Agile teams while independently managing assigned development tasks.
Required Qualifications
• Bachelor's degree in a relevant field preferred, with approximately 5 years of software engineering experience.
• Strong expertise in Core Java and frameworks such as Spring Boot.
• Proficiency in relational databases and SQL.
• Understanding of AWS or other cloud platforms and containerization technologies such as Docker and Amazon EKS.
• Experience with version control systems such as Git.
• Experience with asynchronous workers and resilient messaging services such as Kafka, Amazon SNS, and Amazon SQS.
• Understanding of microservices architecture and Twelve-Factor App principles.
• Experience developing reliable software for distributed environments.
• Experience with automated unit and integration testing using JUnit and Spring Boot testing frameworks.
• Experience building and deploying applications through continuous integration pipelines and automated deployment tools such as Jenkins.
• Strong analytical and critical-thinking skills, with the ability to develop end-to-end solutions.
• Strong communication, organizational, and multitasking skills.
• Ability to work independently and collaboratively within a small Agile team, with a strong focus on user needs.
• Willingness to learn new technologies and adopt modern development frameworks and practices.
Preferred Qualifications
• Experience developing cloud-based microservices for financial services or digital asset platforms.
• Experience with transaction processing, trading, clearing, custody, or settlement systems.
• Experience supporting centralized services that consume transaction data from multiple customer channels and process aggregated or individual transactions.