What I use
Hardware
My main workstation is a 2021 Macbook Pro1 with the M1 Pro chip.
When working from my desk, I use a Microsoft Sculpt Ergonomic keyboard2, and a big additional monitor. Using a laptop stand to lift the laptop to eye level is a must.
Software
In my Mac setup, I heavily utilize yabai, skhd and karabiner-elements. With enough tinkering, it is possible to recreate most of the i3 tiling manager experience. 3 My setup is based on these dotfiles. For Linux desktops, I use Arch Linux (btw) with i3. 4
While I often work on a local machine, I definitely prefer using the laptop as a thin client to a remote server.
I was a very early adopter of both Cursor and Claude
Code. As of Sept 2025, I prefer Claude Code, but I still use
Cursor as an editor, for its low-level editing features, and to
occasionally ask GPT-5 if Claude is stuck. Models have blind
spots.. I write a new CLAUDE.md /
.cursorrules file for every serious project. Here
is a template.
On larger projects, I find git
worktrees quite useful; a natural setup is to have each
GitHub issue spawn a worktree, and for Cursor to open the parent
directory.
Some indispensable VS Code / Cursor extensions are JSON Lines Viewer, LaTeX Workshop. I like ruff as a pre-commit hook, and if you use that, use the Ruff extension too.
Regarding editor visuals, I use Solarized Light, and Monaspace Neon as my font with texture healing and ligatures enabled.5
I used Devin in early 2025, and it was okay. Key tricks I’ve learned for coding agents in general: sample a prompt multiple times right away instead of repeating after it fails; read the plans it delivers (because this is the point that makes or breaks the run most often); and keep the sessions short.
For virtual environments, ditch any Conda-like software, and
just use uv run.
Seriously.
While we’re at basic Python tips: (0) use uv; (1) a
simple Python tool that it is easy to forget about but is very
valuable when you need it is py-spy; (2)
spending 10 minutes learning
what asyncio actually is might be among the most valuable 10
minute intervals in your engineering career.
For navigating inside a terminal, fzf and z are great. You should set
unlimited history size. For running many experiments, I
launch a tmux session
with multiple panes from a script. When I am not inside the
Cursor terminal (where Cmd+K is good), I also like Simon
Willison’s suite of tools: llm, llm-cmd and files-to-prompt.
Python-based global tools such as these are always better
installed with uv tool install instead of pip or
using a virtual environment.
For automating git commit messages, as of Sept 2025 I just ask Claude Code or Cursor to commit. Don’t bother with specialized tools.
I paid for TypingMind, and there I chat to Claude / GPT-5 / Gemini APIs about all sorts of things. It supports asking multiple models at once and synthetizing their responses. In addition to these, as of November 2025, I use all of Claude, ChatGPT, and Gemini native apps every day. Gemini I use exclusively for two features: (1) Deep Think; (2) image generation. I also use ChatGPT (with the ergonomic Option+Space shortcut) quite often, on a bimodal distribution of queries: very quick questions where opening up a TypingMind window is overkill, and tasks where I want to use OpenAI Deep Research or a reasoning model. The Claude app I use the least; mostly for feedback on my writing.
My writing process combines various tools for different purposes. I often begin by using superwhisper to dictate initial drafts into TypingMind, then chat with Claude until I’m satisfied with the result. I generally spend a lot of time in Google Docs. I used to write my newsletter in Obsidian to take advantage of its Smart Composer plugin; but as of early November 2025 I’m back to Cursor now for the tab completion features. For rare types of structured notes, I still rely on org-mode in Spacemacs.
I use Espanso for a bunch
of things, e.g. :daydate -> current date in
dayofweek, Month DD, YYYY format,
:gpt5 -> gpt-5-2025-08-07, and so on. It works
on all apps where you type text.
For keeping work todos, I use Todoist; check this guide for how to use it.
I am subscribed to Setapp, mostly for Timing and Cleanshot X. I do not recommend Bartender anymore as of Oct 2024, and recommend paying $5 for Ice instead.
I endorse Anki, especially the mobile version.
I highly recommend setting up Google Alerts to track mentions of your name or pseudonym. Recently I’ve been using Beeminder to be more disciplined about the fraction of the time I spend on writing.
Web
I use Firefox with the following life-saving extensions: vimium, OneTab, uBlock Origin, Enhancer for Youtube, and Tab Notes. I am consistently impressed by how much value Tab Notes brings me in particular.
In Firefox (and perhaps other browsers), you can add bookmarks to LLMs and search engines like this:
- Name: ChatGPT
- URL: https://chatgpt.com/?q=%s
- Keyword: c
- Name: Claude AI
- URL: https://claude.ai/new?q=%s
- Keyword: cl
Some online tools I like: repo2txt, AoE clock. See also Simon Willison’s list.
Food and health
Meal replacements
While in Switzerland, I’ve had good experiences with Saturo. In general, replacing snacks with meal replacements seems to have little downside, mostly because sweets, soft drinks, and other popular snacks have genuinely horrible nutritional profiles.
Most tasty sweets aren’t even cheap, and I’m genuinely confused why they seem so popular compared to meal replacements and protein bars.
Ready-to-drink meal replacements typically have a protein/kcal ratio of about 0.05g. If you’re trying to gain weight and are hitting your daily protein target from other sources, you can get away with consuming a large fraction of your calories from meal replacements. If you’re cutting or maintaining calories, unless you have a very low body weight, it’s not advisable to subsist only on meal replacements. The fact that liquid calories aren’t as satiating as solid ones will do you no favors either. For reference, an 80kg man trying to lose weight without losing muscle mass should aim for roughly 160g of protein and 2000kcal daily, for a 0.08g protein/kcal ratio.
Saturo has, as of June 2025, a 0.09g protein/kcal ratio, putting you north of the recommended protein intake. It is 50% fava bean and 50% soy protein (confirmed by Saturo support).
The human body requires 20 amino-acids to build proteins. 18 of the 20 are adequately supplied by the 50% fava bean / soy protein mix, if you take enough of it. The remaining two are called methionine and cysteine; these are the only two amino-acids that contain sulfur. Readers familiar with protein design might recall methionine as the amino-acid corresponding to the start codon (AUG); this means that the process of protein synthesis from RNA always starts with a methionine. Naively, it would seem it’s pretty important to get enough of it! However, restricting methionine is considered one of the most promising approaches to human longevity, with robust extensions of lifespan in mice. I’m not sure what to think here. For reference, foods high in methionine and cysteine include whey, casein, egg whites, lean meat, brazil nuts, and sesame seeds.
Consuming only meal replacements can lead to deficiencies in micronutrients not covered in the primary nutrients (protein, carbs, fat, basic vitamins and minerals) that meal replacement makers focus on. This issue isn’t exclusive to meal replacements; many people don’t eat enough diverse foods to cover their micronutrient needs. I recommend near’s supplements review6 if you want a technological solution to this problem.
You can also try to consistently eat plenty of fruit, vegetables, nuts, seeds, and other nutrient-dense foods.
My main concern with Saturo is that, as of June 2025, the ingredients kind of also try to cure for all mineral deficiencies, in addition to just providing the primary nutrients. For instance, even 1000kcal of Saturo provides 20mg of iron, which is 2.5x the recommended daily intake for an adult male. (Reproductive-age women need significantly more iron.) If you consume most of your calories from Saturo, you’re effectively getting supplementation of iron, potassium, magnesium, manganese, zinc, copper, and selenium, without much choice in the matter. For most of these minerals, being physically active helps offset this in your favor as you need more of these nutrients than if you were sedentary. It’s unclear what the long-term health effects of a diet consistently rich in iron, manganese, magnesium, and similar minerals might be; even 3000kcal of Saturo daily would still be below acute toxicity levels, but nutrition science is a mess.
Supplements
This varies, but I have experimented with the Blueprint pill stack (Essential Capsules, Essential Softgel, NAC/Ginger/Curcumin, and Garlic/Red yeast rice), fish oil, beta-alanine, glucosamine sulfate, and creatine monohydrate. Of all of these, only creatine has clear and apparent effects that I have personally observed. Dry scoop your creatine.
Note: If you’re reading this, it’s statistically likely that you should take vitamin D. If you think this doesn’t apply to you because you do outdoor sports often, you should still apply sunscreen (if you’re male and dislike cosmetics, don’t be that guy! Skin damage from UV exposure isn’t manly, it’s just harmful), and you might also benefit from taking glucosamine sulfate.
Electrolytes
During exercise or a physically demanding workday, the body needs water, but also electrolytes (mainly sodium and a bit of potassium). I take the Waterdrop Microlyte cubes. Electrolyte connoisseurs will likely be shocked by the price (more than $1 per drink); but one thing I’ve noticed about the situations when I need electrolytes is that I very often have access to water for free, but actually having the electrolytes with me is the hard part. There are several other options I’ve seen, and all of those are less convenient than the cube form factor:
- electrolyte powder: can be had for less than $0.1 per drink. You need to mix it with water.
- DIY salt/sugar water: very cheap, can be made tasty, but somewhat inconvenient.
- a sports drink is (1) $2-4 per 500ml, and (2) you need to buy it and have it around. If you don’t usually carry a water bottle around and notice you buy one whenever you do physical exercise, this option might work for you.
Compared to the above options, the cubes are just extremely convenient, I carry some in my pocket and just drop one in whatever water container I am drinking from. The main downside of Waterdrop cubes is the chemical composition: they don’t have sugar, and a small amount of sugar is supposedly good for absorption; I generally dislike sugar so I’m okay with sugar-free options.
Physical items
I wore glasses for work for a long time. My prescription is low, so I can see okayish without them, but e.g. I couldn’t read the whiteboard in class. I had a bad experience with contacts as a teenager, so I didn’t try them again until recently. It seems the contacts I used to wear were just shitty. In retrospect, of all the things you want to consider saving money on, contacts might be the worst choice. Get an optometrist to give you samples of a few different types, and get the ones that work for you, no matter if you spend $0.5 or $2 per day on them.
I’ve had mixed success with sleep masks for regular sleep; though they are clearly useful on flights.
Clothes
Pants: I own Brax Woolook Flex pants; very comfortable, they look and feel very much like wool to my untrained eye, are but machine-washable (not to mention cheaper). You can also go for real wool if that’s your thing. Jeans can look good but are rarely comfortable. I don’t really like chinos.
Shirts: Non-iron shirts are essential. Do long-sleeved shirts. You can get good-looking pants for anywhere between $100 and $200; good-looking shirts for $50-$100. It makes sense to pick your colorscheme and stick to it. I have multiple light blue shirts of roughly the same color.
T-shirts: I am still looking for a good way to pick them out by fit; but again, pick a colorscheme and stick to it. I always have clean t-shirts in black and white.
There is a wide variation in how valuable time spent in different clothing stores is. If you are like me and can think of more enjoyable activities to spend your time on than trying out many different items of clothing, go to good stores; in the price range mentioned above I like Peek & Cloppenburg and Uniqlo.
Socks: I’ve been happy with Goldtoe Men’s socks. Buy many pairs of the same size. Regarding socks, you can organize them as follows: - after doing laundry, put the unpaired socks in a separate bag in the sock drawer; - every time you notice a sock that is torn, worn out, or otherwise damaged, throw it away; - when the bag is full, open it and try to pair socks up - every now and then, throw away the insides of the bag.
Shoes: I have one nice pair of boots; one pair of nice casual sneakers; and pairs of sneakers for running and basketball. All shoes need to be comfortable. Again, colorscheme is important! Do not do exercise (especially running) in your daily wear shoes.
Travel accessories
The following travel accessories bring quite a lot of value:
- Packing cubes (Go Travel is fine, one if backpack, two if suitcase);
- Comfortable noise-cancelling headphones (Sony WH-1000XM4);
- Ergonomic water bottle. I like my Waterdrop Ultralight Swing Lid, but honestly I do not know whether it is any better compared to alternatives.
- Power bank small enough to fit in a pocket. I like the Anker Nano. Its total charge capacity is awful and a new one, fully charged, will provide about 3500 mAh when accounting for thermal losses; your phone battery likely has between 4000 and 6000 mAh. (We’re assuming similar voltage in the phone battery and the power bank.) However, the greatest bottleneck for power bank utilization is actually having it with you and charged when you need to get 50% of your battery life back; the Anker Nano is (1) cheap; (2) very small; (3) you don’t need a cable to use it. I have multiple and just keep them in my pocket or backpack, and use them to charge my phone when needed.
- Universal adapter. I use the Verbatim Universal Travel Adapter. It is ridiculously versatile, can charge 5 devices at once, saves on space, and is probably cheaper than buying multiple adapters.
See also Vitalik’s backpack travel guide.
For a comprehensive travel checklist to ensure you don’t forget anything, see my travel checklist.
Pen and paper
I like the Pilot G2-07, black ink. Dots ~ plain > checkered > lined.
Motivation
- Kickoff songs: You say
run / For Those
About to Rock
- you can Pavlov response yourself to start working when then song kicks in
- Timing: a big clock on your desk
- Do not do phone stuff at your desk! Just go anywhere else. The desk is for work. This way your colleagues (or yourself) can see you are slacking off.
Notes on this page
Not every item on this page is updated all the time; but if something is listed here, you can safely assume I used it in the past year and was happy with it at the time of writing.
This page is best taken as a snapshot of my personal opinionated advice to my younger self. What works for me might not work for any particular reader
The hardware is fantastic in almost every way, but the software is a bit of a downgrade from a solid Linux setup. I had to pay to get my trackpad workflow back.↩︎
They discontinued it. How could they? It used to come with a fantastic mouse, and worked with both MacOS and Linux out of the box. I will never get rid of mine now. (I did get rid of the numpad, though. It’s nice that it comes separate from the main keyboard so I can just throw it away.)↩︎
I didn’t succeed completely – for example, with multiple displays, it doesn’t seem possible to label workspaces non-consecutively. If you have any ideas on how to do this, please let me know!↩︎
Since dropping Windows a long time ago, I used Ubuntu, then Arch, then Manjaro for a long time, then switched back to Arch on a new laptop. Manjaro and Arch are very similar and somewhat better than the others. There is no bloat at all if you go with i3.↩︎
The Apple default Menlo font is also good. Berkeley Mono unfortunately doesn’t do it for me.↩︎
Here is an important quote: “When I was young I didn’t understand why ‘vegetables’ or such should be good for me: adults would tell me they had”vitamins and minerals” in them, but I could obviously both a) test myself for vitamin and mineral deficiencies and b) supplement them if I was deficient in them. It wasn’t until many, many years later that I learned how amazingly complex everything we eat is and how many biologically active ingredients are in dishes. Think of a dish with many vegetables, spices, roots, meat, etc, as basically having 20 different drugs in it, but with all of them in very small doses. Many of them are also very slightly psychoactive too! Just as you can get high on nutmeg and sweet potatoes inhibit α-glucosidase and are thus anti-diabetic like the drug acarbose and red yeast rice is literally the same as a statin medication and berberine found in plants like barberry is a mimetic of the anti-diabetic drug metformin, the foods we eat on a daily basis have an astoundingly large amount of downstream effects in the body which have nothing to do with the vitamins or minerals in them. The cases we tend to know about like marijuana or opium are not rare in that they have strong biological effects, but rather are only rare in the dose response curves that are common with consumption.”↩︎