cyee-logo

SEO Skunkworks @ Uber

Messaribot: cryptocurrency charts for Discord

tl;dr Messaribot (code) is a very simple bot which plots cryptocurrency data to assigned Discord channels. This is written in Python, crytpo data is pulled from the Messari API, and relies on the discord.py API wrapper to publish the finished graphs. Overview Most of the interesting crypto discussions happen on Discord (or Telegram). However, looking up market prices can be a hassle when you need to switch back and forth between different desktop or mobile apps....

July 1, 2021 · Christopher Yee

Types of cryptocurrency mining

Context: I had a friend email me about cryptocurrency mining and thought my response was helpful enough to share over Instagram. This led to other friends asking me about the crypto space in general. To keep the spirit of it I have posted the same email below (with some edits). Cryptocurrencies rely on distributed public ledger technology where you need a network of computers (in this case miners) to validate all those transactions....

May 29, 2021 · Christopher Yee

Whimsical Otter: generating project code names with R

I love assigning project code names. However, after a certain point the increase in projects decrease the amount of time I am able to commit to assigning a meaningful code name to each one. I needed something more scalable that I could quickly use and revisit later if the idea or prototype had any legs to stand on. Why spend all that time on something if it would never see the light of day?...

May 24, 2021 · Christopher Yee

[Updated] US firearm sales in 2020

My original exploratory analysis on the topic can be found at Firearm Sales: How are Americans coping with 2020? This post is a quick #rstats follow-up to visualize the final tally for 2020 data. Load libraries library(tidyverse) library(lubridate) library(scales) Download & parse data df_raw <- read_csv("https://raw.githubusercontent.com/BuzzFeedNews/nics-firearm-background-checks/master/data/nics-firearm-background-checks.csv") df <- df_raw df_clean <- df %>% filter(month >= "2016-01" & month < "2021-01") %>% select(month, state, handgun, long_gun) %>% arrange((month)) %>% mutate(month = as....

March 5, 2021 · Christopher Yee

Visualizing FB spend: image vs video creative

Objective: plot the comparison of total Facebook spend between image and video creatives for a small sample of DTC brands. The original piece without any visualization (e.g. tabulated data) can be found here but the main takeaway: Though it can be tempting to go all in on video assets, I intend to use this data as added inspiration to continue investing in and testing Images. Load modules import pandas as pd import numpy as np import matplotlib....

February 10, 2021 · Christopher Yee

10 Lessons Learned from 10 Years of Search Marketing

July 2020 marked the 10 year anniversary for my blog. If you asked me a decade ago what I would be blogging about now my answer would be SEO. I never would have guessed it would shift to data science and data visualization topics. To end this chaotic year on a high note I want to share the top 10 things I learned over the course of my career in search engine marketing....

December 31, 2020 · Christopher Yee

2020 US Elections: calculating win thresholds

The 2020 US presidential election is coming down to the wire and I thought it would be fun to share how I calculate the answer to the following question: What is the distribution of the remaining ballots that Biden/Trump needs to win the electoral college votes for a given state? If we join this data point with Biden vs Trump mail-in ballot rates, or any other information for that matter, then it returns a fairly decent estimate on how thin/wide the margins will be for the US presidential race....

November 6, 2020 · Christopher Yee

From deterministic to probabilistic SEM bid optimization

The goal of every search engine marketing (SEM) advertiser is to maximize their returns at the lowest possible cost. Campaign performance is primarily tuned by adjusting the maximum cost per click (CPC) bid for each ad. However, finding the “perfect” CPC bid can be a moving target since the auction is constantly in flux. The “sleeper” problem Imagine an extreme (but likely) scenario where ad spend is significantly over the allocated budget for the month....

October 1, 2020 · Christopher Yee