Millennium logo

Software Engineer - Java

Millennium

RemoteFull timeMid levelPosted today
Apply with JobAssist

About the role

Overview
We are looking for an experienced Java Developer to support our Systematic Portfolio Managers. You will work on a strategic platform that handles order execution, positions/holdings, and related trading workflows. The environment is high-performance, latency-sensitive Java, focused on predictable low latency, high throughput, and scalability (not ultra–low-latency HFT).

Key Responsibilities

  • Design, develop, and maintain server-side Java services for trading and post-trade workflows.
  • Build and enhance distributed, scalable components for orders, executions, positions, and holdings.
  • Apply strong engineering practices around concurrency, performance, reliability, and failure handling.
  • Work closely with PMs, traders, and engineers to turn requirements into robust, testable solutions.
  • Participate in code reviews, design/architecture discussions, and engineering standards.
  • Use modern CI/CD and automated testing practices for safe, repeatable deployments.
  • Improve operability and observability (metrics, logging, tracing, alerting).

Required Skills

  • BA/BS in Computer Science or equivalent experience.
  • Strong knowledge of data structures, algorithms, and problem-solving.
  • 5+ years of server-side Java with solid concurrency experience.
  • Experience building high-performance, distributed, scalable systems in production.
  • Strong automated testing experience in Java (e.g., JUnit) and testable system design.
  • Experience with modern CI/CD (automated builds/tests, quality gates, deployment automation).
  • Knowledge/experience with Kafka, Spring Boot, JUnit, Redis.
  • Working knowledge of Unix/Linux.
  • Financial industry experience (buy-side or sell-side) in trading/execution/order workflows.

Strongly Desired

  • Buy-side experience (hedge fund, asset manager, prop, systematic platform teams).
  • Experience with OMS and execution pipelines (order lifecycle, routing, fills, allocations, bookings).
  • Experience writing high-performance, GC-aware Java for predictable latency.
  • Some C/C++ experience focused on performance and memory control.
  • Experience with performance profiling tools (Java Flight Recorder/JMC, async-profiler, YourKit).
  • Python or shell scripting for tooling and automation.

What We Look For In Culture

  • Self-starter with strong ownership and follow-through.
  • Clear, open communication and strong collaboration; prioritizes team success.
  • Demonstrated desire to learn and improve, raising the bar on performance, reliability, and engineering quality.

Millions of jobs, with real people getting hired every day

20,000+
New jobs added daily
7,000,000+
Verified job listings
500,000+
Tailored applications submitted
FAQ

Questions, answered

Click "Apply with JobAssist" – we tailor your resume and application to this role and submit it for your approval.

Yes. This role at Millennium was screened before publishing – we confirmed the employer before listing it.

The employer didn't disclose a salary range for this listing. JobAssist shows pay whenever it's available.

This position can be done from anywhere, with no in-office requirement.

Yes – every application is tailored from your profile and this job's requirements, and you can review and edit before it's sent.