I feel like an opener here is that, so far, this is the most-overdue writeup yet. So let’s eat a frog. Coming in at just before New Years Eve 2015. Upfront, I expect it to be the least simplest I’ve worked on. Previous years have had much less need for nuance, except for 26, when I first wrote that article I included some javascript to only show certain paragraphs after 1 year.
Danger told me over iMessage that this year has been my darkest, that this is the first year that she’s seen long periods where I’m just uninspired to do things. She’s seemed genuinely worried after reading Impact. Unravelling the root cause is something I want to go over in this write-up. Because, soon enough, future Orta will not remember what it was like to be 29. Thirty-year olds have such different problems.
If you don’t understand computers, you might want to skip this section. There’s a Too Long Didn’t Read at the bottom.
This time last year, the GitHub Mac team released Carthage, it’s a de-centralised dependency manager for Cocoa projects. It throws away many ideas that I’ve worked towards for years:
They made a choice to split the Cocoa community, forcing developers to make an “us vs them” choice. A chunk of community agrees with that and uses it. Now, in order to be discovered, new contributors support CocoaPods, and in order to support as many users as they can they need to support Carthage. Raising the barrier for contributors to OSS, and making it harder to just get things done as a OSS consumer. You just don’t know if they’re going to ignore your platform.
I had hoped that the Cocoa community would have done what the Ruby community did a few years ago, and agree to not use GitHub’s replacement for the Rubygems infrastructure. That didn’t happen though.
It’s been personally disappointing, and something that I’ve avoided talking about publicly. I strive to publicly have an attitude of be nice or shut up, but that’s not very good for looking back in a few years trying to understand how I became who I am.
I wasn’t happy to write about this, so I held off on starting for a few weeks. I’m glad I did, something I had been waiting for years happened. When Apple open-source’d Swift, they announced a dependency manager, and have been doing a really job at taking the spirit of CocoaPods.
CocoaPods aims to improve the engagement with, and discoverability of, third party open-source Cocoa libraries.
They’re actively talking with the community and us, finding ways to share work and to promote collaboration. It’s eased a lot of the friction I had been feeling. Apple has a fresh start in a way we could not, and will be able to do things much better than the CocoaPods team could.
All in all, when people have been asking what I want to do in the next year, I’m feeling pretty done on the “lowering the barrier to entry” space, this year it became less fun.
TLDR - People wrote a competitor for something I work on, it has different ideas that aren’t about the community, people use it and it makes it harder for new people to contribute to the community I care about, this bums me out. Ironically, Apple is potentially saving the day by doing their own competitor too. They’re not known for being good in this space.
With the awkward bit over, perhaps there’s space for some positivity now.
It feels like I’ve known about this guy for years, but this year I met Justin Searls, a man for whom I’m now turning into a total fanboy. He’s someone who talks about a lot of the problems I face in work and in my spare time. His talks have been inspirational in terms of understanding the asymmetry of power in working on large projects people rely on, and on programming ownership cycles.
If you’ve ever contributed to Open Source, you would get a lot of out watching this video on the Social Coding Contract.
I helped Ash Furrow run the Artsy Peer Lab, this aims to make life a bit better for beginners who still don’t know what they don’t know. Plus for informed programmers, they get an environment where others are working. We provide an environment for anyone to come work in the Artsy offices on a Saturday morning, and we’ve done it for almost a full year, missing only one date for a conference most of us attended.
I’ve talked at the Flatiron (hacker *) School, which is easy, but I’m also involved in their work with the NYC government verifying curriculum and trying to provide an impartial opinion for meetings.
I try to help out with a project that’s really close to my heart, the Coalition for Queens’ Access Code. It’s a hacker-school for people who can’t afford a hacker school. Working in the most diverse borough in NYC they offer free scholarships in the evenings and weekends. People devote 9 months of their spare time, while working to the idea that they could join the tech world and make apps.
I believe in all of the students, they are all such an inspiration to me. All of the NYC Artsy mobile team helps out with C4Q.
* If you don’t know what a hacker school is, it’s a way to learn programming in a short time by being extremely focused on pragmatic skills.
My favourite book this year has been one on human <-> computer interactions, Machines of Loving Grace: The Quest for Common Ground Between Humans and Robots. It help me put a lot of the design decision differences between CocoaPods and Carthage into perspective. It covers a wide range of topics, from self-driving cars to the battle to get Siri treated as an assistant-not just a text to speech engine.
A lot of the books discussion revolves around two types of design paradigms:
There is a lot of space for collaboration between the camps, and often, the book argues that it is a combination of the two that tends to work out best for the people involved. Related: I’ve been reading The Glass Cage, but haven’t got far enough to have an opinion yet.
Some other book highlights:
HPMOR, a Harry Potter Fan-fiction was finished this year. As a web-serial, I felt like it would never end. I was kind of ok with that too. The podcast version finishes up in 2 weeks too. So it will be good to finish it for a second time. I find the slow pace of audiobooks ensure means I miss less.
Worm, a web-serial that finished a few years back. As I couldn’t find motivation to do community projects, I opted to re-read some epics. The protagonist in Worm’s impact goes from barely affecting people at high-school to multi-universe mind-melting battles across dimensions. Glad I did a re-read, there’s a lot I understand better on the 2nd run through.
Stories of Your Life, and Others. A series of short-stories with some of the best hooks I’ve ever read. “What if there was technology to turn off the ability to be attracted to someone”, “What if the babylonians built a tower and hit the heavens, based on their belief systems at the time”, “What happens when something you took as a core axiom in your belief system was shattered.”
I’ve lived with Dave Grandinetti for a year now, this has been amazing. We’ve both changed so much in the last year, in so many subtle ways. After spending so long living in AirBnBs and crashing at Danger’s house, its really satisfying to come back and hang out at a place I can call home. We’ve lived together off and on for ~6 years.
We have this really cool policy of regularly inviting people to crash at ours, so the place always feels fresh, and it’s nice to have people to interact with. Plus people are much more likely to come over and say hi.
One of the upsides of having a place, is that Danger can actually come over. She visited NYC three times this year. I’ll go into this later.
Over the course of the year, I completed a few games, I feel like the one I put the most time into was The Binding of Isaac. I put a few hundred hours in to Team Fortress 2 this year, don’t worry, I’ve got a rare coin thing for my time. Me and Danger completed a bunch of good ones too.
So, Danger lives in Huddersfield in the UK.
Now that I have an apartment, it’s actually feasible for Danger to come to New York City. It could have been possible via Airbnb, but it never really came up as an option. Last year, I came back to see her roughly every 2 months. This year we tried flipping that around, and have her come to me in the city.
In doing so; I didn’t need to book so many conference talks, and more interestingly I could show the rest of our team that having no vacation policy does not mean never taking time off.
Danger came over in March, and we staycated in NYC, I wrote a pretty nice writeup of the in-and-outs for the advice we got. We did a lot of the things people recommended, and it had been the first time I’d really eaten meat in NYC. Turns out there’s a lot of great burgers to try.
The next time she came over was a complete surprise to me.
My girlfriend, who is normally in England, out of the blue turned up at the @ArtsyOpenSource happy hour!
— Ørta (@orta) August 28, 2015</blockquote>
So I took an extra-extended weekend off. She had conspired with Ash + Dave to make sure everything was OK
with this. We did Bikram Yoga, it was hilarious, we had no idea coming in that it would be crazy-hot yoga. We
mainly just hung out. It wasn’t supposed to be a big event, I loved it.
Towards end of the year we planned for Danger to come over for another week for my birthday! This helped with delaying
this write-up, and giving me a break from OSS/work. It was awesome to hang out with danger in November.
I wrapped up my first US VISA this year, finishing up every page in my first passport and having to leave the U.S. One
of the things that’s starting to come up now is figuring out what Danger & I should do with respect to living together.
There’s a lot of reasons for me to be in NYC, and a lot for Danger to stay in the UK. That coupled with no simple
way for her to come over on my H1B means that we’re still not too sure about this. I’m currently on a H1B for the next 2
years, but also applying for an O1 visa which may mean if we marry she could come live in the US. Hard to see how
this is going to turn out. Still a big question mark for us.
I spent all of last year listening to Rise Against, A Day to Remember and Billy Talent. I mellowed out this year, and
seemed to listen to a lot of Fallout Boy and My Chemical Romance.
I wonder if I’m less angry about absolute surveillance. I bought a series of prints to remind me that I should be very
angry. I still only make playlists called “Sprint [number]” on Spotify, which I play on repeat all day. I’ve been doing
that for years.
I’ve devoted a lot of time towards trying to understand the state of cryptography on mobile. I think it’s where I want
to be devoting a lot of my time in 2016. I’ve made minor PRs to Signal
but I want to change that and devote some time to both Signal and
ChatSecure. Might be worth looking at the Android stuff too, could be
useful for my work at Artsy.
I feel like this year was when the Artsy mobile team really started to flourish. When it was created, dB and Laura joined from the web team to bolster numbers, and this year we filled it up enough to be able to stand on it’s own feet.
To quote “on being 28”
Dropping the team down to one was a bit of a bummer. However, I got a promotion of sorts as I was the only one left.
It’s like night and day now. I study management styles like I used to study programming languages. I’d recommend reading Tribal Leadership, The Year Without Pants and Leadership and self-deception. Artsy is big enough to have politics, and I find it interesting to be a part of that.
We spent the time on building team foundations like the article in objc.io helping us understand how we see ourselves. We’re a confident team, shipping code in the open.
This time last year, we had only just started down the path to Open By Default with Eidolon. Now that’s complete. With help from the rest of the team we successfully opened the entire development process for every Artsy iOS app.
Developing in The Open is the premise that hiding our code provides less value for us than keeping it open. It means showing process, design and source. It means making notes from meetings available, moving internal chats in the public and trying to make it accessible to as many as possible. Not everything is public, but the vast, vast majority is.
It’s not a simple process, and it’s idealistic and utopian in its vision, but it can work for the majority of the things that someone would want me to work on. I hope it becomes the way everyone works in the future.
We’ve shipped a lot of things I’m super proud of helping out in.
Last year I talked about crunch time, and how we had to make unhealthy tradeoffs to ship an app.
I worry that my ability to jump in and just do what it takes can negatively affect the future culture of the Artsy mobile team. Perhaps we need more Gordian Knot style answers for these things. I must work on this.
I’m much happier about where we are at with this. There was nothing like the launch of Eidolon, people are/were free to devote their time as they please, but at no point this year was a crunch absolutely necessary.
With Ash confident on the team, I managed to get in a good rhythm with him around blogging on the Artsy Engineering blog. He’s established a weekly blogging process in the office that’s working out really well. I’ve been finding it satisfying to try and aim blog posts at people who are at experience levels where I found it hard to get documentation. Basically at the informed level, but not yet happy to consider themselves an expert in the domain. I guess this is classed as the “Upswing of Awesome” section and beyond onwards from this article.
Sarah Scott joined our team as a junior, and I just did an interview for the Artsy blog about how she made an impact on our team dynamic. She’s gone from no iOS experience to a lot, very quickly. She picked up our best practices, and is significantly more productive than I expected. Maybe I was just a bad junior back when I was learning, or maybe I didn’t have a good enough self-reflection to gauge how useful I was.
We didn’t know we were looking for a junior till Sarah joined, and I’m really glad she applied.
Alloy joined our team and he’s been working on Eigen, the Artsy iOS app. It’s been amazing working with him, he had started to do less CocoaPods work and it was a shame seeing him become less active. So it’s kinda awesome that I get to hang out in a different context. He provides some maturity/seniority that I felt we really needed, I’m still mostly shipping things from the seat of my pants. He helps us feel like a real development team.
Regardless of my general state of inspiration for OSS, I’ve still managed to ship a bunch of things I’m really proud of this year for CocoaPods.
The CocoaPods website finally looks and acts like I imagined it did 2+ years ago when we started work on the redesign. I’ve slowly been iterating on it for years, adding features step by step.
I shipped CocoaPods Stats, letting an author know the exact number of apps that your library is used in. Something no other package manager does. We also show the raw download counts, but that’s just a vanity number.
It also provides a sense of scale for CocoaPods, turns out its even more popular than I expected. Either that or the community is bigger than I guessed.
I created a collection of heuristics, based on years of discussion with the community, that create positive feedback cycles on ways in which you can improve your library.
I’m so close to shipping the CocoaPods Mac app with Alloy. I think it will be the default way for most people to use CocoaPods, lowering the bar to entry for a lot of people.
I’ve been involved in the on-boarding process for mega-corporations converting to using CocoaPods as a distribution method.
As a team there’s been a bunch of solid releases, and the command-line gem has improved a lot, I’ve been writing an annual write-up on the blog now, see 2015’s.
I tried to make myself nervous for a few years. I feel like I regularly take a lot of safe bet options, and now have enough liquid cash that most problems aren’t problems. So on my 28th birthday. Danger + I went to a casino, I gave myself a hard limit of being able to lose up-to £1,000. We played on the roulette table all night, I had been practicing Blackjack for a bit, and was pretty comfortable with it, but the tables were all busy. By playing slow, not making silly moves we ended up coming out with £500 from the house. Deciding that was enough and you can’t win forever, we went for Pizza, and put the rest of the cash towards a car.
As with last year, I did a lot of speaking. I tried to focus a lot on the US, mainly as I wanted to spend more time building things, and traveling around the world is super fun, but really tiring.
As a part of trying to figure out the processes for running an iOS mobile team I started giving and hosting talks from other heads of mobile in NYC. I’ve talked at a few places; NYTimes, Yahoo, ShopKeep and Gilt. I gave some meet up talks throughout the year too.
I gave talks at large conferences, my favourite being the Self Conference; a conference that embraces soft talks - the talks I heard there were inspiring and helped me embrace a lot of the non-technical things that need doing.
It’s also amazing to be able to meet old and new friends around the world. I went in to the majority of my motivations on speaking at conferences in on being 28:
When I went to MCE, I realised I was one of the ones that people pointed at and said “He’s that guy that did x”.
I still think it’s important to be accessible and public. I often talk about how much I’d like to high-five developer’s whose work I rely on, and I expect others would like to do the same to me. Conferences make that possible. It was amazing visiting:
It’s been such a pleasure getting to put so many faces to avatars. Feedback face to face is generally so positive. When you work on large projects you nearly always hear people venting.
I’m not in the prediction business. I once tried to make 5-year plans, and have yet to succeeded in doing anything on them. So I’m not gonna give it a shot here.
I still feel like every year has been my best year. So here’s to being 30.