"Send this user a file, securely, through their login (and specifically not as an email attachment)."
Every system eventually recapitulates email but you don't have to recapitulate email's infelicities for B2B file transfer, such as:
a) no verification on recipient
b) content default-persisted indefinitely
c) lack of an edit/yank button
"What sort of things do you end up sending here?"
Ad hoc reporting is very common support request for many SaaSes. Incident-related comms. ("We manually corrected the following 57 records created during the browntime.") Returning user-requested forms that contain sensitive info.
Also you will, as time goes to infinity, eventually have a circumstance where you will be asked "Are we absolutely positive that X received this document and can we demonstrate that to the satisfaction of a skeptical but reasonable third party?"
(This could totally be a business, by the way, given the pain involved in building this. Inserting you into the loop does theoretically increase attack surface but are you going to do a worse job that an agency looking up S3 docs to figure out 47th checkbox in the bid doc?)
• • •
Missing some Tweet in this thread? You can try to
force a refresh
(I’d be borderline alarmed if we couldn’t do this for interns. Which is not a desirable posture for every shop, but once you’re scaling hiring, gets very close to mandatory unless you want to leak months of spin up time.)
This is an interesting proof of work though. A number of systems at Stripe it would hit:
1) You have a fully credentialed machine on day one (surprisingly not universal!)
2) That starts w/ a checkout of the mono repo and our supported dev environments installed
3) Your engineering spin up will have showed you a slide deck listing a number of places to search for things, probably most importantly livegrep (how did I work before this) and our docs systems*.
* Ongoing pain point. Please come solve it for us.
A surprisingly generalizable strategy for creating value:
1) Find something which everyone assumes that someone must own (in the sense of "having responsibility for"). 2) Act like you own it.
A work-related example of this: surely someone must be in charge of marketing convenience store payments as a method, like someone is in charge of marketing e.g. cards, right? So there is a logo, right?
It turns out nobody is actually in charge of that.
There are multiple convenience store chains and multiple networks, and while the experiences are roughly equivalent, they don't have any incentive to e.g. make a marketing materials kit for participating businesses.
So there is no logo in broad currency to show that option.
Much like AI, any micropayments system which develops a UX which customers actually want to use is no longer called a micropayments system.
AdWords, iTunes single track ordering, subscriptions, and game style dual-money currency systems are all examples.
The reason this keeps happening is that people think the central feature of micropayments, the user's explicit decision to pay a subeconomical amount of money in return for a particular good or service, is something people want.
It is something people extremely *do not want.*
"Imagine if your messaging app wasn't free."
"OK, like text messages years ago, I remember that era."
"Yes imagine that the price of a text depended on various factors and was different every time."
"... Ugh?"
"And then we'd tell you how much before hitting the Send button."
In honor of someone’s bad bug today, I will retell a story of my worst bug:
Once upon a time I was the CEO and entire engineering team of a company which sent appointment reminders.
Each reminder was sent by a cron job draining a queue. That queue was filled by another cron job
Reminders could fail but the queue draining job had always been bulletproof and had never failed to execute or take more than a few seconds to complete. It ran every 5 minute.
So I had never noticed the queue *filling* job wasn’t idempotent.
Idempotent is a $10 word for a simple concept: an operation where you get the same result no matter how many times you run it.
Adding 2 + 2 is idempotent. Creating a new record in your database may not be; the number of rows in the DB goes up each time.
One thing that I non-ironically appreciate about the cryptocurrency community is that the transparency ethos from those projects that are not outright frauds will provide an unprecedented amount of historical content into e.g. collapse of financial institutions.
Years of Congressional inquiries, books, etc later, most people (even very interested people) have a very poor mental model of what happened during the global financial crisis.
Meanwhile in crypto you can literally see the warroom chat logs as they're losing tens of millions of dollars of depositor's money and trying frantically to stop it.
The most recent hiring class in Japan is larger than the entire Japan team from the day I joined.
We have our first product (which I’ll elide mentioning) where the ratio in usage between US and Japan is commensurate with economic size.
We’ve recently released convenience store (konbini) payments in Japan. Early users are loving it.
Our experience in many markets has been that users get jaw-dropping conversion lifts for letting customers pay in the way they want, versus standardizing on cards only worldwide.