Hrm, yeah - not an easy one to start. Or probably, to read. Sorry.
Hey, at least I started writing this when I was supposed to this year. It feels like all of the year’s larger narrative arcs are pretty much resolved by October.
So, it’s tricky, I think one of the most insightful points in on being 31 is that the definition of “my best year” is starting to shift.
This is a year where the good outweighs the bad. I used to always say “this has been my best year” and for 2017? it’s not really been the case.
This year also doesn’t really feel like my best either. Maybe it’s good to start off by thinking about how I started the year with two main aims:
I asked Danger about her opinions on the first. She says that she is happier now, and that it’s not my responsibility to own that. For her the best changes are getting a job, having our own place and finding her own friends in NYC. That is mainly just a time thing, and she’s got this. So, on that one I’m good.
One of the great things about living in NYC is that we have access to so much culture, we went to a few cool events
But a lot of the stuff we did that was cool is the fun, typical couple-y stuff. We travelled for Miami for a week, living in little Havana and went up-state to let the dog see grass, trees and be off-leash.
For the second, C4Q. I think I did an OK job (I ran some office tours and talks) and would turn up for this year’s classes major events but I think it would always feel like I wasn’t doing enough. I’ll still try harder in 2019. C4Q got re-branded as Pursuit which I think is really cool.
Last year’s on being 31 had our adoption of Murphy act as really good counter-balance to some of the general sadness. I’m afraid this year, he can’t really do that. Murphy died suddenly this year, and that sucks.
I covered this in a post from a few days after back in July, but that was really about trying to cope with the grief of such a unexpected ending to a great life. We devoted so much time and thought to training him up to be an awesome city dog.
It’s funny though, I’ve never experienced death like this, everyone deals with grief differently but after a few days my ability to focus came back and it felt like I could get on with life far faster than I expected. I found it particularly strange that I had a completely open schedule again and felt a loss of not having a long-term project (training) around the house. Will we get a new dog in 2019? Unsure, really, that’s kinda on Danger to decide. She’s the one who would have to sacrifice most to make it work.
I didn’t end on being 31 with too many positive notes about my work-life:
It feels like the last few months at Artsy have just been a bunch of sucker punches
2018 really just continued that. I feel a small but low-level anxiety about working at Artsy quite often nowadays, a lot of it is fueled by the growth of the company. With perhaps the core tenet being agreeing on things which are good for Artsy, but less good for me.
A lot of my friends left Artsy this year. The re-org mentioned in on being 31 happened and it caused a lot of churn. Alan, Maxim, Kana, Will, Sarah, Katarina, Madeline all left to go and do their own thing. Making it the first time that people I hired left the company. These were my everyday folk.
Outside of the tech org, the people who I connected to the most as being folks with a similar also left: Elena, Legacy & Maja. These were folk who really represented the Arts world outside of daily work, when they got new jobs it was art industry news! They were some of my favourite 1-on-1s and I miss them.
They really helped to make a lot of the abstract day-to-day work in programming concrete, showcasing what makes the art world interesting and providing a lot of useful perspective. It’s not that all of my richest connections have gone, but I’m down to about half of the people I would regularly keep tabs on. So, I’ve been exploring sitting with different teams in the company to try and explore more relationships in the company.
I have a new manager for the first time, who I don’t really share much in common with. We both just have different core drives. My old manager relationship had always been very hands off, occasionally meeting once every month or two but we shared so much in common that it wasn’t ever really anything to talk about other than how everything is going. I never really even thought of them as my manager, it felt weird writing a “new” manager.
I feel like it’s reasonable for me to have a new manager given our team size changes, but that relationship was never something I thought about for the previous 6 years - in changing it, I became more aware of how the match feels off to me. It’s not problematic, but just doesn’t really fit for me.
At the core though, the bit that makes me nervous is that want to end up in a place where someone else is responsible for deciding what to do with my time, or my career. I’ve carved my own space in an industry, and already put a dint in the universe, but I still want to figure out what I do next. Unlike the above, I do kinda think this is somewhat unreasonable, but not really something I’m willing to give up.
2018 went from me enjoying working with everyone, to pushing that I wanted to work in a particular team based on least-bad interactions with team-members in them. I switched teams midway through the year because I wanted to move away from daily interactions with someone who I liked but didn’t really agree with how I should be working, to a team where I strongly don’t like someone but rarely need to interact with them. Trades.
I’d like to hope you’re thinking that as these are work relationships I can easily fix them, but honestly, I’m just not sure. The differences are pretty much fundamental perspectives on how to do things. I think having different perspectives in the company is great, and literally something we strive for in hiring. So, I wouldn’t really want it any other way. But, it grates, and is a source of friction. Anyway, not everyone likes T.J.
We introduced a product org to our company, I think by the end of the year this worked out well and there’s proof of it that I’ll cover later. However, the introduction went real bad, and included a decision on people’s positions that caused a lot of high level churn in Engineering. This was the first time that we’d really done something that I pretty strongly disagreed with. So, as people started handing in their notice, for the first time I wondered that maybe it was time for me to think about leaving Artsy in 2018.
At the start of the year, I’d started taking regular notes on my mood. It’s a few wins, and a lot of downers. So over the course of a few months, I took a week here and there to debate “Could I leave?” and “What would I do?”, and danger would ask every few days for a few months what the percentage chance was of me calling it.
I made a list of places that I was interested in working at during this phase, which I think is worth highlighting for looking back at in a few years. Ordered by alphabetical.
The period of February to September was not easy.
When I started reporting the percentage chance of leaving to Danger at about 80% after a few negative interactions in a row and I started booking meetings with all of leadership at Artsy to try figure out if any of them could change my mind.
Turns out the person who I didn’t book a meeting with did - over drinks during someone elses leaving do.
They re-framed my arguments back in the form of things that I wanted to do, and how they could still get done at Artsy. Showed me how almost all these decisions are trade-offs for everyone, and tried to help me see people and relationships, and not “cause and effect”. Maybe I’m romaticising it a bit, but it was a chat that started to lower the chance of me leaving till eventually I could start thinking medium to long term, instead of just floating through the day in a mental limbo.
I specifically choose to not leave Artsy this year, which isn’t a conscious decision I’ve needed to make before, but it’s still an important statement on the future value of Artsy. Once I had come to that conclusion, I needed to start working on improving things.
Many folks worked hard to get the company back to its culture highs: I mainly tried to focus on hiring & on-boarding new Engineers, creating informal communication channels between groups and transparency into process. This worked. Culturally, we’re about where we were at the end of last year - which is an industry high.
It wasn’t all churn, I did quite a few things that I’m really proud of this year:
We pulled off our first dev conference at Artsy. I’ve ran a conference before in 2014 and that went really well, I’ve organized a lot of meetups since then, but not got back up-to a full day serious event.
Maxim Cramer and I spec’d it out (after another company offered to sponsor it (maybe as a joke?)) and when she announced she was going to leave Artsy we opted to take it seriously and to make it a leaving celebration for her.
We roped in Eloy Durán to wrap up the speakers from Artsy’s side. We aimed to mix both talks and workshops. Then, we reached out to my favourite Facebook employee, mr Christoph Nakazawa and we found a way for Facebook to handle a lot of the event-space organization and audio/visuals.
It all went beautifully, and was an awesome experience. It was made so much easier by having Maxim as a people & detail oriented person to ensure everyone was fine and scheduling was working out. I’d be hesitant to do something like this solo now that I know how good it can be as a duet.
It’s strange that I find it kinda hard to write about, it was exhausting and exhilarating. I’ve been taking time off conference speaking, to spend time getting Danger comfy in NYC, so going back to that environment was refreshing.
I met so many cool folks, and we created some of the best learning materials for iOS developers to bootstrap from, and the introspection really helped us understand our own motivations better at Artsy.
I wrapped up my blog series on React Native at Artsy. This is a series of posts that I’ve been working on over the course of years, covering multiple retrospectives and a few “how does this one specific thing work?” The bow to wrap up the series is a tutorial to get the same setup as us that took a week or two of thinking.
This made it really easy to onboard new engineers, as each part of the Artsy front-end stack was covered from first principals. It felt pretty stressful to run because of some internal Artsy politics, enough to put off the idea of running a larger event in NYC. That said, it was net awesome. They’re technical, but you can see the series here. We use them on on-boarding a bunch.
I shipped an Augmented Reality mode in the Artsy app. I’m pretty bearish on AR and VR in general, I’ve found from spending a lot og time with both that they are only really useful for small toy-like experiences. Artsy’s use case at least is realistically useful - seeing an artwork on your walls with correct sizing and lighting. It’s a great fit. We struggled to find the right way to get a user set up, but eventually came to a pretty good setup.
I restructured and consolidated all of Artsy’s documentation to be open first, and then fallback to private when we need it. Here’s a longer write-up on the process, and I’m proud of where we ended up. I’ve been at Artsy for so long that I really don’t know the processes at other companies, and would love if more folks did stuff like this.
Related: I ported over a documentation idea I had from Peril to apply to all of Artsy: Highlight docs.
I did a deep dive into machine learning for a month, we have an annual Artsy salon (basically an exhibition where all the participants are staff) where I built a semi-realtime style-transfer app. I took the time to learn how to build my own machine learning models, and understand the ecosystem. The app ended up working out real nice, if slow enough to not bother taking too serious and pitching it should go into the main app.
Artsy shipped Buy Now, and Make Offer. We’ve been exploring options for buying Art with a transaction process off and on for the last 6 years and this was the first year all of Artsy’s focus turned to doing a single thing. This required far more communication and coordination then anything else we’ve built. For the last few years, we’ve been focusing on expanding the scope of Artsy (by making new internal business that represent a part of the art world ) this really feels like the first time we’re trying build on top of all those foundations.
This is the project sold me on Artsy’s product org, it felt like everyone involved had really useful roles and managed to organize ~100 people in the company to contribute towards the idea of a single “buy now” button (and it’s pre-requisite legal, tax and political ramifications).
I didn’t work directly on the project, but spent a lot of time pairing with folks who were and I’m proud to be attached to what I consider to be a really positive moment in Artsy history.
This year most of my non-Artsy programming time went to Peril. I had worked on Peril pretty slowly in 2017, but I really switched to devote most of my thinking time to Peril this year. Peril is the natural evolution of Danger, helping you to work at an even higher level of abstraction.
Roughly, if Danger was the equivalent to a automatically running a spell-checker when people collaborate on documents. Then Peril is a way to run the spell checker on every document, all the time. It’s a lossy metaphor, but it’s enough.
Peril is probably the most complicated system I’ve built (maybe outside of Artsy’s iOS app) - it’s a complex collection of many servers coming together to be able to handle the potential the amount of people who could potentially pay for it. Teams who could be much, much larger than Artsy’s. I’m super proud of how well tested the project is, it’s hard to do that when you’re the only person working on a project for years.
When working on Peril, I had offers for funding Peril full-time, and during some of my darker phases during Artsy, Peril was an escape hatch culturally and a potential door for what I could do next.
That said, I’ll quote myself from a year ago:
Peril is a great idea, but an engineer at GitHub is building a similar project, probot. It’s great, we use it. Peril occupies another space, but the venn diagram for what they do has a strong overlap. I could easily spend the next year or two building and exploring Peril, but should I? Sometimes the answer feels like yes, sometimes the answer feels like no.
I came to a decision on this in 2018 when GitHub announced they were creating a project called GitHub Actions. It replicates the hardest (and most valuable) parts of Peril and makes it available to everyone.
It’s a fresh implementation with a really great perspective on the problem, so I want to stress I’m definitely not trying to play the “they copied me” card. It validated a few of the tough decisions I had spent months thinking/procrastinating about. Which is awesome.
It makes the ideas in Peril available to a lot more people, and has a level of integration with GitHub that is unfeasible from someone who doesn’t work there.
Sometimes, you just get sherlocked.
I can be both happy and sad about it.
This is the second time something I’ve devoted years to became less valuable long term because the domain owner started handling the problem. Previously, I started working on Danger because Apple start re-creating the last project I devoted years to (CocoaPods see on being 29).
Apple replacing CocoaPods has not gone very well, as we’re three years down the line since they announced the replacement and it’s still not very close to fixing the main issue CocoaPods solves, and someone who was once on the team estimated it would take till 2020 to do that.
I’m more optimistic about GitHub pulling it off though. They’re actively making cool things, and Actions feels like a good fit for the company.
I devoted 10 days of butt-in-seat time to Destiny 2 this year. That’s like a fully-realised non-trivial software project like danger-swift. However, it did mean I finally got to do one of the video-game things I’ve always wanted to do: Run a raid.
Never heard of a raid? Here’s a 20m video covering the conceptual ideas. Roughly, it’s a combination of many super difficult missions in a row, where your communication skills will be strongly tested. In games like World of Warcraft a raid ranges from 20 to 40 people, and a raid would average around 2 to 4 hours of coordination for them.
I wanted to spend more time in a mental state where I was available for Danger in 2018, so I opted to finally try a game with raids. Destiny raids are less upfront coordination (they require 6 players) and once you’re good you can probably complete one in about an hour. We, however, were still learning, and the final raid I completed took about 20 hours over 3 weekends. You can see them on the heatmap as light grey blocks at the bottom of 10 and 11.
It’s a time-sink, yep, but I find it pretty gratifying, I mean look at how cool my selfies are:
I found a fun clan, who have low expectations and I would try play an hour or two every day to get to a spot where I could contribute on a raid. It felt good. I’m gonna continue with it, but more lightly.
Destiny is a pretty solid game, it’s from the folks who made Halo - I have a referral link if you end up trying it. I think the base game is free, and then the extension is not free. Try it?
For a good few years now, my perspective had been about straight up impact (2016, 2017, 2018) of my time. Leverage your time for the most amount of potential positive change for everyone. Work on a dependency manager because it helped the most people, I built danger because it saved time and would be useful in almost every engineering project.
I’m moving into 2019 with no larger programming goals for the first time in 7 or 8 years, which is new. I have an inkling of what I want to do:
Maybe make the Artsy Omakase JS stack super well documented and de-couple it from Artsy. That feels a lot closer to “work work” than I’d like for a side project which I typically scope to having industry-wide impact (but still useful for daily work).
Learn magic, I’ve been trying a few tricks and it’s really fun!
Do more public speaking again (I took 2018 off) - so if you want me to speak at your company / conference, now’s a good time to reach out.
It’s very easy to frame this as just another bad year: Artsy jumped from a stage 4/5 to a 2/3 for 6 months for the first time, our dog died pretty traumatically and I got sherlocked again on a project with years of work on it. I’m not sure it’s how I want to portray 2018 at the end though.
Maybe it was a 6/10 kinda year, but me and Danger still did a lot of cool things, I get to hang out with awesome, interesting folks and most of my days are like a 7 or 8 out of 10. In late November I started to hit 9/10 days again.
I’m not even sure what I’d do differently if I had the chance? In writing this, it feels like I’ve been more of a passive observer though-out the year and the biggest things were stuff that happen to me - rather than the other way around.
Which in the case of Artsy, just seems off, I have a lot of political capital and freedom and use that to help fix problems in a way that helps out a lot of folks in many smaller ways. I’m in control in a lot of this, but what if I’m just stubborn and in the way? A small and scrappy mind -set is useful when working in ambiguous environments, but can that mind-set continue to thrive once we become a place where thoroughness and comprehension are more important?
When I talk to folks about it, everyone seems to say yes, but there’s a sense of disconnect which may just be entirely in my head - but it didn’t used to be there.
So, maybe, the key is not necessarily to have goals for 2019, but to instead consider trying to shift my perspective in 2019 to: