My last day at Upside was a week a ago. I haven’t written much about my job since I joined so before I moved on I wanted to write down a few memories.
I joined Upside in the summer of 2017, almost 3 years ago. At the time I had decided to wind down my consulting shop and start interviewing for a job. I wanted to find a growing company in DC that could leverage my mobile chops. After working from home for almost two years I was yearning to work in an office again.
At the time, Upside did not have an opening for an iOS developer. I remember using all the “outbound” techniques I learned for Sweetpea Mobile to get my foot in the door. Read: I spammed most of the leadership team on LinkedIn until I got an interview. Soon after, I joined Upside’s mobile team as an iOS developer.
When I joined Upside I was still feeling dejected from my failed attempt to bootstrap a dev shop. I was tired from wearing so many hats. I remember joining thinking that I’d be an individual contributor for the forseeable future. I wanted to become one of those indispensable software engineers. I don’t quite remember when or how I changed my mind, but after about six months I was already the unofficial lead engineer for the mobile team. I spent most of my time coordinating internally and externally but had no people management responsibilities.
In early 2018, Upside began to experiment with the feature team model. Spotify popularized this model but I was already aware of similar setups like the “2-pizza teams” I’d seen at Amazon. At its core, feature teams are all about engineer fungibility. That means anyone can work on any system, in any stack, at any point. The feature team is assigned a feature and they deliver it from beginning to end without any dependencies. Seemingly overnight I went from writing native Swift code to writing React and node. This was a great experience in retrospect but at the time it felt like a shock.
Right after the initial foray into feature teams, Upside spun up two new feature teams and I became the tech lead for one of them: Team Turboprop (see picture below for smiling Turboprop faces). The “tech lead” role at Upside is a hands-on people management position. It’s a combination of lead engineer and engineering manager.
The two years that I was on Team Turboprop have been the most fulfilling of my career. We worked on so many things! We started by building a self-service flight exchange system that no competitor had. When Upside pivoted to selling directly to companies, Turboprop was at the center of the new strategy. We created new user roles in the web app and shipped an entire suite of "corporate" features: admin functionality, onboarding of users, etc. Eventually we also came to own the profile and auth system.
The people management side of the job was also energizing, which surprised me. I was a first time manager and I was learning on the fly. The thing that worked for me was modeling myself after the best managers I’ve had in the past. Not only in how they encouraged me and matched me with good opportunities, but also in the quiet ways they created stability and prevented setbacks.
What I'm most proud of during my time at Upside is not a piece of code or a system running in production but rather the people that I was responsible for. I had the honor of helping a number of engineers achieve their goals of growing into their own leadership positions, either as team leads or as senior individual contributors.
What also surprised is how much we gelled as a team as time went on. Going to work didn’t feel like work. The team event we organized after shipping the “off-airport” car rental feature stands out as a nice memory. We used the feature we built to rent a minivan for the day and we drove an hour into Maryland to go to the best hotpot restaurant in the area.
That's Turboprop a couple of weeks before the COVID shutdowns.
If everything was so hunky-dory, you might be wondering...what happened? In good times, startups are risky and hard. Add a global pandemic that decimates the travel industry and a travel startup becomes unsustainable. It was a very difficult and emotional decision but in the end it felt like the time to say goodbye. Upside marches forward with some great people and I truly wish them the best.
So what's next for me? I've joined Capital One's mobile engineering team. I'll be working on features for Capital One's mobile app customers. This is exciting to me for several reasons.
The first is scale. Even though I’ve worked around big companies before (HuffPost was part of AOL and Quidsi was part of Amazon), I always worked at the subsidiary, never at the parent company. Most of the places I've worked at before had one mobile team, with a handful of engineers per platform. At Capital One there are over 20 teams of engineers devoted to the Capital One mobile apps in my division alone. Team size and number of users are one to two orders of magnitude greater than anything I’ve ever seen or experienced.
I’m also excited because of the high caliber people that work there. These include former colleagues, people that write for raywenderlich.com and folks I know from open source. At Upside, I did a lot of recruiting to fill open engineering positions. Every Capital One candidate I came across was next-level good.
Finally, I’m also happy that I’m an individual contributor again. Although at Upside I learned that my “track” will always be people management, the best engineering leaders I’ve observed have weaved in and out of coding several times. Being able to zoom in and out of code builds confidence, credibility and intuition. Beyond the practical benefits, as someone recently reminded me, coding is good for “an engineer’s soul”. I agree.
Overall, it feels similar to the way I felt back in 2017. Glad to be coding again and ready for a new adventure.