It was only three months ago that I came to the conclusion of just how much time I had wasted on code compilation cycles, once I started to play with Injection for Xcode. I still feel guilt about the time I wasted. However, I’m trying to turn that into something constructive. In order to do that, I need to have a solid understanding of the fundamentals on how Injection For Xcode works.

Ash says one of the best ways to learn is to teach. So I’m going to try take you through a guided tour of the code-base. You need some pretty reasonable Objective-C chops to get this, but anyone with an app or two under their belt should be able to grok it.

Read on →

It’s been so fun to watch the Swift developer community experiment with Swift and to experiment with what idiomatic Swift will look like. No one really knows the answer yet, but we’re starting to see some design patterns used more than others. We’re seeing some language features used in key ways that define idiomatic Swift, and other language features that are being mostly ignored.

Regrettably, one of my favourite features of Swift has not enjoyed the meteoric rise in popularity I believe it deserves: typealias.

Read on →

GraphQL is something you may have heard in passing, usually from the web team. It’s a Facebook API technology, that describes itself as a A Data Query Language and Runtime. GraphQL is a spec, and there are multiple implementations of it. As mobile engineers, we can consider it an API, where the front-end team have as much control as the backend.

This blog post covers our usage of GraphQL, and what I’ve learned in the last 3 months of using it in Eigen.

Read on →

I am a big fan of developer tooling, as spending time upfront on improving your process can pay a lot of dividends over time. I want to talk about one in particular: Paw. Paw is a native HTTP client with a bunch of features. I want to cover one that means that we can now introduce [AppName].paw files in our mobile projects, making it easy for us to discuss networking requests.

Read on →

Eigen has hit the point where testing is a chore. This is a positive sign, the app has grown in terms of size, complexity, and number of developers considerably over the last 3 years. The test suite makes us feel comfortable making changes.

On my fastest computer, we’re just under a minute - Executed 1105 tests, with 1 failure (0 unexpected) in 43.221 (48.201) seconds for the whole suite. I think I could probably live with 20 seconds max. So I studied how AppCode handles running tests, and this will be an illustrated guide as to how you can easily run the subset of tests in Xcode based on their techniques.

I have ideas on how to improve time for testing in general, based on Code Injection, but they aren’t fully fleshed out and I expect it to be time-intensive to pull off. Time I haven’t made yet.

Read on →


The Artsy Engineering Organization "Stack" in 2012
from "Sitting is Killing You? Move to New York"

Artsy has now grown past 140 team members and our Engineering organization is a nimble 25. We’ve recently performed a large organizational change (I highly recommend reading “The Secret(s) to Company Re-Orgs”), so this is a good time to describe our updated Engineering organization, starting from the top - Artsy as a company and business.

Read on →

At Artsy, sharing knowledge is heavily encouraged and so we write our code in the open, document using blog posts, and speak about our experiences. Many have bumped into us at various places around the world. And so I often get the question: “How did you get started? I’m interested in speaking too”.

In the name of sharing experiences with others, I can’t encourage this enough. Unfortunately though, public speaking is still considered man’s biggest fear.

I’d like to share with you the benefits of public speaking, tips on how to get started, and how to give great presentations.

Read on →