Skip to content

Instantly share code, notes, and snippets.

View reidjs's full-sized avatar
:shipit:
TODO: write a clever status

Reid JS reidjs

:shipit:
TODO: write a clever status
View GitHub Profile
@reidjs
reidjs / industriousness_vs_competency.md
Last active January 15, 2024 03:22
Software Company Organization Chart Arranged by Industriousness and Competency

Software Company Job Titles by Time and Techical Skill Required

Time Required

  • How much time a person must spend in order to do their job effectively.
  • Ranges from short to long days.
  • I will use the word "industriousness" as a synonym for "time required to do their job effectively."

Technical Skill Required

  • How much technical skill and knowledge a person must have in order to do their job effectively.
  • Ranges from nontechnical to technical.
  • I use the term "competency" as a synonym for "technical skill and knowledge required to do their job effectively"
@reidjs
reidjs / software_ranks.md
Last active September 25, 2023 17:55
List of software ranks, unordered.

In no particular order, titles have no bearing on your actual job function or skill.

Senior Software Engineer

Junior Software Engineer

Guru Programmer

Prompt Hacker

@reidjs
reidjs / email-drafter.js
Created September 14, 2022 16:28 — forked from katydecorah/email-drafter.js
Draft emails in Gmail from a Google spreadsheet and a Google doc template: https://katydecorah.com/code/google-sheets-to-gmail-template/
// What is the Google Document ID for your email template?
var googleDocId = "abcd0000abcd0000abcd0000abcd0000";
// Which column has the email address? Enter the column row header exactly.
var emailField = 'Email';
// What is the subject line?
var emailSubject = 'You\'re bringing {Type}!';
// Which column is the indicator for email drafted? Enter the column row header exactly.
var emailStatus = 'Date drafted';
/* ----------------------------------- */
@reidjs
reidjs / note_organization_structure.md
Last active August 27, 2022 00:14
A five point strategy to keep your notes organized and easily searchable

A five point strategy to keep your notes organized and easily searchable

Why structure your notes?

There isn't a correct way to take notes, but I have found that having a system, any system, is extremely beneficial when you are working on large projects. Conventions allow you to stop thinking about the style of your notes and focus on quality and content. This isn't a list of rules that must be followed at all times, it's a recurring process that leads to a more useful collection of notes over time.

My system

  1. Keep all your structured notes in a single root folder and make sure it's safely backed up. I keep my notes in iCloud.
  2. Minimize directory depth. For example, you may have a music folder, but you should not have ANY folders within it, if possible. If you start accumulating a lot of guitar specific notes, you should make a new folder at the root directory named guitar.

Example file structure

@reidjs
reidjs / Pull Requests
Last active April 28, 2022 01:10
Keep Your Pull Requests Small, Explained Mathematically
It takes exponentially longer for a developer to review pull requests as they become more complex,
this is a simple model of the relationship:
t = k**n
t: time to complete code review
k: the number of files
n: the number of changes per file
This model demonstrates that smaller PRs are much faster to review. For example:

Keybase proof

I hereby claim:

  • I am reidjs on github.
  • I am reidjs (https://keybase.io/reidjs) on keybase.
  • I have a public key whose fingerprint is 5A82 ED6A 8515 F657 5A8A AB1E 4E5F C1F3 9CA9 4878

To claim this, I am signing this object:

@reidjs
reidjs / Boycott.sol
Created November 1, 2018 13:14
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.4.25+commit.59dbf8f1.js&optimize=true&gist=
pragma solidity ^0.4.24;
import "./ERC20.sol";
/**
* @title Devcon4BoycottToken
* @dev Very simple ERC20, where all tokens are pre-assigned to the creator.
* Note they can later distribute these tokens as they wish using `transfer` and other
* `ERC20` functions.
*/
@reidjs
reidjs / Boycott.sol
Created November 1, 2018 12:02
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.4.25+commit.59dbf8f1.js&optimize=false&gist=
pragma solidity ^0.4.24;
import "./ERC20.sol";
/**
* @title Devcon4BoycottToken
* @dev Very simple ERC20, where all tokens are pre-assigned to the creator.
* Note they can later distribute these tokens as they wish using `transfer` and other
* `ERC20` functions.
*/
@reidjs
reidjs / Address.sol
Created October 9, 2018 14:30
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.4.25+commit.59dbf8f1.js&optimize=true&gist=
pragma solidity ^0.4.24;
/**
* Utility library of inline functions on addresses
*/
library Address {
/**
* Returns whether the target address is a contract
* @dev This function will return false if invoked during the constructor of a contract,
@reidjs
reidjs / Address.sol
Created October 9, 2018 14:28
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.4.25+commit.59dbf8f1.js&optimize=true&gist=
pragma solidity ^0.4.24;
/**
* Utility library of inline functions on addresses
*/
library Address {
/**
* Returns whether the target address is a contract
* @dev This function will return false if invoked during the constructor of a contract,