All Posts

How I use Roam Research

I stared at screens a lot this year. Roam Research made that time mostly worth it.

Roam is what you make of it. It’s ostensibly a note-taking app with an obtuse UI, but its product mechanics – bi-directional linking, easy page creation, embedding – allow for “networked thought” in a way that isn’t easy in other apps. Folks who use it religiously often describe it as a ‘second brain’. It’s extremely flexible: almost any writing process is possible in Roam, and increasingly Roam itself can be modified (e.g. support for custom CSS and JS).

Before using Roam I used note-taking apps sparingly and didn’t do any long-form writing or reflection outside of work. I journaled on and off but never developed a habit; I generally didn’t think of writing as a tool in my tool belt. Roam changed that. I started using it for journaling, but the use cases grew and grew, and eventually encompassed almost everything I type, save for messaging. Blog posts, grocery lists, recipe notes, book quotes, and more are all in Roam.

Continue Reading

Social/UGC products are uniquely difficult marketplaces

Social/user-generated content (UGC) products like Instagram, Twitter, or TikTok are a type of marketplace: creators are suppliers of content for consumers. In most marketplaces, suppliers are trying to maximize revenue, but in social/UGC suppliers have many different motivations: some want to maximize audience, while others simply want to share with their family or friends. Different motivations require different incentives, some of which compete or conflict with each other. This makes social/UGC a uniquely hard type of marketplace to build.

Marketplaces work by aggregating suppliers and consumers into the same space. Suppliers have incentive to use the marketplace because the consumers are there and vice versa. Marketplaces typically grow by incentivizing suppliers or consumers to use the marketplace more. Increased usage from one side of the market often leads to increased usage from the other side as well. Incentive design is thus a major activity taken on by organizations that run marketplaces; it’s one of the most effective ways to grow.

Continue Reading

The surprising impact of reducing batch size

“Ship fast” is among the oldest and most common pieces of software wisdom, getting repackaged over the years into Agile, the Lean Startup Method, or move fast and break things. It’s advice so trite that doesn’t even seem worth discussing, but I’ve been continually surprised at just how impactful it can be, specifically when you focus on reducing batch size.

A batch of work is a unit of work that gets shipped to customers. It could be a single copy tweak or a whole new feature; what matters is the end-to-end time from idea to production. Reducing it just means including fewer changes in that batch, not cutting out key parts of the product development process like UI polish, code quality, or QA.

At first blush, large batches might not seem like a problem. If you’re going the process is the same, what’s the difference between shipping feature X and Y together versus just feature X? I felt that way when I started working at Quora and was confused when I saw so much emphasis put into reducing batch size. But I was mistaken: there are a shocking number of benefits to reducing batch size, and I now think it’s one of the most important principles for shipping high-quality software quickly.

What makes small batches so impactful? The best explanation I’ve found comes from The Principles of Product Development Flow, a dense but great read on effective product development practices:

Continue Reading

Complexity can’t be removed, only moved around

A frequent goal in product design is to try and “make it simple”, which often manifests as removing product complexity for the end-user (e.g. removing steps from a flow). This may seem like it’s removing complexity, but in practice it’s usually moving the complexity to a different place – either onto the system, the organization that runs that system, other users, etc. Moving that complexity can still be the right decision, but it’s important to recognize that it’s not being removed altogether: it’s just somewhere else, with different tradeoffs that might be better or worse depending on the context.

Continue Reading

Users will satisfice

Satisficing is a decision-making strategy where you choose the first option that meets your criteria, rather than reviewing all the options available to you, e.g. ordering from the first restaurant that looks good versus checking out everything that’s open. In software, satisficing is common: tapping on the first link, tab, or action that seems like it’ll accomplish your goal rather than taking the time to learn all the things a product can do. In fact, satisficing is how most people use software. Most people aren’t going to spend the time to learn everything an app or website can do; they’ll spend the shortest amount of time possible to figure out if the product can help them accomplish their goal, and then move on. Despite how common satisficing is, designers often have trouble thinking in this mindset. Designers necessarily need to learn the ins-and-outs of the systems they are designing: how each feature works, how it interacts with other features, in what cases it does X instead of Y. But this introduces a curse of knowledge – once you learn a system it’s very difficult to put that knowledge aside and think in a satisficing mindset.

Continue Reading

Interfaces that help machine learning

Software ate the world, and now machine learning is eating software. More and more products are using ML to provide suggestions, rank content, or filter junk, thus making ML increasingly central to the user experience. When ML is good, it can create a delightful and frictionless user experience, like on TikTok. But making that happen requires ML and product design to work together – ML isn’t a magic black box that produces great experiences on its own. Under the hood, ML systems are just making predictions off of past data, and design decisions have a massive impact on the quantity and quality of that data (commonly referred to as signal). Thus, designers can have a massive impact on ML systems through their decisions. To unpack this, let’s look at some design patterns found in popular products and see how those patterns impact the ML in those products.

Continue Reading

The algorithm isn't everything: TikTok's virtuous cycle

TikTok’s algorithm must have the best PR in all of tech: a prevalent view is that it’s the singular magic behind TikTok’s success:

With the news that the TikTok/Oracle won’t include the algorithm and the possibility that Oracle will have to replace it, some have concluded that TikTok’s popularity will flatline, that it’s only a matter of time before Facebook eats their lunch via Instagram Reels. But despite Facebook’s previous success at cloning the competition, TikTok is a much more formidable challenge: they’ve built strong network effects on top of a unique graph that Facebook doesn’t have – one built on niche interests and esoterica rather than people you know or recognize. Historically, social products have been extremely durable to competition because of network effects, even more so when the graph is unique – Facebook being a prime example. Take the algorithm out of TikTok and it’ll certainly be hampered, but pure algorithmic advantages aren’t that strong of a moat: best practices dissipate through industry quickly, and most of what makes ML good in the first place is the underlying training data generated by user activity.

If network effects are what keeps TikTok on top today, is the algorithm responsible for getting TikTok here in the first place? The answer is a lot more complex than that.

Continue Reading

Japan travel recs

Where to go

  • Most folks I know who travel to Japan go for at least a week. I think Japan is most interesting at the extremes, so I recommend spending most of your time in a big city and a few days in a totally rural environment.
  • Start in Tokyo. It’s so big that I would actually recommend staying in two different places within Tokyo if you are there for more than a week, just to experience more of it. Shibuya is a really great place to stay, especially if it’s your first time, it’s probably the neighborhood closest to what you’re thinking when you’re picturing Tokyo. Rapponigi Chuo, and Shinjuku are also popular places to stay. Most important is just being close to a metro station (the Yamanote line in particular if you can).
  • Naoshima is the most amazing art experience I’ve ever had. It’s a small island in southern Japan that has a bunch of museums and insallations. Tadao Ando designed many of the spaces on the island, Yayoi Kusama’s Yellow Pumpkin is there, and James Turrell and Walter de Maria both created multiple pieces specifically for Naoshima. It can mostly be seen in a day or two, so despite being 6 hours from Tokyo by train it’s worthy of a 2 day trip (you can stay on the island).
  • On the western coast, I loved Kanazawa, Shirakawa-go, and Takayama. It was a beautiful place to experience fall; Kanazawa is home to one of Japan’s most famous gardens and Shirakawa-go and Takayama are both in the mountains so the colors were just incredible. Shirakawa-go is a traditional village filled with old farmhouses that you can stay in, highly recommended.
  • Kyoto is good if you’re really into old stuff (temples, museums, etc). I found it kind of boring and spread out in comparison to Tokyo.
  • Next on my list: Osaka and Hokkaido.


  • Here’s my map of my favorite places in Tokyo.
  • Definitely eat: sushi (duh), ramen (try something weirder than regular old Tonkatsu), udon (with tempura), soba, onigiri (seaweed-wrapped riceballs with a filling), tonkatsu-don (go to Butagumi), karaage (fried chicken), beef, curry, pizza (see this), spaghetti (see this), pastries/baked goods (try melon-pan).
  • Convenience stores are much higher quality than in the US, their prepared foods are pretty good, especially oinigiri.
  • Go drinking in Golden Gai. It’s really fun although pretty touristy. I love The Albatross.
  • Harajuku is probably the best place in world to shop. If you’re really wanting to shop you should probably budget 2 days for Harajuku alone. Ginza is the other main neighborhood people recommend for shopping but I think there’s much less uniquely Japan stuff there then in Harajuku, save for Dover Street Market which I do recommend. Daikanyama is also great, and is near an awesome bookstore Tsutaya Books.
  • Go to the electronics stores and arcades in Akhibara. It’s wild to see the diversity in electronics; so many products that exist in Japan only. The arcade culture is really out of this world, particularly in the evening.
  • Yukari’s cooking class in Shibuya is a really good Airbnb Experience™ if you like to cook. Yukari used to lived in SF so there’s a lot to talk about.
  • Have a Lost in Translation experience at the Park Hyatt. You can go to brunch at Girandole but I recommend going to the New York Bar at night. It is not cheap ($100 for cover + a round of drinks for two) but the view is incredible (plus you can smoke in there).
  • Take a day trip somewhere outside the city. Hannah and I had a really nice time staying at a ryoken + onsen (Japanese traditional inn) in Hakone (1.5hrs away). A lot of people have fun going to Kamakura (where the big buddha is).
  • I haven’t gotten to it yet but I’ve heard Womb, Oath, and Azumaya are good places to listen to electronic music.


  • Watch this 20m documentary from the 80’s on KFC entering the Japanese market, it’s a good lens on ways Japan is different from the West.
  • Nobody eats or drinks while walking around or waiting for a train, always at a place dedicated for eating.
  • There are almost no trash cans anywhere, everyone just carries their trash around with them and throws it away at home. Convenience stores sometimes have trash cans that you can use.
  • Don’t tip anyone anywhere, they will find it very rude.
  • Outside of a service context I haven’t found people to be particularly friendly. I think this is a combination of an insular culture and low English proficiency.
  • This won’t affect you directly but if you’re curious about Japanese working culture I really enjoyed this blog post.


  • Google Maps is essential for navigating (it’s much much better than Apple Maps in Japan). The subway and walking directions/estimations are particularly useful and accurate.
  • Japan still primarily runs on cash. Convenience stores usually have ATMs, I particularly recommend 7-11 because of the satisfying way it dispenses your cash (it feels like opening a loot box in a game).
  • Tabelog is the Yelp equivalent in Japan, similar in most ways except the rating scale: 3.5 is good, 3.75 is great, and almost nothing is above a 4 (including Michelin-starred restaurants). The ratings are much more accurate than Google Maps/Trip Advisor, especially for Japanese street food (which you should be eating a lot of!). It’s in Japanese only, so my general flow is to look for places on Google Maps first and then cross-checked them in Tabelog.
  • If you’re traveling to multiple places within Japan, it’s probably a good idea to get a JR rail pass, which allow for unlimited use of Japan Rail train lines for 7/14 days. You should buy them in advance of your trip (e.g. here), it’s cheaper than buying it once you’re there. If you’re mostly staying within Tokyo, it probably doesn’t make $$$ sense. Here’s a useful calculator if you’re on the fence.
  • Within Tokyo, there are two train systems layered on top of each other: JR and Tokyo Metro. You’ll probably end up using both to get around. You can get a reusable Tokyo Metro ticket (Pasmo) at any train station; you’ll probably use 500¥ of credit per day you’re in Tokyo (unless you’re only using JR lines).
  • Having mobile data in a necessity for getting around, I strongly recommend getting unlimited data. Getting a Japanese SIM is usually cheaper than buying international data and you can get one from the airport I’ve found hotel wifi quality to be pretty spotty and so often end up using data. I’ve heard Docomo is best network but I bet they are all pretty similar.
  • Hauling luggage around Tokyo is a huge pain, especially through the metro. Cabs are usually pretty expensive but worth it in this case; I take usually take the train to a major station and then just cab it from there. You can also store your luggage at both airports and most major train stations which is really useful.

Snapchat and the myth of unintuitive design

This week, an idea that’s circulated in the design community for the last couple of years has come back into play: that non-intuitive, primarily gesture-based interfaces have been key to Snapchat’s success and moreover constitute good design. From Intuitive Design vs Shareable Design by Josh Elman:

I’m here to tell you that the obscurity of Snapchat’s design is not a bug, it’s a feature. Just like Tinder, it’s a design that’s made to engage people and encourage them to share their experiences with others. In fact, it is a key part of what has made Snapchat so successful. Snapchat is one of the greatest examples of what I call “shareable design.”

Snapchat is no doubt successful, but I’m skeptical that their gesture-based “shareable” interface is the reason behind that success – if anything, I bet it’s hindered them.

Continue Reading