Functional Software Engineer
Quick Summary
This position is listed on behalf of a partner company, who manages all applications and next steps. Our partner is looking for a Functional Software Engineer based in Canada.
Join a remote-first engineering team building sophisticated production software for capital markets and other highly regulated industries. In this role, you’ll apply functional programming principles to design, develop, test, and maintain reliable, maintainable software that solves complex technical challenges. Your projects may span backend systems, domain modelling, distributed systems, financial infrastructure, blockchain applications, and developer tooling. You’ll collaborate with experienced engineers, technical leaders, and client stakeholders to translate demanding requirements into elegant, robust solutions. The team values strong engineering fundamentals, precise reasoning, thoughtful architecture, and clear communication over familiarity with every technology. This is an opportunity to deepen your expertise, explore new technical domains, and contribute to the next generation of financial market infrastructure in a collaborative, distributed environment.
-
Design, develop, test, and maintain production-quality software using functional programming principles and sound engineering practices.
-
Build clear, composable, and maintainable solutions to complex software engineering problems.
-
Apply strong type systems, domain modelling, abstraction, and appropriate functional design patterns to improve software correctness and reliability.
-
Collaborate with engineers, technical leads, and client stakeholders to understand business and technical requirements and deliver effective solutions.
-
Contribute to system design and architecture, balancing correctness, simplicity, performance, and long-term maintainability.
-
Develop automated tests and apply appropriate validation techniques to ensure software behaves as expected.
-
Participate in code reviews, share technical knowledge, and help establish and maintain engineering standards.
-
Investigate, debug, and resolve complex technical issues across existing applications and systems.
-
Communicate technical decisions, architectural choices, and trade-offs clearly to both technical and non-technical stakeholders.
-
Adapt to different client environments, codebases, programming languages, and technical challenges.
-
Contribute to continuous improvement in engineering practices, development tools, and software delivery processes.
-
Take ownership of assigned work, identify risks early, challenge assumptions constructively, and collaborate proactively to deliver durable solutions.
Requirements
~2 min read-
At least 5 years of professional experience developing and delivering production software.
-
Strong foundations in software engineering, including data structures, algorithms, testing methodologies, and software design principles.
-
Professional or substantial project experience with functional programming.
-
Ability to analyze complex problems and translate requirements into well-structured, reliable, and maintainable software.
-
Strong debugging, analytical reasoning, and problem-solving skills.
-
Commitment to code quality, correctness, simplicity, and long-term maintainability.
-
Ability to collaborate effectively with engineers and communicate technical concepts clearly.
-
Willingness to learn unfamiliar technologies, navigate different technical environments, and adapt to evolving project requirements.
-
Sound technical judgment and an interest in understanding problems deeply rather than relying on superficial fixes.
-
Experience with Haskell, Scala, OCaml, F#, Clojure, or another functional programming language.
-
Familiarity with type systems, algebraic data types, pattern matching, and immutable data structures.
-
Experience with strongly typed domain modelling and functional design patterns.
-
Exposure to distributed systems, concurrent programming, backend infrastructure, or other complex software architectures.
-
Experience in blockchain, financial infrastructure, capital markets, or other domains where correctness, security, and reliability are critical.
-
Familiarity with property-based testing and other advanced techniques for validating complex software behavior.
-
Experience with Nix or reproducible development environments.
-
Background in software engineering consulting or direct collaboration with client teams.
What We Offer
~2 min readLocation & Eligibility
About this job
- Who can apply
- Canada
- Posted
- Today
Listing Details
- Posted
- October 23, 2026
- First seen
- October 23, 2026
- Last seen
- October 23, 2026
Posting Health
- Days active
- 0
- Repost count
- 0
- Trust Level
- 68%
- Scored at
- October 23, 2026
Signal breakdown
4 other jobs at
View all →Similar Software Engineer jobs
View all →Browse Similar Jobs
Stay ahead of the market
Get the latest job openings, salary trends, and hiring insights delivered to your inbox every week.
No spam. Unsubscribe at any time.