Remote Position

[Remote] Functional Software Engineer

๐ŸŒ Remote ยท United States ๐Ÿ’ผ Full-time

Note: The job is a remote job and is open to candidates in USA. Obsidian Systems is hiring a Functional Software Engineer to design, develop, test, and maintain software using functional programming principles. The role involves solving complex engineering problems, collaborating with client teams, and contributing to system design and architecture across areas such as backend systems, distributed systems, financial infrastructure, and blockchain applications.

Responsibilities

  • Design, implement, test, and maintain reliable software using functional programming principles
  • Develop clear, composable, and maintainable solutions to complex engineering problems
  • Apply strong typing, domain modelling, and abstraction to improve software correctness and reliability
  • Collaborate with engineers, technical leads, and client stakeholders to understand requirements and deliver effective solutions
  • Contribute to the design and architecture of systems, making thoughtful trade-offs between correctness, simplicity, performance, and maintainability
  • Write automated tests and use appropriate techniques to validate system behaviour
  • Review code, share technical knowledge, and contribute to engineering standards
  • Investigate and resolve complex technical issues across existing systems
  • Communicate technical decisions clearly and explain trade-offs to both technical and non-technical stakeholders
  • Adapt to different client environments, codebases, and technical challenges
  • Contribute to continuous improvement across our engineering practices, tools, and delivery processes

Skills

  • 5+ years of professional experience developing and delivering production software
  • Strong understanding of software engineering fundamentals, including data structures, algorithms, testing, and software design
  • Experience with functional programming, either professionally or through substantial projects
  • Ability to reason about complex problems and translate requirements into well-structured software
  • Strong debugging and problem-solving skills
  • Commitment to code quality, correctness, and maintainability
  • Ability to communicate effectively and collaborate with other engineers
  • Willingness to learn new technologies and work across different technical environments
  • 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, or backend infrastructure
  • Experience in blockchain, financial infrastructure, capital markets, or other domains where correctness and reliability are particularly important
  • Familiarity with property-based testing and other techniques for validating complex software behaviour
  • Experience with Nix or reproducible development environments
  • Experience working in an engineering consultancy or collaborating directly with client teams

Benefits

  • Remote-first, globally distributed team

Company Overview

  • Obsidian Systems is provides deployment, maintenance, and implementation services. It was founded in 1995, and is headquartered in Randburg, NA - South Africa, ZAF, with a workforce of 51-200 employees. Its website is http://obsidian.co.za/.
  • Company H1B Sponsorship

  • Obsidian Systems has a track record of offering H1B sponsorships, with 2 in 2026. Please note that this does not guarantee sponsorship for this specific role.
  • Apply Now โ†’

    More Open Positions

    Explore similar remote opportunities