People sometimes ask me whether Wave has any plans involving crypto, presumably because of the narrative that crypto is supposed to help with financial inclusion.
Unfortunately, in reality it doesn’t and we don’t. Crypto does not solve any hard financial inclusion problems.
Wave needs to solve, roughly, 3 problems in order to financially include someone: 1. track their balance 2. comply with regulations 3. convert balance to/from cash
Crypto is a very exciting solution to 1, but Postgres is a boring solution to 1 that is much faster.
People sometimes think crypto helps with 2, because it’s *technically* not currency. This is... not a great assumption about how governments/regulators work. It turns out that if you follow the letter but not the spirit of the rules, people eventually notice and tell you to stop.
Meanwhile, 3 (conversion to/from cash) is the most difficult part, which crypto partisans typically completely ignore, probably because most haven’t thought very hard about what it’s like to be a member of “financial inclusion’s” target demographic.
Let’s say you’re a typical Wave user, a fisherman in Senegal.
You make ~$5/day. Are you going to keep part of your ~$0 net worth in a separate crypto balance? Hell no.
Your reading level is “kinda.” Are you happy to do exchange rate math every time you touch crypto? Hell no.
If you’re going to use a digital currency, exchanging for cash needs to be seamless. That’s why a key part of Wave is our massive network of agents—so that most people are a <1km walk from their cash. Those agents would be... not pumped about being crypto exchangers instead.
In other words: accessibility is the hardest part of improving financial inclusion, and crypto makes that way *harder,* not easier!
If you want to improve financial inclusion, do it by working backwards from the end state + tackling the biggest problems head-on, not by throwing your favorite shiny tech at it.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
I just finished *Creative Selection* by Ken Kocienda, which is largely the story of how he came to build the iPhone keyboard.
It’s a great example of how many twists and turns it can take to come up with something that seems so incredibly normal!
v1 started out looking like...
some wacko phone-keypad variant, because the developers were super worried about touch targets being small. The input method for this was: tap to get the top letter, swipe left/right to get the bottom letters.
Except instead of the letters being organized like a phone keyboard, they’re jumbled up. (Presumably to make sure that common letters were taps, not swipes? But that plus the gestures seems impossible to learn.)
It feels like every couple days, I learn a new Git trick. (Sigh.)
I'm going to start a running thread indexing them, because (Git's defaults are so bad that) some of them are pretty big quality of life improvements!
A fun one I noticed recently is that they added `git switch <branch>` as a more intuitive replacement for checkout. Extra fun: `switch -m` moves your uncommitted changes (no more `stash/pop` dance!). Hoping this is a sign of more UI improvements to come!
Maybe my favorite: `git log --first-parent` shows history but *only merge commits*. Even if your repo doesn't squash-merge, this still gives a clean view of your history. A former coworker liked (our use of) this so much he wrote an explainer: …om.s3-website-us-east-1.amazonaws.com
Happy @threadapalooza! 100 (tweet-sized chunks of) stories from trying to build mobile money in Ethiopia, Ghana, Nigeria, Senegal and Cote d’Ivoire.
(Minus the ones I’m not supposed to talk about :P)
It all starts in ~Sep 2015 with me pretending to be an accountant.
“Huh?” It turns out doing the accounting for an international money transfer business is hard. There is a normal way of doing this, but instead of trying to find out what that was, we were like, “this seems like it should be 100% automated! We’ll just do that.”
LOL
(This was part of our general take that hiring was for chumps, instead we’d scale ourselves by building internal tools)
So that’s how I ended up closing Wave’s 2015 books by spelunking through a homegrown database for 3mo with handwritten SQL and a half-baked Flask-Admin UI.
The advantages of pair programming are things like:
• Reducing risk of mistakes / doing things sub-optimally
• Sharing knowledge between the people who are pairing
• Making it easier to stay focused
None of these are programming-specific, except maybe that knowledge-sharing is unusually important (because benkuhn.net/blub/). I'd argue that the point about focus is *anti*-programming-specific: programming is much more conducive to flow states than most activities.
Today @Delta both:
(a) made me remove the p100 I was wearing underneath my valve-less cloth mask;
(b) let people around me wear masks under chins for hours 🤦♂️
So I was surrounded by maskless people + had a much less safe mask myself. 0/10 idiotic safety theater, fly elsewhere.
(Why try a p100? Based on a microcovid.org rec—it's easier to get a good seal with a P100 respirator than an N95, and they are better filters. The cloth mask protected others from outflow. But, silly me to do something that needed *thinking* to verify it was ok.)
Classic case of rules based on socially-approved talismans rather than effects on reality: 1. As I pointed out at the time, (their interpretation of) the policy was instructing me to *just remove* a layer of protection and this couldn't possibly make anyone safer.