Functional Programmer/Software Engineer

WaterworthVictoria, BC
Onsite

About The Position

Muniworth is a cloud-based SaaS startup in the growth phase, dedicated to empowering municipal utilities and governments with financial forecasting tools. Our platform enables local governments to achieve financial sustainability and make informed, data-driven decisions through robust modelling and compelling visuals. We believe apparent correctness is not enough: code must respect underlying concepts, with types and named algorithms directly describing the domain. Great code is correct-by-construction, with any remaining uncertainties ruled-out by a suite of unit tests. We strive to write pure, compositional code, with any inevitable impure code tamed by a rigid stratification of effects. To this end, we write TypeScript in a "Haskell-style" on the front end, and F# with an SQL database on the back end. We have an enduring commitment to satisfy the needs of our rapidly growing business, understanding that great code is essential for our continued growth and success. We place a strong emphasis on domain modelling and understanding the nature of the problems that we are solving and will spend considerable time engaged in research and experimental development. We have regular presentations, where engineers talk about whatever excites them, with previous topics including programming language theory, Master's Thesis presentations, World of Warcraft addons, and the philosophy of Machine Learning.

Requirements

  • Experienced and enthusiastic functional programmer.
  • Previously worked as a software engineer, either through an internship or full-time permanent employment.
  • Can collaborate closely with lead engineers to build a rich understanding of the domain, flesh out domain models, and surface ambiguities.
  • Excellent problem-solving abilities and strong communication skills, with the capability to articulate complex technical concepts clearly.
  • A bachelor’s degree or higher in computer science or a related field. Extensive experience and demonstrated competency will be considered equivalent.
  • Mission-driven individual who cares about their work having a real impact, who keeps the end user in mind throughout their work.
  • In search of an opportunity that can satisfy your drive for always expanding your knowledge and technical competence.
  • An opinionated team player that can complement the existing skill sets and perspectives of our team.

Responsibilities

  • Build and maintain both new projects and existing systems in a team environment, ensuring stability and long-term maintainability.
  • Own projects from start to finish, learn and model the associated domain, specify the implementation design, and execute in accordance with your plan.
  • Communicate progress and coordinate release efforts.
  • Contribute to new and practical applications of functional programming.
  • Raise the quality of code in our code base.
  • Guide the evolution of our tech stack, tooling, and deployment processes to improve reliability and developer experience.
  • Be fully engaged in an on-site environment in Victoria, BC, contributing to close collaboration and strong team culture.

Benefits

  • Competitive salary
  • Comprehensive health and dental benefits
  • Flexible work hours (40 hours/week)
  • Regular team-building events and social activities (optional but encouraged)
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service