Design and implement robust software solutions for the bank’s trading systems using core Java (versions vary from team to team, and include 8, 17 and 21).
Understand, develop, and improve the subsystems used by other teams in the trading platform.
Create thorough test cases to ensure software stability and reliability.
Collaborate with operations teams regarding building new features and improving existing functionality.
Support production issues, including root-cause analysis and diagnosis.
Our requirements
Current Java programming experience, with a strong understanding of programming concepts, including algorithms, complexity, and multi-threading, and Java’s language capabilities and standard libraries.
Good knowledge of the data structures: familiarity with the Java collections framework, depth of understanding of the commonly used data structures, intuition on what to use when.
Experience building distributed systems based on event-driven architectures.
Strong analytical and problem-solving skills, to effectively diagnose production performance issues measured in microseconds.
Open mind, curiosity, and a strong desire to learn new technologies and business domains.
Ability to clearly explain non-trivial systems and algorithms.
Ability to follow and understand technical conversations.
Know when and how to ask questions that speed up learning.
Ability to align your working schedule to US Eastern business hours.
Optional
Experience with financial markets and trading systems.
Knowledge of AWS systems.
Experience with Spring boot (some teams).
Experience working remotely with North American firms.
A computer science degree from a top school.
What we offer
Work that matters in the financial domain: Work on a trading system at an established financial institution, processing millions of transactions daily.
Professional growth: Collaborate with smart, highly capable developers in a supportive and challenging environment.
Direct collaboration: You will work directly with the client team in North America and in Europe.
1st-tier work: This is not a technical support or legacy maintenance role. The system is functional and is actively being built and you will take part in updating it. The people who built the system are still part of the team.
Long-term commitment: This is not a fixed-scope or fixed-term outsourcing role; we value people who want to grow and contribute long-term.
Flexibility & remote work:** Fully remote position with increasing schedule flexibility post-onboarding.
Competitive Compensation: Above-average pay and ample time-off options.