Skip to content
BackSign in
Back

Jobgether

Functional Software Engineer

CanadaRemoteFull-time

Apply Now

Posted today

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.

Accountabilities

  • 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

  • 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.

  • Preferred qualifications:

  • 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.

Benefits

  • Remote-first work environment, with this position based in Canada.

  • Opportunity to work on challenging engineering projects for capital markets and other regulated industries.

  • Exposure to emerging technologies and complex systems, including functional programming, distributed systems, blockchain applications, and financial infrastructure.

  • A collaborative, globally distributed engineering culture that values ownership, curiosity, transparency, and continuous learning.

  • Opportunities to deepen technical expertise, explore new technologies, and contribute to engineering standards and practices.

  • Meaningful technical ownership and the opportunity to influence architecture, software quality, and long-term system reliability.

How Jobgether works:
We use an AI-powered matching process to ensure your application is reviewed quickly, objectively, and fairly against the role's core requirements. Our system identifies the top-fitting candidates, and this shortlist is then shared directly with the hiring company. The final decision and next steps (interviews, assessments) are managed by their internal team.
We appreciate your interest and wish you the best!
 Why Apply Through Jobgether? 
Data Privacy Notice: By submitting your application, you acknowledge that Jobgether will process your personal data to evaluate your candidacy and share relevant information with the hiring employer. This processing is based on legitimate interest and pre-contractual measures under applicable data protection laws (including GDPR). You may exercise your rights (access, rectification, erasure, objection) at any time.
#LI-CL1

Request a company

Privacy

Did you apply?