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 Dec 31, 2019
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 Mar 25, 2019
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 Mar 13, 2018
Financial independence and budgeting resources
View resources.md
@crtr0
crtr0 / main.js
Created Nov 9, 2017
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 Aug 23, 2015
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 Aug 29, 2015
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?