25 Oct
|
Jobgether
|
Canada
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. 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 skilled 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. - 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.
📌 Software Development Engineer - Remote (Canada)
🏢 Jobgether
📍 Canada