Parker's Posts

How I Leveled Up as an Engineer by Learning Infrastructure As Code

When I started my Software Engineering career after college, I was overwhelmed with trying to understand my team's cloud services and configurations. However, once I learned Terraform/Terragrunt, I unlocked a newfound ability to reason about cloud architecture and systems design.

Fullstack
Terraform
Infrastructure

Introducing hson, a JSON processing language

hson is a CLI that, when given JSON data and an hson script, processes the JSON data according to the script. I demonstrate the features of hson and illustrate how it was implemented using Haskell.

Haskell

Pure Functional Programming in Context

What is pure functional programming, and how does it compare to the more mainstream imperative, object-oriented programming paradigm? I present a brief history of the problems FP aims to solve.

Haskell
Functional Programming

A Survey of Practical Haskell

Wondering why Haskell is so notable? I introduce the Haskell programming language and pure functional programming more broadly, providing many examples and avoiding as much jargon as possible.

Haskell
Functional Programming

Testing Parsers Thoroughly with Property-Based Testing

Property-based testing is effective at revealing unconsidered edge cases! I compare unit testing to property-based testing and discuss my experience implementing property-based testing for a parser.

Haskell
Parsers
Testing
Functional Programming

A Practical Introduction to Parsing in Haskell

Understanding parsing in Haskell does not require monad expertise! I briefly demonstrate the use of parser combinators in hson and provide practical descriptions and analogies for the Parser monad.

Haskell
Parsers
Interpreters
Functional Programming

Parsing Chained Expressions, Functionally

While immutability can help prevent bugs, it can also create challenges. Such challenges arise when parsing chained expressions from left-to-right, as those expressions must be nested in the parse tree from right-to-left.

Haskell
Parsers
Interpreters
Functional Programming