Hi, I’m Kaitlin. I’m a New York City-based software engineer working at MongoDB.

Previously, I did my S.B. and M. Eng. in computer science at MIT. Outside of tech, I like puzzles, current events and politics, and pets.


  • Why doesn't JSONEncoder conform to the Encoder protocol? 🤔

    A common point of confusion in the Swift encoding and decoding ecosystem is that there is an Encoder protocol, but standard library types like JSONEncoder and PropertyListEncoder don’t conform to it. We encounter the Encoder protocol when we make our types conform to Encodable:

    /// A type that can encode itself to an external representation.
    public protocol Encodable {
        /// Encodes this value into the given encoder. 
        public func encode(to encoder: Encoder)
  • What does open mean in Swift?

    You may have encountered an open class in a library you use, or maybe you’ve considered using one within your own code. open provides an additional access control level that’s even less restrictive than public. But what exactly does open mean, and how is it different from public?

  • Custom error messages in Swift 4

    I always took error types with custom messages for granted in other languages, so I was a bit surprised at the amount of work I had to do to implement them in Swift. I had to spend a while digging through outdated Stack Overflow posts before coming upon this solution, so hopefully this will be useful to you!

subscribe via RSS