Skip to content

Instantly share code, notes, and snippets.

View ahmadnassri's full-sized avatar
🏠
Working from home

Ahmad Nassri ahmadnassri

🏠
Working from home
View GitHub Profile
@ahmadnassri
ahmadnassri / gitupdate
Created March 22, 2014 03:19
Update all git repositories in a directory
find . -maxdepth 1 -type d -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master \;
@ahmadnassri
ahmadnassri / keybase.md
Created October 8, 2014 05:28
keybase.md

Keybase proof

I hereby claim:

  • I am AhmadNassri on github.
  • I am ahmadnassri (https://keybase.io/ahmadnassri) on keybase.
  • I have a public key whose fingerprint is 1778 AEC3 487B 70E9 6CC9 27D3 A91B 9CF6 53A5 6417

To claim this, I am signing this object:

@ahmadnassri
ahmadnassri / animal.js
Last active March 23, 2016 03:21
require collision
module.exports = {
type: 'animal'
}
@ahmadnassri
ahmadnassri / node-babel.md
Created August 26, 2016 15:00
Node - Babel ES mapping

ES2015

Node Version Babel Plugin
<= 0.12.x babel-plugin-transform-es2015-arrow-functions
<= 0.12.x babel-plugin-transform-es2015-classes
<= 0.12.x babel-plugin-transform-es2015-computed-properties
<= 0.12.x babel-plugin-transform-es2015-for-of
<= 0.12.x babel-plugin-transform-es2015-template-literals
<= 0.12.x babel-plugin-transform-regenerator
@ahmadnassri
ahmadnassri / diagonal.svg
Created December 25, 2016 17:26
Diagonal Separators
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

Usage

sync-projects [direction] [please] [delete]

direction: values: up or down
please: confirm action or attempt a dry run
delete delete files on destination

@ahmadnassri
ahmadnassri / company-ownership.md
Created April 11, 2017 16:16 — forked from jdmaturen/company-ownership.md
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

@ahmadnassri
ahmadnassri / size-chart.md
Last active July 2, 2018 18:44
Social Media Cheatsheet
service type width height
Email Header 600 200
Facebook Cover Photo 820 312
Facebook Event Cover Photo 1920 1080
Facebook Link 1200 628
Facebook Post 1200 900
Google+ Cover Photo 2120 1192
Instagram Post 1080 1080
LinkedIn Post 744 400
@ahmadnassri
ahmadnassri / email-to-sms.js
Created November 2, 2018 04:26
Death to SMS
const from = '+1xxxxxxxxxx' // your phone number
const sender = 'address@domain.tld' // your email address
exports.handler = function (context, event, callback) {
// use the first part of the reply-to address as destination
const to = event.to.split('@').shift()
// take only the first line of the email body as the sms message
const body = event.text.split('\n').shift()
@ahmadnassri
ahmadnassri / email-to-sms.js
Created November 2, 2018 04:31
Twilio Functions: Email to SMS with SendGrid Parse
const from = '+1xxxxxxxxxx' // your phone number
const sender = 'address@domain.tld' // your email address
exports.handler = function (context, event, callback) {
// use the first part of the reply-to address as destination
const to = event.to.split('@').shift()
// take only the first line of the email body as the sms message
const body = event.text.split('\n').shift()