Senior Software Engineer
Required to handle all facets of the system development and support for Algoteq proprietary and Clients’ products including but not limited to:
- High-performance system design and architecture
- Requirement analysis and specifications
- Automatic unit, integration, performance testing and statistics gathering
- Detailed technical documentation
- Product training and mentoring
- Regular status reporting to the immediate line manager, Algoteq management and nominated Client contacts
- Research and innovation
- Along with the primary development team, design, build and maintain Algoteq technology and software development infrastructure.
- Actively collaborate with all members of the immediate development and wider Algoteq team and contribute to their growth and professional development of their members.
We are looking for a smart, creative and passionate individual who is keen to push the boundaries, has a vision and skills to build awesome cutting-edge systems and help our clients grow.
The position is based in Sydney, Australia. It is a Senior Software Engineer role with very good growth prospects.
The candidate is expected to have sound knowledge of Java in the following areas: JVM ergonomics, JVM design, GC, JIT, interfaces and classes, closures, exception handling, serialisation, multi-threading, Reflection API, etc.
We expect deep understanding of and experience in the software design and architecture, the GoF, multi-threading patterns, networking patterns, HA patterns, distributed computing, algorithms and complexity. Experience in writing languages (general purpose and DSL), implementing interpreters, compilers, VM’s, operating systems and device drivers is a major plus.
We expect advanced knowledge of concurrency and multi-threading that stretches beyond Java. The candidate should be capable of implementing a bespoke multi-tasking solution (e.g. an OS scheduler) supporting cooperative, preemptive multi-tasking or a combination of both.
Understanding of fast IPC patterns and hands-on experience are greatly appreciated.
Extensive experience in Linux/Unix OS is essential.
The candidate is expected to demonstrate knowledge in financial mathematics, experience in the financial markets, problem solving abilities and excellent communication skills.