I had a piece of board lying around and one day I decided to make a cupboard. I sketched one out roughly and then told Oren Eini I’m building furniture, need a tutor and asked, will you be that?
I didn’t used to know him. I just figured, wtf.
Sure he said, took the drawing out of my hands, hastily examined it, then gave me a short list of things to think about:
Your cupboard is surely a cupboard, but it has no legs. I would add legs. Your drawer opening mechanics will erode eventually. I would use other materials. Your closing mechanics, well, there are none, right? You’re not quite done here, it seems. And here, take this sanding paper. It’s for later.
A little over a year went by. I worked on my project and shamelessly pinged Oren every 3–4 months with a short message about where I was at, which decisions I had taken and I always got back a list of things to work on next. Our communication was twitter-like.
“Hey Oren, I can do range search.”
“Cool. But what happens when there are many writers? How do you manage updates?”
“Fuck. Alright, catch you next quarter.”
The critique I heard
- Untrustworthy timestamps
- Code-readability could be improved
- Invalid use of file system to aquire virtual locks.
- Creating an expression tree from a lambda statement is a non-zero cost operation and the use of those are excessive throughout the codebase