New Posts

Using Capabilities to Design Safer, More Expressive APIs

Posted January 19, 2018

This post explores the idea of abstracting things like database operations into a generic Capability trait in Rust. We then use that trait to design type-centric APIs that enforce the principle of least privilege. It also comes with a lot of improvements to code modularity, organization, and testability.


Defcon Toronto's First CTF

A writeup about Defcon Toronto's first Capture The Flag event.

Error Handling in Rust

A summary of common approaches to handling errors in Rust. This post does not make any reference to the many incredibly useful crates out there like error_chain or failure.

Security Engineering at Stratum

Links to posts I wrote while working with Stratum Security. These posts laid the foundation for the talk(s) I have given on the subject of capability-based access controls for micro-services.

Functional Programming and Natural Language Processing

My research paper for a Natural Language Processing course I took as an undergraduate student. This paper covers some basic elements of functional programming, and discusses similarities between the Finite State Transducers implemented in Clojure and those used in NLP.

Design of Software Systems

An essay on thinking about how software is built from the ground up. This piece mostly focuses on design and specification, but also talks about top-down and bottom-up design philosophies.

Onwards to 2016

A new-years post briefly summarizing some things I was thinking as 2016 rolled in.