Skip to content

Instantly share code, notes, and snippets.

Avatar

Carter Rabasa crtr0

View GitHub Profile
View ff_2020_draft_order.js
function shuffle(array) {
var currentIndex = array.length, temporaryValue, randomIndex;
// While there remain elements to shuffle...
while (0 !== currentIndex) {
// Pick a remaining element...
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
View talk.njk
---
pagination:
data: talks
size: 1
alias: talk
permalink: "talks/{{ talk.title | slug }}/"
tags: ???
title: ???
layout: layout
---
@crtr0
crtr0 / devrel_faq.md
Last active December 31, 2019 10:52
Developer Evangelism FAQ
View devrel_faq.md

Q: What are the specific goals of developer relations?

There's no simple answer here, but I like to think of developer advocacy/evangelism/relations/etc as an extension of one (or more) of your company's core functions: product, sales, marketing and support. When I was a developer evangelist at Twilio, my team supported the Marketing org, so the team goals aligned with Marketing goals (driving signups).

Often you'll encounter a team of "Developer Advocates". The Google Chrome org has a team of Developer Advocates for example. These folks tend to align more with the Product organization, and their goals/metrics likewise align with the broader goals/metrics of the Product org.

Q: How do you measure it?

You can use the baseline metrics associated with your functional groups (i.e. top of funnel signups for Marketing) and then layer on metrics that capture the impact that the team is having in isolation from the overall organization. Example: developers who signed-up for your product because an evangelist

@crtr0
crtr0 / TypeText.js
Last active March 25, 2019 16:59
React component for typing out words (uses Hooks)
View TypeText.js
import { useState, useEffect } from 'react'
// wordList is expected to be an array
const TypeText = ({ wordList }) => {
const words = wordList
const [text, setText] = useState(null)
let wordIndex = 0
let typingIndex = 0
let timer
@crtr0
crtr0 / resources.md
Created March 13, 2018 18:30
Financial independence and budgeting resources
View resources.md
@crtr0
crtr0 / main.js
Created November 9, 2017 21:46
GH OAuth callback in StdLib
View main.js
/**
* Function to handle a Github OAuth callback
* https://developer.github.com/apps/building-integrations/setting-up-and-registering-oauth-apps/about-scopes-for-oauth-apps/
* @param {string} code Required. The code you received as a response to Step 1.
* @param {string} state The unguessable random string you provided in Step 1.
* @returns {string}
*/
module.exports = (code, state, context, callback) => {
const axios = require('axios')
axios.post('https://github.com/login/oauth/access_token', {
@crtr0
crtr0 / sublevel-test.js
Created August 23, 2015 17:18
Insert a document with a compound key using sublevel, and try to read it out.
View sublevel-test.js
var Sublevel = require('level-sublevel')
, Levelup = require('levelup')
, bytewise = require('bytewise')
var db = Sublevel(Levelup('./db', {keyEncoding: bytewise, valueEncoding: 'json'}))
var foo = db.sublevel('foo')
foo.put(['carter', 'rabasa'], {eyes: 'brown'}, function(err) {
foo.createReadStream().on('data', console.log)
View tr_token.cs
using System;
using System.Collections.Generic;
using JWT;
namespace HelloWorld
{
class Hello
{
static void Main()
{
@crtr0
crtr0 / jsconfeu_talk_notes.md
Last active August 29, 2015 14:06
Notes for my JSConf EU 2014 talk entitled "A Community of People, Not Projects"
View jsconfeu_talk_notes.md

A Community of People, Not Projects

  • Carter Rabasa
  • Developer Evangelist, Twilio
  • JSConf EU 2014

Introduction

Audience poll

  • Show of hands, who here has organized an event that brought developers together?