Skip to content

Instantly share code, notes, and snippets.

View kiran's full-sized avatar

Kiran Bhattaram kiran

View GitHub Profile
@kiran
kiran / impact.md
Last active July 3, 2023 20:46
on impact

Requiring ICs to demonstrate business impact for promotion is, at best, imprecise, and, at worst, disingenuous. Instead, two more valuable and precise measures are:

  1. measuring project management & technical skills (can the engineer effectively/efficiently complete large, unscoped projects?), and
  2. evaluating the engineer's contribution to the team's roadmap (can the engineer identify high-value projects within the team's responsibilities? do they push their team to evaluate the prioritization of their work?)

Engineering ICs cannot plan to affect business impact in a foolproof way -- even if an IC had the means to evaluate the impact of their project, it's rare that they are empowered to select projects. Impactful projects are driven partly by luck: whether the project was timely/actually important, whether you get assigned that project, and whether you are given the resources to make the project successful. The influence of luck on impact often pushes engineers to do short-term/unrisky work, when long-te

@kiran
kiran / lisp_parser.py
Created June 7, 2016 02:01
writing a simple lisp parser in python
#!/usr/bin/python
# turn lisp statements into an AST
# going off a super basic grammar:
# - atoms are numbers or symbols
Number = (int, float)
Symbol = str
Atom = (Number, Symbol)

Keybase proof

I hereby claim:

  • I am kiran on github.
  • I am kiran (https://keybase.io/kiran) on keybase.
  • I have a public key whose fingerprint is 7644 0A77 59F1 1894 7670 E7BE AD4F 002A 5E97 9F35

To claim this, I am signing this object:

@kiran
kiran / rubocop_pre_commit_hook
Last active February 9, 2016 14:41 — forked from mpeteuil/rubocop_pre_commit_hook
forked pre-commit hook for changed ruby files. (whitespace sensitivity in the regex was borking selection)
#!/usr/bin/env ruby
require 'english'
require 'rubocop'
ADDED_OR_MODIFIED = /^\s*(A|AM|M)/.freeze
changed_files = `git status --porcelain`.split(/\n/).
select { |file_name_with_status|
file_name_with_status =~ ADDED_OR_MODIFIED
@kiran
kiran / app.py
Created November 12, 2013 21:16
stripe checkout flask implementation
import os
from flask import Flask, render_template, request
import stripe
stripe_keys = {
'secret_key': os.environ['SECRET_KEY'],
'publishable_key': os.environ['PUBLISHABLE_KEY']
}
stripe.api_key = stripe_keys['secret_key']
@kiran
kiran / stress_class.js
Last active December 10, 2015 01:08
JS behind the MIT Tech's stressful classes visualization. Data not available for privacy reasons.
var BubbleChart = (function () {
function BubbleChart (data) {
if (this == window) {
return new BubbleChart(data);
}
this.data = data;
this.width = 940;
this.height = 800;
this.format = d3.format(",d");