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 / .releaserc
Last active August 5, 2020 14:40
E2E Dependency Automation
{
"plugins": [
["@semantic-release/commit-analyzer", {
"preset": "conventionalcommits",
"releaseRules": [
{ "breaking": true, "release": "major" },
{ "revert": true, "release": "patch" },
{ "type": "build", "release": "patch" },
{ "type": "docs", "release": "patch" },
{ "type": "feat", "release": "minor" },
@ahmadnassri
ahmadnassri / README.md
Last active July 30, 2020 06:03
node LTS test coverage

requirements

usage

  • create a file called docker-compose.yml in your project directory
  • copy the content from this gist to docker-compose.yml
  • run:
@ahmadnassri
ahmadnassri / bulk-clone
Last active January 20, 2022 00:33
bulk-clone with gh + jq
#!/bin/bash
USAGE="Usage: bulk-clone <mine|user|org> [name]"
[[ $# -eq 0 ]] && echo >&2 "missing arguments: ${USAGE}" && exit 1
# set protocol to ssh
gh config set git_protocol ssh -h github.com
# check if gh cli is installed
@ahmadnassri
ahmadnassri / git-status-all.sh
Last active November 3, 2018 17:34
run `git status` on all sub directories
#!/usr/bin/env bash
find . -mindepth 1 -maxdepth 1 -type d -print0 | xargs -0 -I {} bash -c 'echo -e "$(if [[ -z $(git -C {} status -s) ]]; then echo "\e[32m✔"; else echo "\e[31m✖"; fi) $(basename {})"'
@ahmadnassri
ahmadnassri / twilio-functions-sms-to-email.js
Created November 2, 2018 04:33
Twilio Functions: SMS to Email Twilio with SendGrid Client
// import sendgrid library
const sendgrid = require('@sendgrid/client')
// target email address
const email = 'address@domain.tld'
// sms email domain
const domain = 'sms.domain.tld'
exports.handler = function (context, event, done) {
@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()
@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 / 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 / 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

Usage

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

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