We are looking for a Full Stack Engineer to join our Portfolio Management Technology team. You will build and maintain mission-critical systems that power financial advisory workflows, real-time portfolio management, and event-driven data pipelines. The role is backend-heavy — you'll spend the majority of your time building Java services using MongoDB — but you'll also contribute to Angular front-end applications when needed. You should also be proficient in understanding and evaluating AI-assisted model development workflows (GitHub Copilot, Claude Code, Codex) including the creation and use of agentic skills, and have a foundational understanding of generative AI engineering concepts such as vector stores and Retrieval-Augmented Generation (RAG) for potential future use cases.
- Design, develop, and maintain Java 11+ services using Gradle, Guice and Spring Boot across a large-scale codebase
- Build and extend event-driven pipeline services (positions, cash management, asset allocation, alerts, workflows)
- Work with MongoDB extensively — schema design, query optimization, and data modelling
- Contribute to real-time data infrastructure including WebSocket-based systems (RxJava, Jetty, Jersey)
- Pick up Angular front-end tasks as needed — feature work, bug fixes, and integration with backend APIs using AG-Grid, NgRx, and RxJS
- Write and maintain comprehensive unit and integration tests (JUnit, Mockito, Jest) targeting high code coverage thresholds
- Participate in CI/CD pipeline maintenance using GitLab CI, Conduit, and Gradle-based build tooling
- Collaborate on deployment and infrastructure-as-code for Kubernetes-hosted services
Core Competencies
- Object-Oriented Programming — Strong understanding of OOP principles (encapsulation, inheritance, polymorphism, abstraction) with the ability to design clean, maintainable class hierarchies and apply SOLID principles in Java codebases
- Microservices Architecture — Deep understanding of microservices design patterns including service decomposition, inter-service communication, fault tolerance, and independent deployability
- Technical Architecture — Strong grasp of the technical architecture of modern web applications and web technologies, including RESTful API design (Jersey/JAX-RS), WebSocket-based real-time communication, HTTP lifecycle, client-server patterns, and scalable distributed systems
- Agile Methodologies — Experience working in Agile/Scrum development environments including sprint planning, standups, retrospectives, backlog grooming, and iterative delivery cycles
- Generative AI Engineering — Proficiency in AI-assisted development workflows (GitHub Copilot, Claude Code) including the creation and use of Skills, with a foundational understanding of generative AI concepts such as vector stores and Retrieval-Augmented Generation (RAG) for potential future use cases
What We're Looking For
Required (3–5 years of experience across the following):
- Java 11+ — strong proficiency with Spring Boot, REST APIs (Jersey/JAX-RS), and dependency injection (Guice or Spring)
- MongoDB — hands-on experience with document modeling, aggregation pipelines, and an ODM framework
- Event-driven systems — familiarity with event buses, message-driven processing, pub/sub patterns or reactive programming experience
- RESTful & WebSocket APIs — designing, building, and consuming REST endpoints and real-time WebSocket channels
- Testing discipline — unit testing (JUnit, Mockito), code coverage tooling (JaCoCo), and integration testing
- Git & CI/CD — comfortable with GitLab workflows, automated builds, and deployment pipelines
Nice to Have:
- Angular — ability to read, debug, and contribute to TypeScript/Angular front-end codebases (NX monorepo experience a plus)
- Kubernetes & Docker — container-based deployment and orchestration
- Node.js / TypeScript — for CLI tooling, developer experience projects, or VS Code extension development
- Financial services domain knowledge — portfolio management, trading, or wealth management technology
- Monitoring & observability — Micrometer, Prometheus, SonarQube, or similar tools