The Java Engineer will work on complex and challenging projects aimed at driving transformative change for our top-tier Financial Services clients. Operating in an Agile environment, the Java Engineer will have strong server-side experience to work on next-generation financial systems.
Responsibilities:
Build distributed systems that leverage actor-based concurrency, reactive programming, distributed in-memory data grids, messaging that goes beyond plain JMS.
Hit the ground running with the typical Java or Scala JVM ecosystem stack (Spring and its subprojects, Guice, Guava, Maven, Hibernate, Jetty, etc.)
Retool continuously as the technology landscape changes every few years.
Be able to pick up other technologies along the whole development stack, including front-end and other non-JVM ecosystems.
Work with our clients in iterative, self-organizing project-based engagements.
Have the desire to collaborate, and like sharing and learning from your colleagues.
Have a deep understanding of multithreading and real-time software architecture.
Have an abiding interest in and competence for solving real-world business problems.
Be determined to succeed despite obstacles and challenges, as well as a positive attitude favoring achievement of goals over open-ended investigation.
Required Skills and Experience:
5+ years of recent hands-on experience in designing and coding complex, enterprise, commercial-grade applications in core, server-side Java, ideally Java 8+
Experience building RESTful Web Services.
Test-driven development, which includes Unit and End-to-End Testing
Experience with Agile software development (Scrum, Kanban or derivatives).
Cloud development experience (Azure or AWS preferred).
Experience with continuous integration and deployment approaches and tools.
Bachelor or Master degree in Computer Science, Engineering, Physics, Math, or relevant related work experience.
Experience with, knowledge of, or strong demonstrated interest in, global financial markets and financial products.