Skip to content

Instantly share code, notes, and snippets.

View atmos's full-sized avatar
🌴
On vacation

Corey Donohoe atmos

🌴
On vacation
View GitHub Profile
@jdmaturen
jdmaturen / company-ownership.md
Last active July 29, 2023 22:39
Who pays when startup employees keep their equity?

Who pays when startup employees keep their equity?

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

Make it real

Ideas are cheap. Make a prototype, sketch a CLI session, draw a wireframe. Discuss around concrete examples, not hand-waving abstractions. Don't say you did something, provide a URL that proves it.

Ship it

Nothing is real until it's being used by a real user. This doesn't mean you make a prototype in the morning and blog about it in the evening. It means you find one person you believe your product will help and try to get them to use it.

Do it with style

@eric
eric / README.md
Last active December 17, 2015 00:39
Zookeeper-based storage adapter for rollout

Update

You can now find this packaged up nicely in a rubygem as rollout-zk.


Zookeeper storage adapter for rollout

I've implemented a zookeeper-based storage adapter for [rollout][] that does not require any network roundtrips to check if a feature is active for a user.

@technoweenie
technoweenie / camo.go
Last active December 14, 2015 22:29
incomplete rewrite of camo in go
// outdated
// see https://github.com/technoweenie/camo.go
@mislav
mislav / default.js
Created January 17, 2013 19:42
Un-fucks hijacked Cmd-clicks on links to open pages in a new tab. Put into your ~/.js
;(function($) {
document.addEventListener('click', function(event) {
if (event.metaKey || event.altKey) {
var link = $(event.target).closest('a[href]')
if (link.size()) event.stopPropagation()
}
}, true)
})(jQuery)
@eric
eric / bundle-outdated-github.rb
Created March 8, 2012 06:11
Annotate your "bundle outdated" with GitHub compare URLs
#!/usr/bin/env ruby
#
# Annotate your "bundle outdated" with GitHub compare URLs
#
require 'open-uri'
require 'json'
def rubygems_gem_info(gem_name)
@vmg
vmg / sparc.c
Created November 15, 2011 23:03
Sparks in C
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <float.h>
int main
(int argc
,char *ac []){int i, count = argc - 1;
double * dvalues=malloc(01- 01+count*
sizeof(double)+1); double mi=DBL_MAX,ran=.0,ma =DBL_MIN,mo;for(i= 00; argc>1
&&i<count;i=i+8-7) {double val = atof(ac[i+1]) ;if(23&&val<mi)mi= val;if(val
@lusis
lusis / wtf.sh
Created September 12, 2011 19:51
People ask if you know when it's time to move from a shell script to a higher level language? This is it
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
@sealabcore
sealabcore / entrancemusic.js
Created August 19, 2011 18:21
Campfire Propane Entrance and Exit Music With Gifs
/*
Play entrance music
*/
/* defining a new responder is probably the best way to insulate your hacks from Campfire and Propane */
Campfire.EntranceMusician = Class.create({
initialize: function(chat) {
this.chat = chat;
@fujin
fujin / gist:1098944
Created July 22, 2011 05:31
tests bombing out, so cool
[pod_services] [Fri, 22 Jul 2011 05:25:55 +0000] INFO: service[pod-services] not queuing delayed action create on ruby_block[pod-services] (delayed), as it's already been queued
: stdout
[pod_services] [Fri, 22 Jul 2011 05:25:55 +0000] INFO: service[pod-services] sending create action to ruby_block[pod-services] (delayed)
: stdout
[pod_services] [Fri, 22 Jul 2011 05:25:55 +0000] INFO: Processing ruby_block[pod-services] action create (pod-services::default line 55)
: stdout
[pod_services] Loaded suite /usr/local/bin/chef-solo
Started: stdout
[pod_services]
[pod_services] #<Class:0x00000001539f98>::ChefMiniTestRunner::DHCPTest#test_request: : stdout