The Interface Applications team is looking for a Java/C++ Engineer to extend the development overall effort on its product portfolio.
You will be part of a dynamic software development team environment where your professional skills in Java and C++ will be crucial to the delivery of mission critical financial software to the global financial industry following structured development approaches such a waterfall or agile methodologies.
Under the guidance of a local development manager, you will assist with the analysis of requirements and the development activities of medium to high complexity related to software components of the Alliance Portfolio products, either new modules or extending existing ones. Given the mission critical nature of our business, strong emphasis is placed on quality, security, availability, resiliency, scalability, performance, and system resources consumption. It is expected that suitable candidates adhere to a structured development environment and will actively contribute to delivering software to the quality expectations of our customers.
Your responsibilities under the guidance of a more senior team member, will be to
Design, develop, integrate third party components, test, install and support programs/systems.
Analyse detailed system factors: input/output requirements, information flow, hardware/software requirements, Kernel settings, etc
Evaluate and recommend technical feasibility and effort estimates of the proposed solutions.
Participate in the definition, implementation and integration of software components in collaboration with third party software providers.
Provide technical assistance to colleagues and assist in resolving problems reported by other colleagues. Develop and maintain technical documentation, operational procedures and prepare and give presentations to customers on systems.
Supporting the delivered software and being part of a 'Center of Expertise' problem solving team.
Master or Bachelor degree in Computer Science or equivalent.
2 to 5 years of experience within a development environment.
Professional knowledge and expertise
The ideal candidate should have had relevant exposure to the development of highly scalable, resilient and secure software.
Essential Technical skills
OO programming techniques, Design Patterns
Java development skills (garbage collection algorithms, multi-processing, multi-threading, JUnit) or C/C++ development skills (memory management, multi-processing, multi-threading and related C/C++ compilers, linkers, debuggers, profilers)
Exposure to various OS platforms: Windows, UNIX (Oracle Solaris, AIX, HPUX), Linux (Red Hat)
Other Technical skills (knowledge in the following domains is an asset; training program will be provided to complement the candidate expertise when needed)
Network protocols: TCP/IP, SSL/TLS, HTTP/S
Relational Database (Oracle), SQL, JDBC
Software development environments and tools: Configuration Management (eg: ClearCase, Git, ), Integrated Development Environment (Eclipse, IntelliJ), Change Management.
Performance tuning on various OS platforms: Windows, Linux (Red Hat), UNIX (Oracle Solaris, AIX).
Additional Technical skills (knowledge in the following domains is an additional asset; specific training program will be provided to complement the candidate expertise when needed)
Communication Middleware: IBM MQ
Integration Middleware: Apache Karaf, Apache Camel
Security technologies: PKI, HMAC, AES, SSL, HSM
Familiarity with development and integration using Interfaces products for InterAct, FileAct and Browse is a strong asset.
Adaptability and responsiveness to change
Take accountability for delivering results
Strong communication skills (both written and oral)
Planning and organising
Continuous Improvements mindset