James Carse has a theory[0] about this: “There are at least two kinds of games. One could be called finite, the other infinite. A finite game is played for the purpose of winning, an infinite game for the purpose of continuing the play.”
While I appreciate the “middle” metaphor, I think it’s unwise to generalize business (and real life situations, more broadly) as a chess game — life doesn’t often come with symmetric information and zero-sum stakes.
Annie Duke says it better than I can, in her book[0]:
> “Chess is not a game [in a game theory sense]. Chess is a well-defined form of computation. You may not be able to work out the answers, but in theory there must be a solution, a right procedure in any position […] If you lose at a game of chess, it must be because there were better moves that you didn’t make or didn’t see.”
> “The decisions we make in our lives—in business, saving and spending, health and lifestyle choices, raising our children, and relationships—easily fit von Neumann’s definition of ‘real games.’ They involve uncertainty, risk, and occasional deception […] Trouble follows when we treat life decisions as if they were chess decisions.”
To split this hair a bit, I think “code quality” has two definitions:
1. the degree to which the code can be trusted to operate correctly and in a fault-tolerant way (i.e. “yeah that API endpoint will give you a 5xx about 2% of the time, sorry about that, just retry!”)
2. the degree to which the code optimally models the problem it’s solving, as well as how flexible it is as priors/needs change in the future and whether optimal languages/frameworks/patterns are used to solve the problem expressively.
The former has obvious customer implications — if your webapp craps out every ~20min of usage, or your API silently drops data when it can’t persist something to a data store, that’s bad, you will lose customers (and you deserve to!). Conversely, lacking in the latter could slow you down as you iterate, but you’re just as likely to not need to touch that code for a while if you’re off building new views/features/what-have-you.
I think the “don’t worry about code quality” folks are generally trying to beat it into technical founders/builders’ heads that the thing they’re building is ultimately being judged as a product, not as an engineering project... but that doesn’t mean that reliability and performance aren’t part of what may make your product valuable.
> why aren't most messaging apps peer to peer [...] it's literally the point of messages: sending from one person to another.
Messaging apps are more like postal services — "please deliver this message to $person" — you're describing driving across town to drop something in a mailbox directly. A peer-to-peer messaging system wouldn't have many benefits over an E2E-encrypted one (in a centralized E2E-encrypted service you already enjoy technical guarantees that the courier can't peek inside the metaphorical envelope), but would have several usability drawbacks that would drive away casual users, which the sibling comments mention.
Driving away casual users has its own problems: you might drive them away to insecure services ("ah fuck it, this thing doesn't work, I'll just DM them on Twitter"), and the lack of casual users will make your remaining users stand out in traffic analysis (e.g. state agency says "hmm, askxnakjsn is using SuperEncryptoP2PMessenger, better go make sure they aren't a dissident").
I don’t know much more than you on this, but I’ve seen this explained as such: inflation requires the injected money to actually be circulated in the economy in order to dilute the value of the currency. of the money distributed to companies and individuals during the pandemic, how much of it went to everybody’s “rainy day funds” and war chests? Most folks I know that are on unemployment right now have touched <20% of their funds, and Americans just hit a record savings rate[1] last month. Schwab has an article[2] that explains the monetary effects of this better than I.
OTOH, optimizing for a highly-compliant police force could set you up for trouble if they end up executing orders that a less compliant force would refuse to follow on moral grounds.
Button is building a better way to do business in mobile — one that doesn't rely on antiquated, ineffective models like banner ads. We raised our Series C ($30M, led by Icon Ventures) last year and currently have a headcount of ~130.
We're hiring for several positions:
- Sr. Software Engineer, Backend
- Software Engineer, Backend
- Sr. {Android, iOS, Data} Engineers
- iOS Engineer
- Mobile QA Engineer
- Database Reliability Engineer
Benefits include: unlimited PTO (and a healthy attitude towards it), 401k + 3% match, relocation support, 18 weeks of paid parental leave, catered lunch, education + conference budget.
I'm an engineer here at Button. I'm happy to answer any questions you have about our open roles, and pass your resume onto our People team if there's a good fit — email me at kyle [at] use button [dot] com.
> calls a 1 hour meeting, [...] but now they feel the need to pad the remaining half hour with whatever
that's a wild way to run meetings — in my current organization, finishing a meeting ahead of schedule (when appropriate) is celebrated as "giving time back".
It goes deeper than anecdotal "I wish my client hadn't said anything", there are concrete reasons for this advice.
For example, according to rules of evidence, any exculpatory statements you make to police are hearsay and therefore cannot be mentioned in a trial. The police _can_, however, try to use that information against you and then use information derived from your original statement at trial.
There's a pretty popular lecture[0] on this. It covers a lot of edge cases and common arguments against "don't talk to the police".