Java Developer
Role details
Job location
Tech stack
Job description
In this role, you will have the opportunity to perform complex software design tasks and technical analysis on a highly performant, multi-threaded, and resilient system. You will act as a subject matter expert on our flagship desktop application, providing critical expertise on our installer, Java JRE updater, Java UI, and various backend modules., Perform product design and troubleshooting exercises of extremely high complexity, requiring extensive research and analysis.
Lead system design and specification development, program logic and flow-charting, testing, debugging, and documentation.
Make complex, high-level design choices to be utilized by the broader development teams.
Lead complex programming tasks, providing thorough reviews of various development initiatives and technical documentation.
Analyze complex technical problems and recommend highly effective, scalable solutions.
Act as a key contributor in client/technology interactions to drive the development of robust technology solutions.
Interface with Enterprise Architecture and Infrastructure teams on strategic designs and long-term initiatives.
Lead the troubleshooting of complex problems across both development and production environments, ensuring the timely and effective resolution of issues.
Requirements
Bachelor's degree in Computer Science or a related technical discipline.
1+ years of experience in Core Java and J2EE development (both client and server-side).
1+ years of experience with Object-Oriented Analysis and Design (OOA/OOD), distributed systems/software, real-time processing, relational database systems, and messaging systems.
Experience with Test-Driven Development (TDD).
Preferred Qualifications
Experience developing downloadable desktop applications.
Experience with concurrency, multi-threading, scaling, Java Garbage Collection, and performance tuning.
Strong understanding of data structures, algorithms, and design patterns (GoF).
Experience with Agile development methodologies.
Experience with rich UI frameworks such as AngularJS, jQuery, HTML5, Swing, JavaFX, or similar APIs.
Experience with application development frameworks like Spring, Hibernate, JSF, or similar.
Familiarity with Unix/Linux, Windows, and Mac operating systems.
Experience with build, deploy, and test automation tools (e.g., Ant, Gradle, Maven, Jenkins, TeamCity, JUnit).
Demonstrated experience working with core business logic within applications, as well as developing APIs and Frameworks.
Working knowledge of the finance and/or trading domain.
Excellent written and verbal communication skills.