People sometimes ask us whether Wave uses cryptocurrency or blockchain technology. An important part of the cryptocurrency narrative is that it can help financial inclusion—after all, it’s a way to put your money on a computer, with no legacy banks or regulators acting as gatekeepers. Surely that’s what we need, right? Unfortunately, in reality, cryptocurrency doesn’t address the hard parts of financial inclusion. To see why, let’s look at the different problems that Wave needs to s...| www.wave.com
Effective altruism is a project that aims to find the best ways to help others, and put them into practice. It’s partly a research field, which aims to identify the world’s most pressing problems and| www.effectivealtruism.org
When I first started having responsibilities beyond writing code, managing my time suddenly became much harder. I felt like I spent most of my time wading through a sea of things to do and couldn’t get to the important long term work that I most wanted to do. To figure out where all my time went, I started tracking it using Toggl, which was the slickest app I found for starting/stopping task-specific timers, tagging tasks into “projects” and producing reports.| www.wave.com
Wave is a $1.7B company with 70 engineers1 whose product is a CRUD app that adds and subtracts numbers. In keeping with this, our architecture is a standard CRUD app architecture, a Python monolith on top of Postgres. Starting with a simple architecture and solving problems in simple ways where possible has allowed us to scale to this size while engineers mostly focus on work that delivers value to users.| www.wave.com
When I wrote The unreasonable effectiveness of one-on-ones, I felt like my one-on-ones mostly involved doing generic stuff that anyone who cared a lot could do. So I was surprised when someone on Hacker News left this gem of a comment: I’ve had a thousand+ 1x1s with countless people (both as a manager and as a report), and the majority of them are just time sucking status updates, casual meet and greets, or some performance/process related discussion.| www.wave.com
Before joining Wave four years ago, I spoke to a former employee about his experience. He said something that has stayed in my memory ever since: “Wave is really good at execution, so by working at Wave, you’ll learn how to execute very well.” Now that I’ve been here a while, I thought it would be good to write down what really good execution actually looks like in practice and the counterintuitive lessons I’ve learned along the way.| www.wave.com
Joyce opened the backpack and dumped a heap of cash onto the table. A powerful odor of fish filled the room. She and Ben looked up at me: wide-eyed, fresh off the plane, first time in Senegal. “Don’t worry,” Ben deadpanned. “This is a totally legitimate company." Mbour, Senegal, July 2018. I had just flown in from Myanmar, where I’d been working on conflict prevention, to interview for a job at Wave.| www.wave.com
By far the biggest code improvement we made to Wave was to split our codebase in half. Our first product was building faster and cheaper money transfer to Africa, by delivering funds directly to M-Pesa and similar systems. That business grew incredibly quickly, but eventually hit a wall: most countries in Africa didn’t have a system like M-Pesa. We realized that this roadblock was actually an opportunity. Instead of just international money transfer, why not build our own mobile money syste...| www.wave.com
We built our first Android app in 2014. Like most 2014-era Android apps, it was a mess of fat Activities, heavily-nested callbacks, and spaghetti dataflow. Fortunately, since then Google has iterated a lot on their Android best practices, and we’ve iterated a lot on our apps, giving us plenty of chances to make things better. During the most recent time we rebuilt our agent app, we looked at the new androidx libraries and decided that they almost met our needs–but they left a few crucial ...| www.wave.com
This document grew out of our internal “questions to ask during code review” checklist: we realized that if we turned the questions into advice, it made a great summary of what we think makes code great. We’re publishing it here so that if you’re interested in working at Wave, you can see whether your taste meshes with ours–and if you’re interviewing, you can see how you’ll be evaluated. Ship. We succeed by learning new things, and we learn by shipping.| www.wave.com