Light of the moon
Moves west, flowers' shadows
Creep Eastward
- GitHub Staff
- http://zerowidth.com
JD Maturen, 2016/07/05, San Francisco, CA
As has been much discussed, stock options as used today are not a practical or reliable way of compensating employees of fast growing startups. With an often high strike price, a large tax burden on execution due to AMT, and a 90 day execution window after leaving the company many share options are left unexecuted.
There have been a variety of proposed modifications to how equity is distributed to address these issues for individual employees. However, there hasn't been much discussion of how these modifications will change overall ownership dynamics of startups. In this post we'll dive into the situation as it stands today where there is very near 100% equity loss when employees leave companies pre-exit and then we'll look at what would happen if there were instead a 0% loss rate.
What we'll see is that employees gain nearly 3-fold, while both founders and investors – particularly early investors – get dilute
| #!/usr/bin/env ruby | |
| # hackertyper-style playback of series of tty recordings created by | |
| # ttyrec. | |
| # | |
| # usage: | |
| # hacker slides/* | |
| # | |
| # - Type randomly to move forward inside file | |
| # - backspace to skip back or prev file |
| import interface | |
| class IFoo(interface.Interface): | |
| def foo(self): | |
| """foo this object.""" | |
| class IBar(interface.Interface): |
I'd like to share some git aliases that you might find useful if you handle pull requests from others.
Add these to your ~/.gitconfig in the [alias] section:
copr = "!f() { git fetch -fu origin refs/pull/$1/head:pr-$1; git checkout pr-$1; } ; f"
prunepr = "!git for-each-ref refs/heads/pr-* --format='%(refname:short)' | while read ref ; do git branch -D $ref ; done"
Now you can "git copr #{pr_number}" (check out pull request is the mnemonic) and it will pull down the PR in a local branch of pr-#{pr_number} and check it out for you. To do it right, you must pronounce it "Copper" with a James Cagney gangster accent.
| #import <Foundation/Foundation.h> | |
| #import <Cocoa/Cocoa.h> | |
| #import <unistd.h> | |
| BOOL copy_to_clipboard(NSString *path) | |
| { | |
| // http://stackoverflow.com/questions/2681630/how-to-read-png-image-to-nsimage | |
| NSImage * image; | |
| if([path isEqualToString:@"-"]) | |
| { | |
| // http://caiustheory.com/read-standard-input-using-objective-c |
| (require '[clojure.test :as test]) | |
| ; Rewrite clojure.test to generate data structures instead of writing to | |
| ; stdout | |
| (def ^:dynamic *results* | |
| "Bound dynamically to an atom wrapping a vector of test report maps") | |
| (defn add-name | |
| "Given a testing report map, assoc's on a :name derived from the current | |
| `clojure.test/testing` context." |
A checklist for designing and developing internet scale services, inspired by James Hamilton's 2007 paper "On Desgining and Deploying Internet-Scale Services."
- Does the design expect failures to happen regularly and handle them gracefully?
- Have we kept things as simple as possible?