Jobs in JS est. 2016

← All jobs

Waterworth are hiring a Functional Programmer/Software Engineer

Mid-level Victoria, British Columbia, Canada posted 2026-08-06

Apply for this position →

Functional Programmer/Software Engineer - Growth Phase Cloud SaaS for Municipal Finance 

 

Who We Are: 

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.  

 

About Our Approach: 

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

What You Will Do: 

About You: 

Application Process:

For your initial application, please submit your resume and complete the questionnaire. Cover letters are optional for applying to this role and present an opportunity for you to share more about yourself and why there may be a great fit. Please do not use AI if you decide to submit a cover letter; it is not a box that simply needs to be checked.

We will be reaching out to candidates in consideration within 1-2 business days from application submission to schedule a virtual screening interview. Arrangements for an in-person interview and technical assessment will be made thereafter. All interviews are conducted by the direct managers for the role.

Why Join Us: 

Apply for this position →