Sr Software Engineer Low Latency
Summary
Designing and optimizing low-latency, high-throughput Java applications on Linux—focusing on architecture, multithreading, JVM tuning, and system-level profiling for an outstaff firm's risk-management clients.
Description :
This role engineers secure, scalable and reliable technology solutions, with minimal mentoring, to advance the client in the global marketplace and serve risk management needs of customers around the world.
Responsibilities :
- Focuses on Architecture and Solution efficiencies. Balances performance, capacity and reliability with core system functionality.
- Identifies potential opportunities for code optimization. Provides input for code reviews and helps with environment build deployments, release notes and build notices; Reviews code to proactively identify and mitigate potential issues and defects and helps to identify sources of defects as well as troubleshoots various forms of code.
- Writes optimized application modules and unit tests with minimal guidance. Understands low-level designs and how to incorporate into the larger application.
- Uses design tools to frequently share and communicate design ideas on larger systems. Comfortable using low level tools to examine the system (i.e. packet capture, hardware counters, etc).
- Utilizes knowledge of modern multi-processor architecture to tune the applications and systems for high throughput and low latency.
- Uses patterns frequently, contributing to best practice and process enhancements
Required Skills :
- Ability to evaluate the characteristics of algorithms and data structures for the given constraint
- Proficiency in Multi-threading , concurrent data structures, shared memory, asynchronization, JNI, NIO, Hashmap etc.
- Understands queue theory and various designs and implementations to enhance system performance.
- Experience working with networking protocols (UDP, TCP)
- Familiarity with redundancy and fault tolerance techniques
- Demonstrate the understanding of thread pinning, interrupts, isolating cores, jitters, numa node, TLB Cache's etc. will be an added value.
- Familiar with JVM internals and garbage collection tuning
- Advanced knowledge of Linux kernel/OS internals
Preferred Skills :
- Usage of EF_VI, JNI, On-load Solar Flare extension API's preferred
Required Skills :
- Ability to evaluate the characteristics of algorithms and data structures for the given constraint
- Proficiency in Multi-threading , concurrent data structures, shared memory, asynchronization, JNI, NIO, Hashmap etc.
- Understands queue theory and various designs and implementations to enhance system performance.
- Experience working with networking protocols (UDP, TCP)
- Familiarity with redundancy and fault tolerance techniques
- Demonstrate the understanding of thread pinning, interrupts, isolating cores, jitters, numa node, TLB Cache's etc. will be an added value.
- Familiar with JVM internals and garbage collection tuning
- Advanced knowledge of Linux kernel/OS internals