Fascinating that infinitely complex systems can be constructed from ONE key component. Examples:
- NAND gate and computers
- Neuron and brains/minds
What other systems are like that?
When I was designing a debugger I figured that you could construct it from one operation: STEP_IN which returns stack and other info. Then everything else could be on top of that. E.g STEP_OVER is simply a series of STEP_IN until the stack is length is equal to the starting point
It’s fun to design systems by boiling it down to one thing. But it might not be practical (eg slow). Nonetheless it gives you a better grasp on the problem.
The universe seems to have a bias for conceptually simple things, despite messy implementations.
This is a good example and reminds of how LISP is *mostly* constructed out of functions. Even basic operations, lists, etc can be implemented using functions
If you want to start or join an early-stage startup, the most important investment you could make today is inner work to ensure you have the stamina & resilience to do extremely hard things.
Here is all self work I did between my 1st and 2nd startup that paid off big time:
1. Understand what matters to you
Startups are hard; if you start one you should aim to work on it for at least 5 years. To do something difficult for a long time you should care enough about it you'd do it for free.
I've dealt with poor sleep for many years. As someone who's excited & energetic, I had a hard time going to sleep. And as a startup founder, I've had a hard time staying asleep.
Today I sleep ~8 hours, and almost every aspect of life is better. Here is an ordered list of tips:
1. Schedule
Your mum was right: Go to bed and wake up at a consistent time. Weekends, weekdays, holidays, etc -- always stick to a routine!
If you sleep late after a night out, wake up early. If you're tired, resist going to bed early.
Eventually, sleep will become automatic.
2. Sleep hygiene
It's all about programming yourself for better sleep. Keep your room a sleep sanctuary. Resist working in there. Or even reading. The more things you associate your bedroom with, the weaker its automatic connection to sleep is.
Today this is most apparent in autocorrect, but the idea -- in a more advanced form -- goes back to the early days of computing. Interlisp shipped with a feature called Do What I Mean, which corrected spelling but also basic programming logic errors.
A more advanced and fascinating idea is for the computer to detect intention and act on it. Humans do it all the time; we see the intention in other people and act on it.
Software too can and should do basic intention-detection and I'm surprised I don't see it much in the wild.
We grew up in a very competitive field. Online environments have more dead startups than alive. We zoomed past startups 10x our size and capitalization, and we thrive despite incumbents many orders of magnitude larger than us.
We do it while rarely thinking about competition.
First, an axiom: humans are memetic creatures.
Remember how every startup was a chatbot startup a few years ago? Or a more recent example: Metaverse. Facebook renamed to Meta and two days later Microsoft announced their Metaverse strategy. I'm sure IBM is working on it too.
A new kind of program analysis is emerging: AI code analysis. Here is the current state of analysis and where I think it’s headed:
Static analysis, arguably a Good Old Fashion type of AI, it relies on explicit “reasoning” about the program using tree search and other algorithmic methods.
It’s painfully limited because it’s an ultimately undecidable problem. Eg, try proving that a program never halts.
To make code more analyzable there has been a trend to push the programmer to do more of the work. People are adding typing to all the dynamic languages: JavaScript, Python, Ruby.
As an early employee, I saw how painful startups were, in both success & failure.
Replit was forcing itself unto the world; it was no longer sustainable as a side project.
Before incorporating, here are all the ways we tried *not* to:
I tried to make it a project at Facebook where I worked.
I was careful in separating the two but when it became a big time and money sink, I told my boss. We tried to find a home for it but there was just no appeal.
I even emailed Zuck. No response. Time to move on.
I tried to merge it with two other startups at the time doing similar things.
Ultimately we had different visions for the future, and I didn’t think they were being ambitious enough.