Opens an external site
- Employment type
- Full-time
- Experience level
- Senior · 5+ years
- Posting language
- English
- Working hours
- 40 hours per week
Job summary
Design, develop, and maintain production-quality software using functional programming principles and sound engineering practices. Collaborate with engineers and stakeholders to translate complex requirements into robust, maintainable technical solutions.
Job details
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. \n 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. \n 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
What you’ll do
Design, develop, and maintain production-quality software using functional programming principles and sound engineering practices. Collaborate with engineers and stakeholders to translate complex requirements into robust, maintainable technical solutions.
Requirements
Requires at least 5 years of professional software development experience with a strong foundation in functional programming and engineering principles. Candidates must possess excellent analytical skills and the ability to adapt to various technical environments and languages.
Benefits
- Remote-first work environment
- Challenging engineering projects
- Exposure to emerging technologies
- Collaborative engineering culture
- Continuous learning opportunities
- Technical ownership
Listed skills
- Automated testing · Preferred
- Problem solving · Preferred
- Communication · Preferred
Other relevant skills
Identified from the job description. Confirm important requirements above.
- Functional programming
- Software engineering
- Domain modelling
- Distributed systems
- Backend systems
- Financial infrastructure
- Blockchain
- Type systems
- Automated testing
- Code reviews
- Debugging
- Analytical reasoning
- Problem-solving
- System design
- Architecture
- Communication
- Data Structures
- Problem Solving
- Reliability
- Tooling
- Influencing Skills
- Curiosity
- Continuous Improvement Process
- Data Privacy
- Algorithms
- General Data Protection Regulation (GDPR)
- Consulting
- Collaboration
- Information Privacy
- Continuous Development
- Software Engineering
- Technical Requirements
- Willingness To Learn
- Balancing (Ledger/Billing)
- Maintainability
- Emerging Technologies
- Capital Markets
- Team Building
- Programming Languages
- Programming Tools
- Scala (Programming Language)
- Code Review
- Financial Market
- Analytical Thinking
- Software Design
- Technical Issues
- Systems Design
- Technology Assessment
- Software Quality (SQA/SQC)
- Technical Delivery Management
Job areas
- Software
- Engineering
- Finance & Accounting
- Technology
- Consulting
- Software Engineer
- Software Developer / Engineer
- Software Developers
More jobs from Jobgether
SAP Consultant Migrationexperte/ Migrations-Cockpit
- Remote
- Canada
- Posted Oct 24, 2026
Security Engineer (SOC)
- Remote
- Canada
- Posted Oct 24, 2026
Senior Full Stack Developer
- Remote
- Canada
- Posted Oct 24, 2026
SAP Consultant Archivierungs-Experte
- Remote
- Canada
- Posted Oct 24, 2026
