I’ve lived in NYC for 2 years now. I’ve been around long enough that some of the people I helped when they started learning have begun to feel like they’re not “Juniors” anymore.

They have begun feeling confident in their code, their responsibilities at the company and wanting to improve both. It's a feeling that maybe, just maybe, you're not struggling to stay afloat anymore.

This post aims to be technology-agnostic, and if you sit somewhere at 1.5 - 3 years of programming experience then you’ll probably get something out of it. On top of that, I’ll give some pragmatic JS and iOS specific tips at the end.

Read on →

The main Artsy.net website for the desktop, Force, was our first Artsy application to open its source code, Craig and Brennan did it back in 2014. Force's public offering laid the groundwork for the iOS OSS projects to come afterwards: Eidolon, Eigen, Energy and Emergence.

Though Force wasn't quite Open Source by Default, it represented a really important step for Artsy's OSS perspective but was not the end goal. We were opening our source, but not opening our process.

This month both Force, the desktop version of Artsy.net and Microgravity, the mobile version - moved to being built entirely in the open. Read on to find out how.

Read on →

Hey all, I was asked to talk internally about ways in which anyone can improve their day-to-day computer usage. For me, using keyboard shortcuts shows a greater level of control of your machine - and more importantly can be considerably faster.

I have all of my notes, annotated with images inside a personal GitHub repo: orta/keyboard_shortcuts. We covered:

  • Pressing menu items via keyboard
  • Window Management
  • Text Management, e.g. jumping between words etc.
  • Searching for text
  • Taking Screenshots
  • Slack and Chrome
  • Using a Window Manager and Clipboard History Manager

Jump to YouTube for the video, or click more for a smaller inline preview.

Read on →

I arrived fashionably late to the React Native party in Artsy. I had been a part of our Auctions Team, where we worked in Swift with some light-FRP. We were not affected by the 4 months of simultaneous work on moving to React Native, at all.

It was a quiet revolution. I did not have to install npm, I made zero changes to the code for auctions and the whole app's infrastructure barely changed. Yet we moved to making all new code inside our 3 year old iOS app use React Native. What gives?

Well, first up we weren't planning a re-write, we don't have that kind of luxury and the scope of our app is too big compared to the team working on it. Second, we reused existing dependency infrastructure to support JavaScript based apps. Read on to find out what that looks like.

Read on →

I'm an old school TextMate user, who has also been using Xcode for the last decade. These two sit at a very opposite ends of an "editor" spectrum.

TextMate is extremely bare bones at the core, but introduced the idea of bundles as plugins. Making it really easy for others to build their own plugins for their own contexts. Xcode on the other-hand includes a 3D scene editor, the best interface builder I've seen, super rich debugging tools and close to zero support for improving it yourself.

As we agreed on moving to React Native, we needed to decide what the team should use for working in that environment. After experimentation with many editors, we decided on Microsoft's Visual Studio Code.

We wanted to keep a lot of the best features from Xcode, while working in a completely JavaScript environment. For example: debuggers, inline errors, auto-complete, symbol mapping and to ideally have them all inside a single editor.

Let's dig into the principals of how Visual Studio Code works, what makes it a better option for us, and what parts of it really shine.

Read on →

Last August, Orta and I led a course at Artsy to teach our colleagues Swift. There were two parallel groups of learners: a "beginners" group who had never coded before, and an "informed" group who already knew how to code. This year, we're leading the course again with a slight twist: we're repeating the course for absolute beginners, and we're introduce a new course for anyone who completed last year's beginner course.

We're really excited both to help new colleagues take their first steps into programming, and to help returning colleagues continue their journey.

Today was lesson one of the beginner group, and I have a screen recording of my walkthrough of lesson one's material.

Read on →

As the Artsy iOS app grew larger, we started hitting pain points:

  • We want to support other future platforms such as Android without creating more teams.
  • We want different business teams to work on the app without disrupting each other.
  • We want our architecture to evolve in order to increase programmer efficiency.

It took us about a year to start resolving these issues. Ideally, we wanted to find a solution to our architectural issues that would also improve the user experience. Notably we wanted more efficient networking, due to mobile device constraints.

It would have been an easy leap to start using Swift and, as a matter of fact, we do use Swift in parts of our flagship application and entirely in 2 other apps.

However, while Swift is a great language, it’s also just that: another language. It does not do much in terms of new paradigms that solved our architectural needs, it does not help in terms of cross-platform - as most of our code is building views and thus very framework specific, and it did not really offer anything in terms of more efficient network data fetching.

We've seen that the web teams integrate React in their projects with really great results. We've been paying attention to React Native since it came out; the solutions provided by the React ecosystem ticked all of our boxes.

Six months ago we took the plunge, and last month we formalized that this is the direction we want to go.

Read on →

Hello everyone! Orta here, over the summer I've started a series of interviews with the entire development team at Artsy. They're all on different topics, notably around technical and cultural issues. I've recorded a few of them already, and will be sporadically releasing them. I'm still getting the hang of editing and recording side of this, so give me some slack.

Anyway, I'm pumped to introduce the first in the series - Craig Spaeth.

Craig has been at Artsy for 6 years, moving from the first on-site developer to Director of Web. Our interview covered how Artsy's development team has adapted over time to the changing demands of a growing company. When he joined, Artsy was 6 people, we're now at ~145 people, ~20 developers and 3 businesses.

Jump to YouTube for the video, or click more for a inline video.

Read on →