Isaac Van Doren is a software engineer passionate about building better software faster. He is an avid Roc user and contributor and a fan of functional programming. At Paytient he builds software to help Americans access and afford healthcare.
Change is at the core of software engineering. Product requirements, performance problems, old bugs, and outdated dependencies mean that even the code we'd least like to modify must often be changed. Unfortunately, each change is an opportunity to introduce a whole host of subtle bugs. These oversights lurking in the shadows of every codebase are what keep software engineers up at night.
There is no shortcut to effortless code change, but intentional design in programming languages like Roc can make it vastly easier. Roc's expressiveyetsimple type system, penchant for explicitness, and thoughtful focus on developer experience make it a powerful tool for evolving a codebase over time. Features like purity inference, tag unions, and exhaustive pattern matching remove whole categories of bugs, make many others unlikely, and ultimately free up bandwidth for us to build better software faster.