Article 44
What I did in the past & what I’m looking for next The goal of this page is to go beyond a resume and hopefully provide useful context on my past experience and on what I’m looking for in a new...
View ArticleArticle 46
Personal Values Some of these are not fully fleshed out, I still want to share them as they give a useful view into what I care about. 1. Ownership Within your realm of capability I can trust you to...
View ArticleMy Five Favorite Books for Engineering Leaders
I recently got asked a lot about book recommendations for engineering leaders. Here are the five books that I’ve found most helpful so far.
View ArticleEngineering Process Is Overvalued
Many engineers and managers focus too much on process and overlook much more important aspects of a successful engineering team.Here’s a quick reminder about what really matters and what engineering...
View ArticleArticle 43
Projects scheduled onto platform teams via agency model tend to balloon in scope Once I have engineers; might as well get a ton of stuff done!
View ArticleFlavors of Engineering Management
What is like to be an engineering manager vs. an individual contributor? Should engineering managers code? What do engineering managers actually do? The correct, yet unhelpful answer is: “it...
View ArticleGCD's Main Queue vs. Main Thread
The correct way to ensure that code runs on the main thread / main queue is a recurring issue that causes some confusion among Cocoa developers. The topic came up again this week as part of an issue...
View ArticleBeware the UIKit Visitors!
Investigating the Cause of Quadratic Time Complexity When Adding Subviews in UIKitYesterday Two weeks ago we identified a performance regression in the PlanGrid app, when entering a view that...
View ArticleDecoding Heterogeneous Collections in Swift
The problem of decoding Swift types from an outside data source, such as JSON, has been mostly solved. Since Swift’s release we’ve seen more than a dozen popular JSON mapping libraries pop up.However,...
View ArticleCompile Time vs. Run Time Type Checking in Swift
At some point, when learning how to use Swift’s type system, it is important to understand that Swift (like many other languages) has two different forms of type checking: static and dynamic. Today I...
View ArticleSquashing Commits With Git Rebase: A Very Quick Guide
Git’s interactive rebase is extremely useful for keeping a somewhat clear commit history. Here’s a very brief guide on how to squash multiple commits into a single one.
View ArticleValidated: A Swift μ-Library for Somewhat Dependent Types
Today I built & published a μ-library that makes it easier to leverage Swift’s type checking system for program verification: Validated.
View ArticleHow I Write Swift Specs With Quick
I’ve recently tweaked the way I write Quick specs. I came to realize that I was placing a majority of my testing code inside of it blocks. This seems to be common among many code bases that use...
View ArticleAbout
Hey there! My name is Benjamin Encz and I currently live in San Francisco. I moved here from Germany in 2013. Currently I spend most of my time writing software, with a strong focus on iOS development....
View ArticleSpeaking
I enjoy sharing things I’ve learned and spreading ideas. Here are the talks I’ve given in the past & the upcoming ones I’ve got scheduled. Upcoming On a speaking break 🙂 2017 Workshop:...
View ArticleIntroducing ReSwift
For the last two months I have been actively working on Swift Flow with the goal of bringing the ideas of the Flux and Redux libraries to Swift developers.
View ArticleConvenient Error Handling in Swift
Swift 2 introduced an error handling mechanism that includes backwards compatibility with Objective-C.This is great news, the new mechanism is a lot stricter. Long gone are the days in which one could...
View ArticleA Flux Inspired Architecture for iOS
This year I spoke at 360iDev about “Safer Swift Code with Value Types”. The goal of the talk was to explore an architecture that uses immutable value types for the model layer.
View Article