Software Engineer - Java
As a Software Engineer, you will be required to provide high quality technology solutions that address business needs for a trading system and back office functions for an international financial services company. You will need to perform design and development and research the various technology standards, incorporate and ensure adherence to the Banking standards. You will need to do Proof of Concepts, develop and code complex technology problems, mentor the junior developers on the team and support testing of the various modules or components.
You will work on existing platform, developing new functionality and fixing bugs. The current platform is developed with different Spring framework features ( IOD/APO/Integration/Batch/Remote), mybatis, JSF in a SOA Architecture.
You are a solutions-oriented, out-of-the-box thinker who frequently comes up with new and innovative ways of doing things. You will work together with other on your Agile team to solve technical problems, handle issues, and interface with other teams.
Working in a very collaborative environment, you will participate in all stages of applications development process. You are expected to work interdependently - collaborate, negotiate, make trade-offs, handle conflicts, etc. As you are expected to effectively interact with both, technical and non-technical personnel, good communication skills are imperative to success. People on agile teams need an exceptional ability to learn and apply that learning
• 7-10 years of Application Development experience
• Solid design, coding, testing and debugging skills
• Object Oriented Analysis & Design
• Development experience in: Java 1.7/1.8, J2SE, Spring Framework, Spring Integration, Spring Batch, ORM/JTA, Web Services
• Experience in XML technologies and various parsers like JAXB or JiBX
• Development backgroun in the Oracle PL/SQL
• Development experience with Hibernate/i-Batis
• Experience with testing framework (i.e. JUNIT, Mocks Framework, Fitnesse)
• Experience with JMS
• Experience of multithreaded systems
• Unix experience and be able to write shell scripts or debug them
• Proven ability to communicate technical concepts to a broad range of technical and non-technical staff.
• Strong research, investigation and evaluation skills. Takes personal initiative, conscientiousness and complete follow-through on the areas of responsibilities.
It is a plus if you bring one or more of these skills to the table:
• Java and/or Spring certifications
• Familiarity with advanced design patterns and advanced Java concepts
• TDD , Unit Test, Integration Test Artifacts
• Continuous integration methodology (CI/CD) and Automated testing tools is a big plus
• Experience designing Microservices architecture and NoSQL database is a plus
• Experience with Cloud technologies
• Experience with successful implementations of highly scalable and highly available systems in a multi-tier environment.
• Financial industry support experience is preferred. (Brokerage/banking is preferable)
• Experience writing Oracle stored procedures and tuning SQL statements, writing indexes
• Tuning Java applications and experience with running profilers and detecting and resolving various performance issues and memory leak issues
• Experience with Trading / compliance / portfolio management applications
• Experience with Agile methodologies