
Leaving OpenSea and what it taught me about shipping
I left OpenSea in March and am taking a break before the next thing. I've spent over 4 years working in crypto which honestly feels like dog years. Every day was different, every week had new sets of challenges, and every year felt like we were taking massive leaps in building toward a shiny future. There were many lessons to take so let's go down memory lane to gather the puzzle pieces.
I got to OpenSea through a side door
I joined OpenSea by way of the Gem acquisition. For those that are unfamiliar, Gem was an NFT aggregator platform that rendered NFT listings from across different platforms. It was allowing people to buy multiple NFTs from across different collections and marketplaces in 1 smart contract. To simplify this, it was acting like Amazon and allowing you to buy everything in 1 cart vs forcing you to buy everything in individual transactions like every other player was at the time. For normies, this is just how the internet should work. But web3 at the time was in its infancy and was fundamentally built differently. Transactions were slow because they ran through blockchains. To me, this was almost akin to dial up internet.
I'd been at Gem for about 7 months by the time we got acquired. As soon as we had shipped the first version of Gem, we had interested parties curious to acquire us. They were after the gas saving code that the very talented Vasa had developed. And of course the aggregator logic that supported NFT listing consolidation. A lot of the code that was being developed at Gem was very cutting edge. Smart contracts were using coding languages like Solidity, which were not very common in those early days. So it felt like we had a wizard on our team who was relentless at figuring out how to make these connections happen. The whole team was goated. Parmesh was our talented front end dev who worked as tirelessly as Vasa. Lorens was our Product guy, we sparred on every inch of the platform and we created some damn good UX together.
I remember the first project I completed when I started at Gem. We wanted to create a consolidated NFT listing experience where you could select multiple NFTs to sell (from any collection you owned) and run the full listing process in one go. Until then, selling an NFT was a 'do it one at a time' situation, where the flow was painfully long. You would need to select, list, wait for the various wallet prompts, and then do it over all over again. Our consolidated listing flow was novel at the time. Creating novel experiences for users was honestly addicting. It kept all of us going strong. I was working a very odd schedule so I could overlap with the EU timezone but it didn't feel like a burden. It felt amazing to be part of a team that was so tuned in.
When it became clear that OpenSea was interested in acquiring us, I was pretty vocal about my disagreement. At the time, Gem was the people's platform. We were the underdog and people respected the enormous hustle the team had for building.
OpenSea was going through a negative perception issue where users felt they had become out of touch and were seen as the Meta of web3. My concern was joining would slow us down. OS was more of a scaleup rather than a startup. It doesn't compare to working in a team of <5 people who are all moving in sync. No perf evals, no 1:1s, just pushing stuff out every week. Our perf eval was what our users thought. I feared losing that energy.
While I disagreed with us joining, in hindsight, it ended up being the best timing. The market started to tank afterward.
OpenSea Pro and Blur
After getting acquired we focused on rebuilding Gem and tuning it to be more pro trader focused. We were calling that effort Gem v2 (later renamed to OpenSea Pro). Around the same time there were other entrants who were aiming for the same market (Blur). The thing about crypto is that it wasn't a mainstream market (at the time and still isn't). The people who do the most volume trading NFTs, tokens, etc are the same <200k wallets (with many of the same people running multiple wallets). In that wallet segment there are massive whales that run most of the volume.
We were kept as a separate team, so we kept our shipping cadence and aimed to ship something new almost every week. We were hyper focused on the pro trader segment, while OpenSea had more mainstream ambitions. The company was really focused on the normie segment and were hyper fixated on making the platform easy enough that even your grandma could use it. Theoretically this makes a ton of sense, make the product dead simple so anyone can use it. The issue is, that massive segment of people don't care about crypto. The trading volume was with pro traders.
In a way they were being smart to hedge bets - have a team be super focused on pro traders and then try to branch out and become the de facto platform for normies. But in practice, this disjointed ambition can create friction. We were met with a lot of resistance from OpenSea leadership about what we were building, how we worked, and there were concerns about us being separate. All of this makes a ton of sense, in hindsight. If you just purchased a very expensive team you want to make sure your investment is paying off and not going off the rails.
Every decision we were making on OpenSea Pro was grounded on user calls we were having. We stayed close to our users because we were able to keep our Discord server. This was a hard time for us all because we were trying to build alignment with Leads. How could we convince leadership that what we're building is the right thing for our users (even as we have a lot of user research findings and iterations to reference)? It really became a lesson in managing up. When you're in a small team, your boss is your user to a certain extent. When you get acquired, your job becomes split - you have to explain your direction and reasoning to leadership and you need to stay committed to building the right thing for your users. We were having difficulty with the former so we started to showcase our work and findings internally to build internal alignment.
OpenSea was a dominant NFT platform in 2022 and at that time they were under a lot of heat. Every new exposure came with wave of negative public sentiment. And I found that sometimes leadership felt it was safer to labor over comms and marketing logistics rather than just release and learn. As a builder, it felt frustrating to have something sit while marketing comms were sorted out. Every day we didn't ship, we didn't learn and we couldn't iterate.
By the time we shipped OpenSea Pro, Blur had overtaken the pro trader market and our entry wasn't enough to overcome Blur's momentum and incoming token.
OpenSea was looking for a second act
We shipped OpenSea Pro and with that came a massive change in how we operated. We were disbanded as an independent team and spread across the org in an effort to have the rest of the org absorb how we worked: Fast, efficient, and focused.
Shortly after we launched OpenSea Pro, we were pulled in to help with the rewrite and redesign of OpenSea proper. We were calling it OS2. At that same time, leadership had decided they wanted to trim the workforce in an effort to make the company have less layers and become more startup like. That's when around half the company was let go.
If you've ever survived a layoff like this, it's quite jarring. At face value it could make logistical sense that less people will mean more efficiency. But that only makes sense if you have a clear north star of where you need things to head and who you want to serve. We didn't necessarily have that north star beyond just making the product more code efficient. We set off to figure out product alignment and it became a situation where you're riding the bicycle as you're building it.
Even at more than half the size of the company, the team still felt misaligned and moved slowly. I think partly it was because for many this was their first go around at a start up and it's harder to jump off the deep end when you're used to certain layers and process. I know this because I did two rounds at LinkedIn and some rounds at smaller start ups in between. You really need to be willing to go all in, and that's not for everyone. And it shouldn't be. Not a knock just the sobering reality of start up life.
What followed was a long cycle of very intense sprints. We would rewrite, redesign, redesign again, have user research calls, tweak UI to death. There were multiple redesigns, and for most of them it was me and another designer focused on getting stuff done.
What made this segment of time painful wasn't the work itself. Designing and coding something from scratch is easy and fun. The pain came from the general misalignment on who we should be building for: normies, semi pros, pro traders, or everyone? Leadership wanted us to design for everyone. We ended up with a hybrid UI where you could move between the normie mode ↔ pro mode seamlessly. It would morph the page to go from airy tables and grids to compact views. It was a solution to the wrong need.
We labored over what the views should be but I'd still argue that the prompt "Build an NFT platform for everyone" was still the wrong one.
If I could go back I would argue the prompt should have been "Build a trading platform where anyone can trade without being on the page".
A behavior we were already seeing from pro traders was they were building bots to run transactions for them. The UI mattered less and less. If you weren't technically inclined that way (pre-AI) then you would rely on the UI to run every transaction. So our job really should have been, how do we help anyone automate transactions so they are not tied to their screens? How do we make those transactions feel safe? How do we give people trading intelligence so they make the right decisions?
By the time we launched OS2, the market had fully moved on from NFTs and into token trading. We then spent time catching up to fill that gap. Then it was decided that we needed to redesign our mobile app. In hindsight, a lot of product development was a direct reaction to new entrants attempting to take a slice of what OS was doing. It was less so grounded on finding unique solutions to problems.
Coming from a team like Gem, it was odd being on the receiving end of a trend, versus designing the model people would copy.
The last year and adopting AI
In the last year at OpenSea, I got really into learning AI and figuring out how I could speed up my design outputs. Even going so far as pushing out production grade code myself for UIs I was building on our web and mobile apps.
The biggest point of gratitude I have to OpenSea is how much they encouraged me to look at my workflow and adapt AI in the best way possible. Having unlimited access to tokens so I can learn on the job was honestly something that really tweaked my mindset on who I wanted to be as a software designer. I came out of OpenSea seeing myself as a zero to 1 builder rather than only a designer.
3 lessons that I'll carry
- Building is an endurance sport. Take that walk. Take that day off. Some of my best ideas have come during dog walks. Resting the brain makes you a better creative.
- Just ship it & learn. Brutal timelines only mean something when you actually ship. Otherwise you're just delaying learnings and in turn delaying improvements you could be making.
- AI is a tool, not a crux. AI is almost like being handed an Iron Man suit. While I think some of the doomsday lines about AI replacing all jobs are a bit overblown, I do think that consolidation will and is happening. Pretend you are a people manager to your agents and learn when to delegate certain parts of your job, and when you should just do something yourself.
What's next
I plan on traveling, catching up on sleep, cooking, hiking with my dogs, visiting family, and building a few apps. I'm grateful to be in a position where taking a break is possible. I hope to come out the other side rested, with a normal sleep schedule, and with a lot of mileage on my AllTrails app.
Let's see where I am in 6 months.