From 1a0719ceff8ff0410fa3772b82250f4667b34b44 Mon Sep 17 00:00:00 2001 From: Brian Picciano Date: Sat, 11 Aug 2018 19:39:47 -0400 Subject: [PATCH] initial commit --- ..._Systems_and_Backend_Programmer-Resume.pdf | Bin 0 -> 43160 bytes css/normalize.css | 427 ++++++++++++++++++ css/skeleton.css | 418 +++++++++++++++++ images/favicon.png | Bin 0 -> 1156 bytes index.html | 252 +++++++++++ 5 files changed, 1097 insertions(+) create mode 100644 Brian_Picciano-Senior_Systems_and_Backend_Programmer-Resume.pdf create mode 100644 css/normalize.css create mode 100644 css/skeleton.css create mode 100644 images/favicon.png create mode 100644 index.html diff --git a/Brian_Picciano-Senior_Systems_and_Backend_Programmer-Resume.pdf b/Brian_Picciano-Senior_Systems_and_Backend_Programmer-Resume.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ea6a02f09876fb2213bcebc6933a5682cabf6fe7 GIT binary patch literal 43160 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­n-dbOy7^u{t}CzK(yoN^$t%c+ke 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 literal 0 HcmV?d00001 diff --git a/css/normalize.css b/css/normalize.css new file mode 100644 index 0000000..81c6f31 --- /dev/null +++ b/css/normalize.css @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} \ No newline at end of file diff --git a/css/skeleton.css b/css/skeleton.css new file mode 100644 index 0000000..f28bf6c --- /dev/null +++ b/css/skeleton.css @@ -0,0 +1,418 @@ +/* +* Skeleton V2.0.4 +* Copyright 2014, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/29/2014 +*/ + + +/* Table of contents +–––––––––––––––––––––––––––––––––––––––––––––––––– +- Grid +- Base Styles +- Typography +- Links +- Buttons +- Forms +- Lists +- Code +- Tables +- Spacing +- Utilities +- Clearing +- Media Queries +*/ + + +/* Grid +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.container { + position: relative; + width: 100%; + max-width: 960px; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; } +.column, +.columns { + width: 100%; + float: left; + box-sizing: border-box; } + +/* For devices larger than 400px */ +@media (min-width: 400px) { + .container { + width: 85%; + padding: 0; } +} + +/* For devices larger than 550px */ +@media (min-width: 550px) { + .container { + width: 80%; } + .column, + .columns { + margin-left: 4%; } + .column:first-child, + .columns:first-child { + margin-left: 0; } + + .one.column, + .one.columns { width: 4.66666666667%; } + .two.columns { width: 13.3333333333%; } + .three.columns { width: 22%; } + .four.columns { width: 30.6666666667%; } + .five.columns { width: 39.3333333333%; } + .six.columns { width: 48%; } + .seven.columns { width: 56.6666666667%; } + .eight.columns { width: 65.3333333333%; } + .nine.columns { width: 74.0%; } + .ten.columns { width: 82.6666666667%; } + .eleven.columns { width: 91.3333333333%; } + .twelve.columns { width: 100%; margin-left: 0; } + + .one-third.column { width: 30.6666666667%; } + .two-thirds.column { width: 65.3333333333%; } + + .one-half.column { width: 48%; } + + /* Offsets */ + .offset-by-one.column, + .offset-by-one.columns { margin-left: 8.66666666667%; } + .offset-by-two.column, + .offset-by-two.columns { margin-left: 17.3333333333%; } + .offset-by-three.column, + .offset-by-three.columns { margin-left: 26%; } + .offset-by-four.column, + .offset-by-four.columns { margin-left: 34.6666666667%; } + .offset-by-five.column, + .offset-by-five.columns { margin-left: 43.3333333333%; } + .offset-by-six.column, + .offset-by-six.columns { margin-left: 52%; } + .offset-by-seven.column, + .offset-by-seven.columns { margin-left: 60.6666666667%; } + .offset-by-eight.column, + .offset-by-eight.columns { margin-left: 69.3333333333%; } + .offset-by-nine.column, + .offset-by-nine.columns { margin-left: 78.0%; } + .offset-by-ten.column, + .offset-by-ten.columns { margin-left: 86.6666666667%; } + .offset-by-eleven.column, + .offset-by-eleven.columns { margin-left: 95.3333333333%; } + + .offset-by-one-third.column, + .offset-by-one-third.columns { margin-left: 34.6666666667%; } + .offset-by-two-thirds.column, + .offset-by-two-thirds.columns { margin-left: 69.3333333333%; } + + .offset-by-one-half.column, + .offset-by-one-half.columns { margin-left: 52%; } + +} + + +/* Base Styles +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +/* NOTE +html is set to 62.5% so that all the REM measurements throughout Skeleton +are based on 10px sizing. So basically 1.5rem = 15px :) */ +html { + font-size: 62.5%; } +body { + font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */ + line-height: 1.6; + font-weight: 400; + font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #222; } + + +/* Typography +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 2rem; + font-weight: 300; } +h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;} +h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; } +h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; } +h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; } +h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; } +h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; } + +/* Larger than phablet */ +@media (min-width: 550px) { + h1 { font-size: 5.0rem; } + h2 { font-size: 4.2rem; } + h3 { font-size: 3.6rem; } + h4 { font-size: 3.0rem; } + h5 { font-size: 2.4rem; } + h6 { font-size: 1.5rem; } +} + +p { + margin-top: 0; } + + +/* Links +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +a { + color: #1EAEDB; } +a:hover { + color: #0FA0CE; } + + +/* Buttons +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.button, +button, +input[type="submit"], +input[type="reset"], +input[type="button"] { + display: inline-block; + height: 38px; + padding: 0 30px; + color: #555; + text-align: center; + font-size: 11px; + font-weight: 600; + line-height: 38px; + letter-spacing: .1rem; + text-transform: uppercase; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border-radius: 4px; + border: 1px solid #bbb; + cursor: pointer; + box-sizing: border-box; } +.button:hover, +button:hover, +input[type="submit"]:hover, +input[type="reset"]:hover, +input[type="button"]:hover, +.button:focus, +button:focus, +input[type="submit"]:focus, +input[type="reset"]:focus, +input[type="button"]:focus { + color: #333; + border-color: #888; + outline: 0; } +.button.button-primary, +button.button-primary, +input[type="submit"].button-primary, +input[type="reset"].button-primary, +input[type="button"].button-primary { + color: #FFF; + background-color: #33C3F0; + border-color: #33C3F0; } +.button.button-primary:hover, +button.button-primary:hover, +input[type="submit"].button-primary:hover, +input[type="reset"].button-primary:hover, +input[type="button"].button-primary:hover, +.button.button-primary:focus, +button.button-primary:focus, +input[type="submit"].button-primary:focus, +input[type="reset"].button-primary:focus, +input[type="button"].button-primary:focus { + color: #FFF; + background-color: #1EAEDB; + border-color: #1EAEDB; } + + +/* Forms +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea, +select { + height: 38px; + padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ + background-color: #fff; + border: 1px solid #D1D1D1; + border-radius: 4px; + box-shadow: none; + box-sizing: border-box; } +/* Removes awkward default styles on some inputs for iOS */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } +textarea { + min-height: 65px; + padding-top: 6px; + padding-bottom: 6px; } +input[type="email"]:focus, +input[type="number"]:focus, +input[type="search"]:focus, +input[type="text"]:focus, +input[type="tel"]:focus, +input[type="url"]:focus, +input[type="password"]:focus, +textarea:focus, +select:focus { + border: 1px solid #33C3F0; + outline: 0; } +label, +legend { + display: block; + margin-bottom: .5rem; + font-weight: 600; } +fieldset { + padding: 0; + border-width: 0; } +input[type="checkbox"], +input[type="radio"] { + display: inline; } +label > .label-body { + display: inline-block; + margin-left: .5rem; + font-weight: normal; } + + +/* Lists +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +ul { + list-style: circle inside; } +ol { + list-style: decimal inside; } +ol, ul { + padding-left: 0; + margin-top: 0; } +ul ul, +ul ol, +ol ol, +ol ul { + margin: 1.5rem 0 1.5rem 3rem; + font-size: 90%; } +li { + margin-bottom: 1rem; } + + +/* Code +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +code { + padding: .2rem .5rem; + margin: 0 .2rem; + font-size: 90%; + white-space: nowrap; + background: #F1F1F1; + border: 1px solid #E1E1E1; + border-radius: 4px; } +pre > code { + display: block; + padding: 1rem 1.5rem; + white-space: pre; } + + +/* Tables +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +th, +td { + padding: 12px 15px; + text-align: left; + border-bottom: 1px solid #E1E1E1; } +th:first-child, +td:first-child { + padding-left: 0; } +th:last-child, +td:last-child { + padding-right: 0; } + + +/* Spacing +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +button, +.button { + margin-bottom: 1rem; } +input, +textarea, +select, +fieldset { + margin-bottom: 1.5rem; } +pre, +blockquote, +dl, +figure, +table, +p, +ul, +ol, +form { + margin-bottom: 2.5rem; } + + +/* Utilities +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.u-full-width { + width: 100%; + box-sizing: border-box; } +.u-max-full-width { + max-width: 100%; + box-sizing: border-box; } +.u-pull-right { + float: right; } +.u-pull-left { + float: left; } + + +/* Misc +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +hr { + margin-top: 3rem; + margin-bottom: 3.5rem; + border-width: 0; + border-top: 1px solid #E1E1E1; } + + +/* Clearing +–––––––––––––––––––––––––––––––––––––––––––––––––– */ + +/* Self Clearing Goodness */ +.container:after, +.row:after, +.u-cf { + content: ""; + display: table; + clear: both; } + + +/* Media Queries +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +/* +Note: The best way to structure the use of media queries is to create the queries +near the relevant code. For example, if you wanted to change the styles for buttons +on small devices, paste the mobile query code up in the buttons section and style it +there. +*/ + + +/* Larger than mobile */ +@media (min-width: 400px) {} + +/* Larger than phablet (also point when grid becomes active) */ +@media (min-width: 550px) {} + +/* Larger than tablet */ +@media (min-width: 750px) {} + +/* Larger than desktop */ +@media (min-width: 1000px) {} + +/* Larger than Desktop HD */ +@media (min-width: 1200px) {} diff --git a/images/favicon.png b/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..7a3c81c1e32b4e4224452cf8261a585480caa0ea GIT binary patch literal 1156 zcmV-~1bh35P)Px(K1oDDR9FeUS6ygSR}lVo-6obMX;utd(pYw*xM;*axQ4d&FA%IGA~hPSg!&Re z%!{H3LD7)Nf>mf~DXa7+587b*Vq0rT+y^!IQ_&TXVq{}Xg2tsmWK$E{Rg$dV+}vF6 z#`_m=J8(F2&&-)`&YW}R%yq#z<@o*n3YW{ZhEo=^6_YQP>FIPj!A@E?`I7?!182!U zWwRxhod!YQaJ$|6s8`2UV5hIjAF*$nn3!mxGk;snv2q|c5D4ty$oVx(v2fUKIJzp%YyG-;+|bmTJITBB&Z-~d;>l)!%wq-3T*Hu{5vvj{FwB`QX)d;Q(oi9$K)StVkW z6c!eyhlhvdszTWU_0aWF=-{;b&=3w|^@mIFWhm}D9??d2iK8!I63Xsg){iGSF*2TdhFu$i_?LHwo`odIDct3 zl;>}naw>Tj*DjvJug8wyM9k^>l~=UK#Tzg}dsgRKg9|nMfVQ0#T)#Obt{lbsjm=KC zVN{<9&8@1ESY$JTRl9KNN*u|Qv3ha&CbWO;=u(M+wDT=6zzcm;gX)@ER92Rw`1u6^ zQrGcW*?Pnb=IDo*jCv#jQpq@?hQmh@t_x|pv91$n-nJ1Rl)Z;jcTGZ~X&W*LaiH5! zG<`7Cge@yqU_;B#h((X1slEn5pQ_|r0k7m_jb4F+oG#kkE+&IdSaNl0b4{3V^d>gw z648{}SSkh2Y<>K>1Mzm0RqdHlG41&@uX6K2kXK1+I7_;Js~2Mi8q>jn2l#QHJvdE0 z5^Q;n$C-@YV!zzLzBY8VvmM`_z722DTolcD9r>@y6QZXvB;s8-v}p~#%cyzuIvIRx zGMPN7yoNJ-j#VQ*A42oyVT4&EKYs-GVsWQ;U&{E*=U7ZKBepOj?#=KqOCNM#KPzP^ z^(PAw6-UbOb9CaRRKjMy6Z|s4Kc-wM)AgC~359DZkm@yCG^k=|{|I^qASDtNs)?Qr zC&XrzVCYw;976qo@am!bUw%xqs#xy?E7noApQL)_c!=j>`km9OoAQjN6bD~$&+BRL zA0tIW2UNvzDV^y=D; + + + + + + Brian Picciano - Senior Systems and Backend Programmer - Resume + + + + + + + + + + + + + + + + + + + + +
+
+

Last updated: Aug 2018

+

+ Download as PDF +

+
+ +
+

Brian Picciano

+
Senior Systems and Backend Programmer
+
+ +
+ +
+

+ 8 years of experience across backend systems, databases, and + application development. Passionate about clean code, good + documentation, and open source. +

+

+ Extensively experienced with:
+ Go, Erlang, Lua, Bash, PHP;
+ Redis, Mongo, Cassandra/BigTable;
+ CentOS/RHEL, Archlinux, GCE. +

+

+ Moderately experienced with:
+ Ruby, Python, C, Javascript;
+ ElasticSearch, MySQL/MariaDB;
+ Ubuntu/Debian, CoreOS, AWS, Kubernetes/Docker. +

+
+
+ +
+
+

Admiral

+

+ May 2015 - January 2018
+ Co-Founder
+ Senior Backend Developer
+

+

+ getadmiral.com is a + platform to help publishers analyze and recover revenue + being lost due to adblocking users. +

+
+
+
    +
  • + Wrote a custom analytics platform in Go, using Google + BigTable as backing store and Redis/Mongo as aggregation + caches. Handled a global load of >27 million new rows + an hour, with up-to-the-hour analytics for all + customers. +
  • + +
  • + Implemented a custom, dc-aware service discovery system + for our microservices based app, using Etcd & + SkyDNS. Included health checking, metrics, + rolling-restarts, and more. +
  • + +
  • + Designed Go-based framework for implementing + microservices which automatically handled configuration, + logging, health checks, metrics, RPC/service discovery, + and more. +
  • + +
  • + Implemented an internal RFC process for new product + features and maintained the internal technical + documentation wiki. +
  • + +
  • + Contributed to designing and implementing the + provisioning/deployment system using Ansible, and began + work on migrating to Kubernetes. +
  • +
+
+
+ +
+
+

Grooveshark

+

+ Senior Systems Engineer (from intern)
+ 2010 - Apr 2015
+

+

+ Grooveshark was a web-based music streaming site in the + same vein as Spotify. +

+
+
+
    +
  • + Wrote client-to-client communication server in Erlang + (with Redis backend) which served as the backbone of the + Broadcasts feature, where users host their own + radio-like channels, complete with voting, real-time + chat, and moderation. +
  • + +
  • + Designed and implemented Feeds feature using PHP and + Mongo, where users could see the recent listening + activites of their friends in a Facebook-like feed. +
  • + +
  • + Wrote and maintained the deployment scripts for frontend + code, and contributed significantly to the Chef-based + provisioning system. +
  • + +
  • + Initiated and oversaw the migration of frontend devs + from using a shared development server to individual + Vagrant setups. +
  • +
+
+
+ +
+
+

Open-Source/Personal Projects

+

+ github.com/mediocregopher + contains all public work. Most of it is throw-away projects, + but here are listed a few which are actively developed and + much loved. +

+
+
+
    +
  • + Author of one of the recommended Redis drivers for Go, + radix.v2, + and its much improved sequel, + radix.v3. +
  • + +
  • + Author of + mediocre-go-lib, + a Go framework used for personal projects and similar in + style to the one written for Admiral. +
  • + +
  • + Main contributor to okq, + a simple, fast, and scalable job server written in Go + and backed by Redis. Used at both Grooveshark and + Admiral for extremely high-throughput loads. +
  • + +
  • + Author of small art projects such as + mediocregopher.com/viz + and others featured at + blog.mediocregopher.com, + mostly written in Clojure. +
  • +
+
+
+ +
+
+

Outside of work

+
+
+
    +
  • Rock climber and backpacker.
  • +
  • + Organizer of the + Dumbathon, + an annual hackathon of sorts. +
  • +
  • Competitive Super Smash Bros. Player.
  • +
  • + Attained 100% completion of Super Meat Boy video game. +
  • +
+
+
+ +
+ + +