Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
  • 8 commits
  • 8 files changed
  • 0 comments
  • 1 contributor
1  app.js
@@ -30,6 +30,7 @@ app.configure('production', function(){
30 30
 
31 31
 // Routes
32 32
 app.get('/', routes.index);
  33
+app.get('/resume', routes.resume);
33 34
 app.get('/blog', routes.blogMain);
34 35
 app.get('/blog/:post', routes.blogPost);
35 36
 app.get('/feed.atom', routes.feed);
195  public/css/resume.css
... ...
@@ -0,0 +1,195 @@
  1
+
  2
+@font-face{ 
  3
+	font-family: 'WebSymbolsRegular';
  4
+	src: url('/fonts/websymbols-regular-webfont.eot');
  5
+	src: url('/fonts/websymbols-regular-webfont.eot?#iefix') format('embedded-opentype'),
  6
+	     url('/fonts/websymbols-regular-webfont.woff') format('woff'),
  7
+	     url('/fonts/websymbols-regular-webfont.ttf') format('truetype'),
  8
+	     url('/fonts/websymbols-regular-webfont.svg#WebSymbolsRegular') format('svg');
  9
+	}
  10
+
  11
+body.resume a {
  12
+  padding: 0;
  13
+}
  14
+
  15
+div#howto {
  16
+  padding: 40px 40px 0 40px;
  17
+  font-weight: 300;
  18
+}
  19
+
  20
+.sec-title {
  21
+  font-weight: bold;
  22
+  text-align: right;
  23
+  color: #ccc;
  24
+  padding: 2px;
  25
+  margin-bottom: -50px;
  26
+  font-size: 150px;
  27
+  line-height: 150px;
  28
+  height: 140px;
  29
+  overflow: hidden;
  30
+  vertical-align: bottom;
  31
+}
  32
+
  33
+#chronology {
  34
+  background:-moz-linear-gradient(left, #ccc 0%,#ccc 100%); 
  35
+  background:-webkit-linear-gradient(left, #ccc 0%,#ccc 100%); 
  36
+  background:linear-gradient(left, #ccc 0%,#ccc 100%);
  37
+  background-position: 50%;
  38
+  background-repeat: repeat-y;
  39
+  background-size: 8px auto;
  40
+}
  41
+
  42
+#chronology ol,
  43
+#chronology ul {
  44
+  list-style-type: none;
  45
+}
  46
+
  47
+ol.employers {
  48
+  margin: 15px 0;
  49
+}
  50
+
  51
+/** Employer sections **/
  52
+
  53
+.employer {
  54
+  display: block;
  55
+  border-top: 1px solid #ccc;
  56
+  margin: 55px 0;
  57
+}
  58
+
  59
+.employer-name {
  60
+  font-weight: bold;
  61
+  font-size: 40px;
  62
+  padding: 10px;
  63
+}
  64
+
  65
+.employer-description {
  66
+  vertical-align: top;
  67
+  display: inline-block;
  68
+  margin: 8px;
  69
+  padding: 4px;
  70
+
  71
+  border: 3px solid #ccc;
  72
+  -webkit-border-radius: 8px;
  73
+  -webkit-border-bottom-left-radius: 0;
  74
+  -moz-border-radius: 8px;
  75
+  -moz-border-radius-bottomleft: 0;
  76
+  border-radius: 8px;
  77
+  border-bottom-left-radius: 0;
  78
+
  79
+  font-style: italic;
  80
+  font-size: 11px;
  81
+}
  82
+
  83
+.employer-dates {
  84
+  display: block;
  85
+  font-size: 12px;
  86
+  font-style: italic;
  87
+  text-align: right;
  88
+  color: #666;
  89
+}
  90
+
  91
+/** Positions section (per employer) **/
  92
+
  93
+ol.positions {
  94
+  margin: 0;
  95
+  position: relative;
  96
+  width: 100%;
  97
+  margin: 15px 0;
  98
+}
  99
+
  100
+ol.positions li.pos {
  101
+  clear: both;
  102
+  width: 40%;
  103
+  padding: 6px;
  104
+  
  105
+  border: 8px solid #ccc;
  106
+  -webkit-border-radius: 8px;
  107
+  -moz-border-radius: 8px;
  108
+  border-radius: 8px;
  109
+}
  110
+
  111
+ol.positions li.pos:nth-child(odd) {
  112
+  margin-left: 6%;
  113
+}
  114
+
  115
+ol.positions li.pos .description {
  116
+  font-weight: 200;
  117
+  font-size: 14px;
  118
+  padding: 6px;
  119
+}
  120
+
  121
+.icon {
  122
+  padding: 4px;
  123
+  font-family: 'WebSymbolsRegular';
  124
+}
  125
+
  126
+.r-arrow, .l-arrow {
  127
+  font-size: 20px;
  128
+  overflow: hidden;
  129
+  color: #ccc;
  130
+  font-family: 'WebSymbolsRegular';
  131
+}
  132
+
  133
+.r-arrow {
  134
+  float: right;
  135
+  margin-right: -20px;
  136
+}
  137
+
  138
+.l-arrow {
  139
+  float: left;
  140
+  margin-left: -20px;
  141
+}
  142
+
  143
+
  144
+ol.positions li.pos:nth-child(even) {
  145
+  margin-left: 52%;
  146
+}
  147
+
  148
+/** Position details **/
  149
+
  150
+ul.people {
  151
+  margin: 4px 0;  
  152
+  font-size: 14px;
  153
+}
  154
+
  155
+ul.people li {
  156
+  display: inline-block;
  157
+  padding-left: 4px;
  158
+}
  159
+
  160
+ul.people .title {
  161
+  font-weight: bold;
  162
+}
  163
+
  164
+/*** Projects ***/
  165
+
  166
+ol.projects li.project {
  167
+  border-top: 2px solid #ddd;
  168
+  margin: 0 0 8px 8px;
  169
+  padding-top: 8px;
  170
+}
  171
+
  172
+ol.projects li.project a.url:before {
  173
+  content: ' • ';
  174
+}
  175
+
  176
+ol.projects li.project a.expand {
  177
+  float: right;
  178
+  color: #666;
  179
+}
  180
+
  181
+ol.projects li.project:first-child {
  182
+  border-top: none;
  183
+}
  184
+
  185
+ol.projects li.project a {
  186
+  font-size: 12px;
  187
+  margin-left: 4px;
  188
+  font-weight: normal;
  189
+}
  190
+
  191
+ol.projects li.project .description {
  192
+  display:none;
  193
+  font-size: 13px;
  194
+  padding: 0 4px;
  195
+}
BIN  public/fonts/websymbols-regular-webfont.eot
Binary file not shown
108  public/fonts/websymbols-regular-webfont.svg
... ...
@@ -0,0 +1,108 @@
  1
+<?xml version="1.0" standalone="no"?>
  2
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
  3
+<svg xmlns="http://www.w3.org/2000/svg">
  4
+<metadata>
  5
+This is a custom SVG webfont generated by Font Squirrel.
  6
+Copyright   : Copyright c 2011 by Just Be Nice studio All rights reserved
  7
+Designer    : Igor Kiselev
  8
+Foundry     : Just Be Nice studio
  9
+Foundry URL : httpwwwjustbenicestudiocom
  10
+</metadata>
  11
+<defs>
  12
+<font id="WebSymbolsRegular" horiz-adv-x="1000" >
  13
+<font-face units-per-em="1000" ascent="801" descent="-199" />
  14
+<missing-glyph horiz-adv-x="250" />
  15
+<glyph unicode=" "  horiz-adv-x="250" />
  16
+<glyph unicode="&#x09;" horiz-adv-x="250" />
  17
+<glyph unicode="&#xa0;" horiz-adv-x="250" />
  18
+<glyph unicode="!" />
  19
+<glyph unicode="#" horiz-adv-x="965" d="M207 259q0 -26 -42 -26h-16v52h23q35 0 35 -26zM190 355q0 -23 -34 -23h-7v46h8q33 0 33 -23zM265 -112h62v241h-62v-148h-1l-115 148h-62v-241h62v147h1zM388 -112h63v241h-63v-241zM270 252q0 55 -49 62q27 14 27 49q0 63 -72 63h-89v-241h96q37 0 62 16t25 51z M684 -107v75q-21 -26 -54 -26q-29 0 -47 18.5t-18 47.5q0 28 18 47t46 19q35 0 55 -26v75q-31 12 -57 12q-53 0 -90 -37.5t-37 -89.5q0 -54 37.5 -90t91.5 -36q22 0 55 11zM309 185h137v53h-74v42h70v53h-70v40h74v53h-137v-241zM222 561v162h-136v-51h74v-112 q0 -31 -18 -31q-11 0 -27 19l-34 -36q23 -36 62 -36q38 0 58.5 23t20.5 62zM740 -112h137v53h-75v41h71v53h-71v41h75v53h-137v-241zM484 588v135h-63v-126q0 -20 -2 -32t-12 -23t-28 -11q-27 0 -35 17.5t-8 48.5v126h-63v-135q0 -57 24.5 -84.5t81.5 -27.5q56 0 80.5 27.5 t24.5 84.5zM697 564q0 27 -16.5 43t-35.5 20.5t-35.5 11.5t-16.5 18q0 10 8.5 15t18.5 5q23 0 42 -16l25 49q-35 20 -76 20q-36 0 -59.5 -22.5t-23.5 -58.5q0 -29 16 -45t35.5 -19.5t35.5 -10.5t16 -20q0 -12 -9 -18.5t-21 -6.5q-25 0 -56 25l-26 -50q37 -28 84 -28 q43 0 68.5 22.5t25.5 65.5zM838 670h52v53h-166v-53h51v-187h63v187zM965 801v-1000h-965v1000h965z" />
  20
+<glyph unicode="%" d="M306 -32l161 -168h-467v467l168 -161l161 161q29 29 69 29t69 -29t29 -69t-29 -69zM1000 800v-467l-168 161l-161 -161q-29 -29 -69 -29t-69 29t-29 69t29 69l161 161l-161 168h467z" />
  21
+<glyph unicode="&#x26;" d="M644 382l116 -102v280h-280l102 -116l-13 -13l-213 -213l-116 102v-280h280l-102 116zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  22
+<glyph unicode="'" d="M654 300l346 -346l-154 -154l-346 346l-346 -346l-154 154l346 346l-346 346l154 154l346 -346l346 346l154 -154z" />
  23
+<glyph unicode="(" d="M547 68l71 71l-161 161l161 161l-71 71l-233 -232zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  24
+<glyph unicode=")" d="M453 68l233 232l-233 232l-71 -71l161 -161l-161 -161zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  25
+<glyph unicode="*" d="M740 220l180 180h-120q-30 92 -118.5 152.5t-186.5 60.5q-131 0 -224 -92.5t-93 -223.5t93 -223.5t224 -92.5t223 92l-62 71q-66 -64 -156 -64q-91 0 -155.5 64.5t-64.5 155.5t64.5 155.5t155.5 64.5q95 0 156 -64q8 -8 11.5 -16.5t6.5 -20.5t6 -19h-120zM1000 300 q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  26
+<glyph unicode="+" d="M560 242h235v118h-235v235h-118v-235h-236v-118h236v-236h118v236zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  27
+<glyph unicode="," d="M840 505q28 28 28 67.5t-28 67.5t-67.5 28t-67.5 -28t-28 -67.5t28 -67.5t67.5 -28t67.5 28zM1000 665v-270l-595 -595l-405 405l595 595h270z" />
  28
+<glyph unicode="-" d="M206 242h589v118h-589v-118zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  29
+<glyph unicode="." horiz-adv-x="1179" d="M1179 729q-250 -222 -600 -750l-115 -179q-144 180 -464 500l107 107l286 -250q150 150 279 271.5t205.5 187.5t131.5 111t77 59l21 14q4 0 11 -2t26 -19.5t35 -49.5z" />
  30
+<glyph unicode="/" d="M260 354l-54 -53q71 -71 129 -133.5t81 -89.5l22 -26q8 13 22 35.5t56.5 85.5t83.5 118.5t95 119.5t99 104q-18 35 -36 35q-10 -6 -32 -22t-113.5 -97.5t-210.5 -200.5zM500 801q136 0 251 -67t182 -182t67 -251t-67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251 t67 251t182 182t251 67z" />
  31
+<glyph unicode="0" d="M188 -26l-83 83l187 187l83 -83zM812 -26l-187 187l83 83l187 -187zM292 494l-187 187l83 83l187 -187zM0 428h265v-118h-265v118zM735 310v118h265v-118h-265zM559 -131h-118v265h118v-265zM559 604h-118v265h118v-265z" />
  32
+<glyph unicode="1" d="M188 -26l-83 83l187 187l83 -83zM812 764l83 -83l-187 -187l-83 83zM812 -26l-187 187l83 83l187 -187zM292 494l-187 187l83 83l187 -187zM0 428h265v-118h-265v118zM559 -131h-118v265h118v-265zM559 604h-118v265h118v-265z" />
  33
+<glyph unicode="2" d="M188 -26l-83 83l187 187l83 -83zM812 764l83 -83l-187 -187l-83 83zM292 494l-187 187l83 83l187 -187zM0 428h265v-118h-265v118zM735 310v118h265v-118h-265zM559 -131h-118v265h118v-265zM559 604h-118v265h118v-265z" />
  34
+<glyph unicode="3" d="M188 -26l-83 83l187 187l83 -83zM812 764l83 -83l-187 -187l-83 83zM812 -26l-187 187l83 83l187 -187zM292 494l-187 187l83 83l187 -187zM0 428h265v-118h-265v118zM735 310v118h265v-118h-265zM559 604h-118v265h118v-265z" />
  35
+<glyph unicode="4" d="M812 764l83 -83l-187 -187l-83 83zM812 -26l-187 187l83 83l187 -187zM292 494l-187 187l83 83l187 -187zM0 428h265v-118h-265v118zM735 310v118h265v-118h-265zM559 -131h-118v265h118v-265zM559 604h-118v265h118v-265z" />
  36
+<glyph unicode="5" d="M188 -26l-83 83l187 187l83 -83zM812 764l83 -83l-187 -187l-83 83zM812 -26l-187 187l83 83l187 -187zM292 494l-187 187l83 83l187 -187zM735 310v118h265v-118h-265zM559 -131h-118v265h118v-265zM559 604h-118v265h118v-265z" />
  37
+<glyph unicode="6" d="M188 -26l-83 83l187 187l83 -83zM812 764l83 -83l-187 -187l-83 83zM812 -26l-187 187l83 83l187 -187zM0 428h265v-118h-265v118zM735 310v118h265v-118h-265zM559 -131h-118v265h118v-265zM559 604h-118v265h118v-265z" />
  38
+<glyph unicode="7" d="M188 -26l-83 83l187 187l83 -83zM812 764l83 -83l-187 -187l-83 83zM812 -26l-187 187l83 83l187 -187zM292 494l-187 187l83 83l187 -187zM0 428h265v-118h-265v118zM735 310v118h265v-118h-265zM559 -131h-118v265h118v-265z" />
  39
+<glyph unicode=":" d="M661 182l71 71l-232 233l-232 -233l71 -71l161 161zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  40
+<glyph unicode=";" d="M500 114l232 233l-71 71l-161 -161l-161 161l-71 -71zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  41
+<glyph unicode="&#x3c;" horiz-adv-x="654" d="M308 300l346 -346l-154 -154l-500 500l500 500l154 -154z" />
  42
+<glyph unicode="&#x3e;" horiz-adv-x="654" d="M154 800l500 -500l-500 -500l-154 154l346 346l-346 346z" />
  43
+<glyph unicode="?" horiz-adv-x="586" d="M379 507q0 36 -25 61t-61 25t-61 -25t-25 -61t25 -61t61 -25t61 25t25 61zM586 507q0 -7 -1.5 -21t-17.5 -71.5t-43.5 -130t-88 -202t-142.5 -282.5q-82 153 -142.5 282t-88 204t-43 128t-17.5 73l-2 20q0 121 86 207t207 86t207 -86t86 -207z" />
  44
+<glyph unicode="@" horiz-adv-x="1360" d="M157 -42h1048v558l-494 -412h-61l-493 412v-558zM174 639l507 -423l507 423h-1014zM105 796h1152q43 0 74 -31t31 -74v-785q0 -44 -31 -74.5t-74 -30.5h-1152q-43 0 -74 30.5t-31 74.5v785q0 43 31 74t74 31z" />
  45
+<glyph unicode="A" horiz-adv-x="1113" d="M1113 507q0 -67 -26.5 -129.5t-73.5 -109.5l-448 -444l-62 61l448 444q74 72 74 178q0 89 -58.5 147.5t-147.5 58.5q-102 0 -180 -75l-493 -489q-59 -59 -59 -133q0 -57 37 -93.5t94 -36.5q75 0 134 59l377 372q53 55 53 97q0 21 -16 33t-38 12q-48 0 -86 -40l-340 -336 l-61 61l339 336q66 66 148 66q58 0 100 -37t42 -94q0 -78 -79 -159l-377 -372q-84 -84 -196 -84q-93 0 -155.5 61.5t-62.5 154.5q0 110 84 194l493 489q104 101 242 101q125 0 209.5 -84t84.5 -209z" />
  46
+<glyph unicode="B" d="M250 -75q0 -52 -36.5 -88.5t-88.5 -36.5t-88.5 36.5t-36.5 88.5t36.5 88.5t88.5 36.5t88.5 -36.5t36.5 -88.5zM660 -200h-192q0 194 -137 331t-331 137v192q179 0 331 -88.5t240.5 -240.5t88.5 -331zM1000 -200h-193q0 164 -64 314t-172 258t-257.5 172t-313.5 64v192 q203 0 388 -79.5t319 -213.5t213.5 -319t79.5 -388z" />
  47
+<glyph unicode="C" horiz-adv-x="1435" d="M1435 83q0 -111 -75.5 -192.5t-185.5 -89.5v-1h-870v1q-7 -1 -21 -1q-117 0 -200 83t-83 200q0 74 37 139t101 103q-8 32 -8 62q0 117 83 200t200 83q103 0 186 -70q43 91 128.5 145.5t185.5 54.5q144 0 246 -102t102 -246q0 -55 -16 -103q85 -29 137.5 -103t52.5 -163z " />
  48
+<glyph unicode="D" horiz-adv-x="1091" d="M91 -108h636v364h-636v-364zM818 256h182v363h-636v-182h454v-181zM1091 801v-636h-273v-364h-818v636h273v364h818z" />
  49
+<glyph unicode="F" horiz-adv-x="1391" d="M1391 419v-10l-68 -523q-5 -35 -33.5 -60.5t-64.5 -25.5h-1058q-36 0 -65.5 25.5t-33.5 60.5l-67 523q-1 3 -1 10q0 33 22.5 54.5t55.5 21.5h1235q33 0 55.5 -21.5t22.5 -54.5zM1313 583h-1235q9 48 27 67t34.5 17t34 3.5t25.5 28.5l24 72q77 29 208 29q89 0 164 -29 l25 -72q24 -23 32.5 -26t43.5 -3h485q84 0 110 -22q12 -11 22 -65z" />
  50
+<glyph unicode="H" horiz-adv-x="1500" d="M308 300l346 -346l-154 -154l-500 500l500 500l154 -154zM1000 800l500 -500l-500 -500l-154 154l346 346l-346 346z" />
  51
+<glyph unicode="I" horiz-adv-x="1360" d="M1163 7q2 -1 1 -4t-4 -3h-955h-1q-4 0 -4 4v2q18 36 135 280t144 299q1 2 3.5 2.5t3.5 -1.5l311 -386l152 122h7l1 -2q39 -50 101.5 -155t104.5 -158zM1120 480q0 -33 -23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5t23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5z M120 -80h1120v760h-1120v-760zM1360 800v-1000h-1360v1000h1360z" />
  52
+<glyph unicode="J" horiz-adv-x="1360" d="M760 120l117 -120h-636l-1 360h-240l300 320l300 -320h-240v-240h400zM1120 320h240l-300 -320l-300 320h240v240h-400l-117 120h636z" />
  53
+<glyph unicode="K" d="M613 445l-115 -115q-26 17 -56 17q-44 0 -75 -31l-175 -176q-31 -29 -31 -74q0 -44 30.5 -74.5t74.5 -30.5q25 0 49.5 12t32.5 34h238l-132 -129q-80 -78 -188 -78q-110 0 -188 78t-78 188q0 112 78 188l175 176q78 78 189 78q97 0 171 -63zM1000 534q0 -112 -78 -188 l-175 -176q-78 -78 -189 -78q-97 0 -171 63l115 115q26 -17 56 -17q44 0 75 31l175 176q31 29 31 74q0 44 -30.5 74.5t-74.5 30.5q-25 0 -49.5 -12t-32.5 -34h-238l132 129q80 78 188 78q110 0 188 -78t78 -188z" />
  54
+<glyph unicode="L" d="M681 391q0 113 -79.5 193t-192.5 80t-193 -80t-80 -193t80 -192.5t193 -79.5t192.5 79.5t79.5 192.5zM746 160l254 -255l-105 -105l-254 254q-106 -72 -232 -72q-169 0 -289 120t-120 289t120 289t289 120t289 -120t120 -289q0 -127 -72 -231z" />
  55
+<glyph unicode="M" horiz-adv-x="1360" d="M80 -120h120v80h-120v-80zM280 -120h120v80h-120v-80zM520 -120h120v80h-120v-80zM80 40h320v520h-320v-520zM720 -120h120v80h-120v-80zM80 640h120v80h-120v-80zM960 -120h120v80h-120v-80zM520 40h320v520h-320v-520zM280 640h120v80h-120v-80zM1160 -120h120v80h-120 v-80zM520 640h120v80h-120v-80zM960 40h320v520h-320v-520zM720 640h120v80h-120v-80zM960 640h120v80h-120v-80zM1160 640h120v80h-120v-80zM1360 800v-1000h-1360v1000h1360z" />
  56
+<glyph unicode="N" horiz-adv-x="1063" d="M775 800q126 0 207 -80t81 -207v-60q0 -285 -532 -653q-531 367 -531 653v60q0 127 80.5 207t206.5 80q81 0 134 -30.5t110 -98.5q58 68 111 98.5t133 30.5z" />
  57
+<glyph unicode="O" horiz-adv-x="1063" d="M946 458v50q0 58 -39 113.5t-95 61.5q-12 2 -37 2q-53 0 -83 -19.5t-72 -68.5l-89 -105l-89 105q-42 49 -72 68.5t-83 19.5q-24 0 -37 -2q-56 -6 -93.5 -60t-40.5 -115v-50q0 -30 17 -75q68 -199 398 -441q329 239 399 441q16 50 16 75zM1063 513v-60q0 -285 -532 -653 q-531 367 -531 653v60q0 127 80.5 207t206.5 80q81 0 134 -30.5t110 -98.5q58 68 111 98.5t133 30.5q126 0 207 -80t81 -207z" />
  58
+<glyph unicode="P" d="M680 100q0 -25 -17.5 -42.5t-42.5 -17.5q-26 0 -42 18l-120 120q-18 18 -18 62v320q0 25 17.5 42.5t42.5 17.5t42.5 -17.5t17.5 -42.5v-315l102 -103q18 -16 18 -42zM883 300q0 158 -112.5 270.5t-270.5 112.5q-126 0 -226 -74l2 -2q-48 -35 -83 -83l-2 2 q-74 -100 -74 -226q0 -158 112.5 -270.5t270.5 -112.5q126 0 226 74l-2 2q48 35 83 83l2 -2q74 100 74 226zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  59
+<glyph unicode="Q" d="M585 496q0 -36 -24.5 -62t-60.5 -26t-60.5 26t-24.5 62t24.5 62t60.5 26t60.5 -26t24.5 -62zM727 217q0 26 -17.5 44.5t-42.5 18.5q-15 0 -28 -8q-70 -36 -140 -36q-69 0 -138 36q-16 7 -28 7q-25 0 -42.5 -18.5t-17.5 -44.5q0 -68 147 -97l-117 -121q-18 -18 -18 -44 t17.5 -44.5t42.5 -18.5t43 18l112 116l112 -116q18 -18 43 -18t42.5 18.5t17.5 44.5t-18 44l-117 121q147 30 147 98zM705 496q0 87 -59 150t-146 63t-146 -63t-59 -150t59 -150t146 -63t146 63t59 150zM1000 712v-824q0 -36 -26 -62t-62 -26h-824q-36 0 -62 26t-26 62v824 q0 36 26 62t62 26h824q36 0 62 -26t26 -62z" />
  60
+<glyph unicode="R" horiz-adv-x="1050" d="M1050 415q0 -15 -29 -38l-275 -200l105 -323q5 -17 5 -30q0 -24 -18 -24q-17 0 -38 17l-275 199l-275 -199q-23 -17 -39 -17q-18 0 -18 23q0 11 6 31l105 323l-275 200q-29 21 -29 37q0 23 49 23l340 -1l104 324q12 40 32 40q19 0 31 -40l106 -324l339 1q49 0 49 -22z " />
  61
+<glyph unicode="S" d="M652 300q0 60 -43 102t-103 42t-102.5 -42t-42.5 -102t42.5 -102t102.5 -42t103 42t43 102zM1000 372v-142l-185 -26q-10 -27 -21 -50l120 -157l-102 -100l-159 118q-20 -10 -51 -21l-30 -194h-143l-27 197q-21 7 -43 18l-161 -119l-101 100l121 160q-11 21 -19 46 l-199 28v142l199 28q7 21 19 45l-120 159l101 100l160 -119q15 8 47 20l28 195h143l28 -195q22 -7 48 -19l158 117l102 -100l-119 -156q13 -27 20 -48z" />
  62
+<glyph unicode="T" horiz-adv-x="925" d="M641 181v106q-33 -19 -87 -30.5t-100.5 -18.5t-90.5 -19.5t-70 -42.5t-26 -79q0 -62 40 -94.5t103 -32.5q103 0 167 55t64 156zM925 -173h-264q-15 40 -18 92q-120 -119 -306 -119q-95 0 -169 29t-121 95t-47 162q0 40 8.5 74t21 59.5t35.5 47.5t43 36.5t53.5 27.5 t57.5 20.5t64 15t63.5 11t65.5 8.5q50 6 100 15q24 4 37 7t34 11t32 17t19.5 25.5t8.5 38.5q0 126 -170 126q-87 0 -130.5 -31.5t-56.5 -113.5h-244q6 90 44 154t100.5 99t134.5 50.5t159 15.5q68 0 124.5 -7.5t111.5 -28.5t92.5 -54.5t60.5 -89t23 -128.5v-408 q0 -64 0.5 -91t8.5 -77.5t24 -88.5z" />
  63
+<glyph unicode="U" horiz-adv-x="1070" d="M1070 -137q0 -21 -2 -63h-1067q0 10 -0.5 31t-0.5 32q0 30 1 37q12 49 64 84.5t111.5 53t125.5 47t97 65.5q17 22 17 38q0 22 -11 73q-4 21 -10.5 36.5t-16 33t-15.5 31.5q-15 35 -33 132q-6 38 -6 75q0 105 53.5 168t157.5 63t157.5 -63t53.5 -168q0 -31 -7 -75 q-14 -89 -32 -132q-6 -14 -15.5 -31.5t-16 -33t-10.5 -36.5q-11 -51 -11 -73q0 -18 17 -38q31 -36 97 -65.5t125 -47t111 -53t64 -84.5q2 -8 2 -37z" />
  64
+<glyph unicode="V" horiz-adv-x="857" d="M429 -9q111 0 193 76t91 186h143q-9 -170 -133 -287t-294 -117q-158 0 -279 102l-150 -150v405h405l-153 -153q78 -62 177 -62zM707 651l150 150v-405h-405l153 153q-77 62 -176 62q-111 0 -193.5 -76t-91.5 -186h-143q9 170 133 287t295 117q157 0 278 -102z" />
  65
+<glyph unicode="W" horiz-adv-x="1113" d="M626 5q0 29 -20.5 49t-49.5 20q-28 0 -48.5 -20t-20.5 -49t20.5 -49.5t48.5 -20.5q29 0 49.5 20.5t20.5 49.5zM626 392v146h-139v-146q0 -14 2 -26.5t5.5 -28t5.5 -26.5l26 -162h59l27 162q2 10 6 26t6 28.5t2 26.5zM1113 -119q0 -39 -27.5 -59.5t-67.5 -20.5h-923 q-40 0 -67.5 21t-27.5 59q0 30 18 61l461 804q33 55 78 55t76 -55l462 -805q18 -32 18 -60z" />
  66
+<glyph unicode="X" horiz-adv-x="1188" d="M746 53l106 -107q-156 -146 -338 -146q-217 0 -365.5 143.5t-148.5 358.5q0 135 68 250t183.5 181.5t250.5 66.5q184 0 349 -148l-105 -106q-114 104 -243 104q-149 0 -251.5 -104t-102.5 -254q0 -140 105.5 -241t247.5 -101q131 0 244 103zM912 565l276 -266l-276 -264 v177h-413v176h413v177z" />
  67
+<glyph unicode="Z" horiz-adv-x="1217" d="M870 300q0 27 -19.5 46t-46.5 19h-391q-27 0 -46 -19t-19 -46t19 -46t46 -19h391q27 0 46.5 19t19.5 46zM1174 452v-609q0 -17 -13 -30t-31 -13h-1043q-18 0 -31 13t-13 30v609q0 18 13 31t31 13h1043q18 0 31 -13t13 -31zM1217 757v-131q0 -18 -12.5 -30.5t-30.5 -12.5 h-1131q-17 0 -30 12.5t-13 30.5v131q0 17 13 30t30 13h1131q18 0 30.5 -13t12.5 -30z" />
  68
+<glyph unicode="[" horiz-adv-x="529" d="M265 35l-265 530h529z" />
  69
+<glyph unicode="\" d="M726 -9l-535 535q-74 -100 -74 -226q0 -158 112.5 -270.5t270.5 -112.5q126 0 226 74zM883 300q0 158 -112.5 270.5t-270.5 112.5q-126 0 -226 -74l535 -535q74 100 74 226zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182 t251 67t251 -67t182 -182t67 -251z" />
  70
+<glyph unicode="]" horiz-adv-x="529" d="M529 300l-529 -265v530z" />
  71
+<glyph unicode="_" horiz-adv-x="1360" d="M160 277l317 135v96l-317 134v-99l209 -84l-209 -83v-99zM522 200h318v77h-318v-77zM1360 800v-1000h-1360v1000h1360z" />
  72
+<glyph unicode="`" d="M848 241h-142v118h142q-19 110 -99 190t-190 99v-142h-118v142q-110 -19 -190 -99t-99 -190h142v-118h-142q19 -110 99 -190t190 -99v142h118v-142q110 19 190 99t99 190zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67 t251 -67t182 -182t67 -251z" />
  73
+<glyph unicode="a" horiz-adv-x="760" d="M160 -40h440v560h-120v120h-320v-680zM560 800l200 -200l-1 -800h-759v1000h560z" />
  74
+<glyph unicode="b" horiz-adv-x="989" d="M158 108h671v316h-118v118h-553v-434zM987 503v-553h-987v750h789z" />
  75
+<glyph unicode="c" horiz-adv-x="1137" d="M1137 700v-532q0 -41 -29.5 -70.5t-70.5 -29.5h-168v-268l-267 268h-502q-41 0 -70.5 29.5t-29.5 70.5v532q0 41 29.5 70.5t70.5 29.5h937q41 0 70.5 -29.5t29.5 -70.5z" />
  76
+<glyph unicode="d" horiz-adv-x="1179" d="M1179 336q0 -126 -79 -233.5t-215 -169.5t-296 -62q-122 0 -234 39l2 -3l-357 -107q44 59 70.5 126.5t31.5 105.5l4 38q-106 120 -106 266q0 126 79 233t214.5 169t295.5 62t296 -62t215 -169t79 -233z" />
  77
+<glyph unicode="e" horiz-adv-x="1179" d="M429 336q0 29 -21 50t-51 21q-29 0 -50 -21t-21 -50q0 -30 21 -51t50 -21q30 0 51 21t21 51zM679 336q0 29 -21 50t-51 21q-29 0 -50 -21t-21 -50q0 -30 21 -51t50 -21q30 0 51 21t21 51zM929 336q0 29 -21 50t-51 21q-29 0 -50 -21t-21 -50q0 -30 21 -51t50 -21 q30 0 51 21t21 51zM1179 336q0 -126 -79 -233.5t-215 -169.5t-296 -62q-122 0 -234 39l2 -3l-357 -107q44 59 70.5 126.5t31.5 105.5l4 38q-106 120 -106 266q0 126 79 233t214.5 169t295.5 62t296 -62t215 -169t79 -233z" />
  78
+<glyph unicode="f" d="M813 552l20 118q-43 15 -143 15q-79 0 -123 -58q-26 -34 -26 -119v-6v-36v-36h-79v-115h79v-400h149v400h118l9 115h-127v36v42v12q0 42 59 42q31 0 64 -10zM1000 712v-824q0 -36 -26 -62t-62 -26h-824q-36 0 -62 26t-26 62v824q0 36 26 62t62 26h824q36 0 62 -26t26 -62 z" />
  79
+<glyph unicode="g" d="M468 121q0 -44 -43 -71t-90 -27t-85.5 24t-38.5 68q0 48 41 72t92 24q46 0 85 -23.5t39 -66.5zM413 466q0 -35 -15.5 -60t-48.5 -25q-43 0 -68.5 45.5t-25.5 91.5q0 35 15.5 60t48.5 25q43 0 68.5 -45.5t25.5 -91.5zM548 636q0 11 -22 11q-3 0 -52 0.5t-72.5 0t-60.5 -4 t-59 -10.5q-58 -19 -92.5 -62t-34.5 -102q0 -70 44 -113t114 -42h6q0 -24 2 -35t5 -11.5t7.5 -5t8.5 -14.5q-55 0 -102.5 -12t-85.5 -48t-38 -91q0 -77 61.5 -114.5t143.5 -37.5q92 0 159.5 45.5t67.5 133.5q0 38 -19.5 73t-43.5 55t-43.5 38.5t-19.5 28.5q0 11 15 25.5 t33.5 29t33.5 46.5t15 74q0 76 -44 107q1 0 15.5 1.5t20.5 3t17 5t15.5 10t4.5 15.5zM763 473h121v60h-121v122h-60v-122h-122v-60h122v-121h60v121zM1000 712v-824q0 -36 -26 -62t-62 -26h-824q-36 0 -62 26t-26 62v824q0 36 26 62t62 26h824q36 0 62 -26t26 -62z" />
  80
+<glyph unicode="h" horiz-adv-x="1185" d="M501 801v-319q110 -15 203.5 -45t159 -68t118.5 -82.5t86 -90.5t57 -90.5t35 -83.5t17.5 -69t6.5 -47l1 -17q-6 11 -19 29.5t-67.5 63t-124.5 76.5t-196.5 52t-276.5 7v-316l-501 499z" />
  81
+<glyph unicode="i" horiz-adv-x="1550" d="M866 801v-319q110 -15 203.5 -45t159 -68t118.5 -82.5t86 -90.5t57 -90.5t35 -83.5t17.5 -69t7.5 -47v-17q-6 11 -19 29.5t-67.5 63t-124.5 76.5t-196.5 52t-276.5 7v-316l-501 499zM501 801v-182l-319 -319l319 -318v-181l-501 499z" />
  82
+<glyph unicode="j" horiz-adv-x="1185" d="M0 482h684v319l501 -501l-501 -499v316h-684v365z" />
  83
+<glyph unicode="k" d="M544 348h183l-1 119h-184l2 181h-112q-3 -68 -37 -118q-3 -5 -9 -16t-11.5 -19t-10.5 -12q-19 -15 -76 -15h-15v-120l91 -3v-303q0 -39 14.5 -65t41 -37.5t50 -15t55.5 -3.5h45q50 0 81 3.5t42.5 7.5t26.5 12v128v0q-54 -35 -105 -35q-27 0 -49 13t-22 25v273zM1000 712 v-824q0 -36 -26 -62t-62 -26h-824q-36 0 -62 26t-26 62v824q0 36 26 62t62 26h824q36 0 62 -26t26 -62z" />
  84
+<glyph unicode="l" d="M200 0h128v419h-128v-419zM332 535q0 28 -18.5 46.5t-48.5 18.5t-49 -18.5t-19 -46.5t18.5 -46.5t47.5 -18.5q32 0 51 18.5t18 46.5zM668 0h129v247q0 89 -41 135t-107 46q-47 0 -79.5 -21t-48.5 -47h-2l-6 59h-111q3 -114 3 -134v-285h128v241q0 21 4 33q20 49 66 49 q65 0 65 -91v-232zM1000 712v-824q0 -36 -26 -62t-62 -26h-824q-36 0 -62 26t-26 62v824q0 36 26 62t62 26h824q36 0 62 -26t26 -62z" />
  85
+<glyph unicode="m" d="M880 547q0 93 -112 93q-74 0 -139 -53t-89 -126q20 3 38 1t32 -7t22 -19.5t8 -38.5q0 -43 -38 -119t-75 -76q-19 0 -36 19q-24 25 -38 94.5t-20 134.5t-31 117t-70 52q-37 0 -80 -26t-104.5 -80.5t-67.5 -58.5v-5q5 -5 10.5 -14.5t12 -14t18.5 -4.5q11 0 33 7t34 7 q26 0 43 -40q5 -13 12.5 -37.5t10.5 -32.5q14 -40 37 -130l6.5 -26l8 -32t9.5 -32.5t12.5 -35t14 -31.5t17.5 -29.5t20.5 -22t25 -16.5t28.5 -5q67 0 145 65t138.5 156t105 182.5t55.5 149.5q3 18 3 34zM1000 712v-824q0 -36 -26 -62t-62 -26h-824q-36 0 -62 26t-26 62v824 q0 36 26 62t62 26h824q36 0 62 -26t26 -62z" />
  86
+<glyph unicode="n" d="M89 349l150 -107l-150 -106v213zM1000 14v-213h-669v213h669zM1000 349v-213h-669v213h669zM1000 683v-213h-669v213h669z" />
  87
+<glyph unicode="o" d="M239 349v-213l-150 106zM1000 14v-213h-669v213h669zM1000 349v-213h-669v213h669zM1000 683v-213h-669v213h669z" />
  88
+<glyph unicode="p" d="M239 -93q0 -31 -22.5 -53.5t-53.5 -22.5t-53.5 22.5t-22.5 53.5q0 32 22.5 54.5t53.5 22.5t53.5 -22.5t22.5 -54.5zM239 242q0 -32 -22.5 -54t-53.5 -22t-53.5 22t-22.5 54t22.5 54t53.5 22t53.5 -22t22.5 -54zM1000 14v-213h-669v213h669zM239 577q0 -31 -22.5 -53.5 t-53.5 -22.5t-53.5 22.5t-22.5 53.5t22.5 53.5t53.5 22.5t53.5 -22.5t22.5 -53.5zM1000 349v-213h-669v213h669zM1000 683v-213h-669v213h669z" />
  89
+<glyph unicode="q" d="M233 -128q0 -29 -21 -45.5t-50 -16.5q-32 0 -51.5 17.5t-19.5 48.5v3h38q0 -37 32 -37q14 0 23 8t9 22t-10 21.5t-25 6.5h-9v27q40 -2 40 24q0 11 -7.5 17.5t-19.5 6.5q-29 0 -29 -33h-37q1 30 18.5 47t47.5 17q26 0 45 -13.5t19 -38.5q0 -13 -7.5 -24t-19.5 -14 q34 -8 34 -44zM232 175v-33h-141q1 28 17 48.5t34.5 30t34 23.5t15.5 30q0 12 -7.5 19.5t-20.5 7.5q-29 0 -31 -41h-37q0 34 18 54.5t52 20.5q28 0 46.5 -16t18.5 -43q0 -25 -16.5 -41t-40 -30.5t-33.5 -29.5h91zM1000 14v-213h-669v213h669zM196 662v-192h-42v125h-46v29 q49 0 56 38h32zM1000 349v-213h-669v213h669zM1000 683v-213h-669v213h669z" />
  90
+<glyph unicode="r" d="M324 35q0 37 -26 63t-63 26q-36 0 -62 -26t-26 -63q0 -36 26 -62t62 -26q37 0 63 26t26 62zM477 -53h136q0 126 -62.5 233.5t-170 170t-233.5 62.5v-135q136 0 233 -97q97 -95 97 -234zM717 -53h136q0 143 -56 274t-150.5 225.5t-225.5 150.5t-274 56v-135 q154 0 285.5 -76.5t208 -208t76.5 -286.5zM1000 712v-824q0 -36 -26 -62t-62 -26h-824q-36 0 -62 26t-26 62v824q0 36 26 62t62 26h824q36 0 62 -26t26 -62z" />
  91
+<glyph unicode="s" d="M783 175q0 50 -22 86.5t-57.5 56.5t-78.5 34t-86 22.5t-78.5 18t-57.5 25.5t-22 39q0 34 36.5 49.5t75.5 15.5q40 0 66.5 -12.5t38.5 -30t21.5 -35t25 -30t40.5 -12.5q28 0 48.5 19t20.5 46t-15 54q-30 55 -96.5 80t-140.5 25q-46 0 -89.5 -9t-84.5 -28.5t-66 -56.5 t-25 -87q0 -66 40.5 -106.5t99 -57t116.5 -28.5t98.5 -33.5t40.5 -58.5q0 -42 -42 -62.5t-90 -20.5q-45 0 -74 15t-41.5 36t-22.5 42.5t-26 36.5t-42 15q-28 0 -49 -17.5t-21 -44.5q0 -42 31 -85q72 -104 249 -104q50 0 97 11t89 33.5t67.5 63.5t25.5 95zM1000 73 q0 -113 -81.5 -193t-195.5 -80q-69 0 -130 32q-46 -8 -88 -8q-196 0 -336.5 137.5t-140.5 333.5q0 42 10 94q-38 64 -38 138q0 113 81.5 193t195.5 80q81 0 147 -42q38 7 81 7q129 0 238.5 -62.5t174 -170.5t64.5 -237q0 -56 -11 -101q29 -58 29 -121z" />
  92
+<glyph unicode="t" horiz-adv-x="1003" d="M1003 300q-43 -48 -120 -46q-37 -152 -177.5 -244t-304.5 -92q-121 0 -225.5 53t-175.5 151q75 -72 181 -72q113 0 191 83q-24 -4 -48 7.5t-24 34.5q0 27 41 45q-40 -5 -73 11t-51 51q22 25 69 28q-98 24 -112 102q27 8 53 8h8q-37 20 -62 51.5t-24 69.5l1 8 q155 -59 257 -116q30 -17 76 -63q32 87 67.5 150.5t89.5 98.5q-1 -16 -15 -31q33 32 78 38q-3 -23 -53 -41q7 2 25.5 9.5t33 11.5t25.5 4q15 0 15 -11q0 -8 -16.5 -16t-42.5 -15.5t-28 -8.5q81 8 141.5 -51.5t76.5 -142.5q18 -6 36 -6q50 0 83 19q-13 -30 -43.5 -47 t-66.5 -19q34 -15 83 -15q16 0 31 3z" />
  93
+<glyph unicode="u" horiz-adv-x="963" d="M741 -199v1000h222v-1000h-222zM593 -199h-223v667h223v-667zM222 -199h-222v333h222v-333z" />
  94
+<glyph unicode="v" d="M605 187q0 -12 -3 -22.5t-7 -18t-12.5 -13.5t-14.5 -10t-18 -6.5t-18.5 -4t-21 -2t-20 -0.5h-20.5h-18h-22v150h51h25.5t23 -1t24.5 -3.5t19 -8t18 -13t9.5 -19.5t4.5 -28zM567 430q0 -20 -7 -33t-15.5 -20t-26 -10t-27.5 -3.5t-31 -0.5h-30v127h39q18 0 27.5 -0.5 t25.5 -3.5t24 -9t14.5 -18t6.5 -29zM760 184q0 58 -32 95.5t-91 49.5v3q39 16 61 51t22 78q0 46 -19.5 75.5t-55.5 42.5t-68.5 17t-77.5 4h-219v-600h240q47 0 88 9.5t76 29.5t55.5 57.5t20.5 87.5zM1000 712v-824q0 -36 -26 -62t-62 -26h-824q-36 0 -62 26t-26 62v824 q0 36 26 62t62 26h824q36 0 62 -26t26 -62z" />
  95
+<glyph unicode="w" horiz-adv-x="582" d="M582 388v-356q0 -32 -32 -32h-518q-32 0 -32 32v356q0 33 32 33h389v194q0 51 -37 74t-91 23q-53 0 -92 -25.5t-39 -76.5v-125h-97v128h1q9 87 74 140.5t153 53.5t151 -63t71 -151h1l2 -172q4 0 14.5 0.5t15 0t13 -2t12 -5t6.5 -10t3 -16.5z" />
  96
+<glyph unicode="x" horiz-adv-x="582" d="M421 550q0 51 -37 74t-91 23q-53 0 -92 -25.5t-39 -76.5v-124h259v129zM582 388v-356q0 -32 -32 -32h-518q-32 0 -32 32v356q0 10 3 16.5t7 10t12 5t13 2t15.5 0t14.5 -0.5v127h1q9 87 74 140.5t153 53.5t151 -62.5t71 -151.5h1l2 -107q4 0 14.5 0.5t15 0t13 -2t12 -5 t6.5 -10t3 -16.5z" />
  97
+<glyph unicode="y" d="M611 90v-133q0 -21 -18 -21q-14 0 -25 11v158q10 10 22 10q21 0 21 -25zM802 87v-28h-45v28q0 27 23 27q22 0 22 -27zM258 192h61v50h-179v-50h60v-293h58v293zM414 -101h51v253h-51v-192q-17 -19 -31 -19q-13 0 -13 17v194h-52v-213q0 -44 36 -44q30 0 60 32v-28z M664 -48v140q0 63 -50 63q-25 0 -46 -23v110h-52v-343h52v20q22 -23 49 -23q47 0 47 56zM855 -29v19h-53q0 -2 0.5 -13t0 -15.5t-2.5 -11.5t-7 -10t-14 -3q-10 0 -15.5 6t-6 12t-0.5 17v48h98v64q0 35 -19 55t-54 20q-34 0 -56.5 -20.5t-22.5 -54.5v-113q0 -36 19.5 -57.5 t55.5 -21.5q77 0 77 79zM926 62q0 -49 -6 -145q-4 -50 -38.5 -79.5t-84.5 -31.5q-99 -5 -297 -5q-199 0 -297 5q-50 2 -84.5 31.5t-38.5 79.5q-6 96 -6 145t6 145q4 50 38.5 79.5t84.5 31.5q98 5 297 5t297 -5q50 -2 84.5 -31.5t38.5 -79.5q6 -96 6 -145zM315 801h73 l-55 -165q-4 -12 -10 -27.5t-10.5 -28t-7.5 -27.5v-176h-72v168q-2 12 -29 85l-57 171h73l46 -169h5zM505 450v171q0 10 -9 16.5t-19 6.5t-18 -6.5t-8 -16.5v-171q0 -26 26 -26q28 0 28 26zM570 617v-162q0 -42 -25 -64t-68 -22q-41 0 -66.5 23.5t-25.5 63.5v162 q0 39 27.5 59.5t67.5 20.5q38 0 64 -22t26 -59zM807 690v-313h-64v35q-37 -39 -74 -39q-45 0 -45 56v261h64v-240q0 -21 17 -21t38 24v237h64z" />
  98
+<glyph unicode="z" d="M1000 235v-9l-426 -426h-565l-9 9v565l426 426h9l139 -139zM574 384v277h-277l-10 -9v-555l10 -10h555l9 10v268l-9 9h-268z" />
  99
+<glyph unicode="{" horiz-adv-x="471" d="M235 182l-235 236h471z" />
  100
+<glyph unicode="}" horiz-adv-x="471" d="M471 182h-471l235 236z" />
  101
+<glyph unicode="~" d="M412 360h103l-162 265l-162 -265h103v-294h118v294zM647 7l162 236h-103v293h-118v-293h-103zM1000 301q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  102
+<glyph unicode="&#xb2;" d="M1000 -39v-160h-1000v160h1000zM1000 241v-160h-1000v160h1000zM1000 521v-160h-1000v160h1000zM1000 801v-160h-1000v160h1000z" />
  103
+<glyph unicode="&#xb3;" d="M120 -79h200v200h-200v-200zM440 241v-440h-440v440h440zM1000 -39v-160h-440v160h440zM120 481h200v200h-200v-200zM440 801v-440h-440v440h440zM1000 241v-160h-440v160h440zM1000 521v-160h-440v160h440zM1000 801v-160h-440v160h440z" />
  104
+<glyph unicode="&#xb9;" d="M120 -79h200v200h-200v-200zM440 241v-440h-440v440h440zM680 -79h200v200h-200v-200zM1000 241v-440h-440v440h440zM120 481h200v200h-200v-200zM440 801v-440h-440v440h440zM680 481h200v200h-200v-200zM1000 801v-440h-440v440h440z" />
  105
+<glyph unicode="&#xd7;" d="M661 68l71 71l-161 161l161 161l-71 71l-161 -161l-161 161l-71 -71l161 -161l-161 -161l71 -71l161 161zM1000 300q0 -136 -67 -251t-182 -182t-251 -67t-251 67t-182 182t-67 251t67 251t182 182t251 67t251 -67t182 -182t67 -251z" />
  106
+<glyph unicode="&#xe000;" horiz-adv-x="740" d="M0 740h740v-740h-740v740z" />
  107
+</font>
  108
+</defs></svg> 
BIN  public/fonts/websymbols-regular-webfont.ttf
Binary file not shown
BIN  public/fonts/websymbols-regular-webfont.woff
Binary file not shown
4  routes/index.js
@@ -110,5 +110,9 @@ module.exports = {
110 110
         bodyClass: 'long-form blog-post'
111 111
       });
112 112
     }
  113
+  },
  114
+  
  115
+  resume: function(req, res) {
  116
+    res.render('resume', { layout: false });
113 117
   }
114 118
 };
400  views/resume.jade
... ...
@@ -0,0 +1,400 @@
  1
+!!! 5
  2
+html(lang="en")
  3
+  head
  4
+    title="Matt Sanford"
  5
+    meta(name='viewport', content='initial-scale=1.0')
  6
+    link(href='http://fonts.googleapis.com/css?family=Oswald|Yanone+Kaffeesatz:200', rel='stylesheet', type='text/css')
  7
+    link(rel='stylesheet', href='/css/style.css')
  8
+    link(rel='stylesheet', href='/css/type.css')
  9
+    link(rel='stylesheet', href='/css/resume.css')
  10
+    script(type="text/javascript", src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js')
  11
+    script(type="text/javascript", src='http://platform.twitter.com/anywhere.js?id=fJsg3RnOk16oG5Y6QRfjw&v=1')
  12
+    script(type="text/javascript")
  13
+      var _gaq = _gaq || [];
  14
+      _gaq.push(['_setAccount', 'UA-7956475-1']);
  15
+      _gaq.push(['_setDomainName', 'mzsanford.com']);
  16
+      _gaq.push(['_trackPageview']);
  17
+
  18
+      (function() {
  19
+        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
  20
+        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
  21
+        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  22
+      })();
  23
+  body.resume
  24
+    header
  25
+      h1 Matt Sanford
  26
+      h2 Engineer at large
  27
+    div#howto
  28
+      | I've taken the totally open approach to my resume.
  29
+      | I've included not just the companies I've worked for, or just the positions I held there, but I've provided details
  30
+      | about the projects I worked on. Better yet, I've <strong>included the contact for people who took over those projects</strong>
  31
+      | after me, where available. I am guessing about half of those people will have negative comments but that's what happens
  32
+      | when a problem outgrows the code you wrote for it. I have not included the day-to-day bug fixes and roadmap items I worked
  33
+      | on since that seems unhelpful. I believe that if you're reading this you should understand that an acceptable solution today
  34
+      | might not appropriate a year from now. I solve problems with an eye toward the future but without a crystal ball.
  35
+    div#chronology
  36
+      ol.employers
  37
+        li.employer#emp-twitter
  38
+          span.employer-name Twitter
  39
+          span.employer-description Search, API and Mr. International.
  40
+            span.employer-dates 2008-2011
  41
+          ol.positions
  42
+            li.pos
  43
+              div.r-arrow >
  44
+              h4.name <span class="icon">U</span>Technical Manager
  45
+              div.description
  46
+                | Manager of a 12 person team in charge of Twitter's Translation Center,
  47
+                | Help Center and Support Tools. Based on the quick growth and varied nature
  48
+                | of the team I divided them into sub-groups with specific ownership. The leadership
  49
+                | and ownership improved quality and response in emergencies, while making the
  50
+                | work more fulfilling.
  51
+              ul.people
  52
+                li.title Some direct reports:
  53
+                li
  54
+                  a(href='http://twitter.com/nsallembien') @nsallembien
  55
+                li
  56
+                  a(href='http://twitter.com/bshine') @bshine
  57
+              ul.people
  58
+                li.title My managers in this position:
  59
+                li
  60
+                  a(href='http://twitter.com/crystal') @crystal
  61
+                li
  62
+                  a(href='http://twitter.com/sfjulie') @sfjulie
  63
+            li.pos
  64
+              div.l-arrow <
  65
+              h4.name <span class="icon">_</span>Engineer (International)
  66
+              div.description
  67
+                | Lead engineer for international projects. This was a combination of company roadmap projects
  68
+                | and international-focused side projects that I conceived and executed on.
  69
+              ol.projects
  70
+                li.project
  71
+                  h5.name Translation Center
  72
+                    a.url(href='http://translate.twttr.com') http://translate.twttr.com
  73
+                    a.expand.icon(href='#') ; 
  74
+                  div.description
  75
+                    | Designed and implemented a system for Twitter's community translation effort. Originally
  76
+                    | built into twitter.com based on a prototype from <a href="http://twitter.com/mrtall">@mrtall</a>
  77
+                    | and later moved to a standalone Rails application. 
  78
+                    ul.people
  79
+                      li.title Co-workers on the project:
  80
+                      li
  81
+                       a(href='http://twitter.com/cpatil') @cpatil
  82
+                      li
  83
+                       a(href='http://twitter.com/nsallembien') @nsallembien
  84
+                    ul.people
  85
+                      li.title Owners after me:
  86
+                      li
  87
+                       a(href='http://twitter.com/nsallembien') @nsallembien
  88
+                      li
  89
+                       a(href='http://twitter.com') @omnidactyl
  90
+                 li.project
  91
+                   h5.name Twitter World Cup 2010
  92
+                     a.url(href='http://blog.twitter.com/2010/06/develop-game-build-better-future.html') http://blog.twitter.com/…
  93
+                     a.expand.icon(href='#') ; 
  94
+                   div.description
  95
+                     | Designed and implemented the <a href="http://news.softpedia.com/news/World-Cup-Twitter-Launches-Dedicated-Site-and-Hashflags-144383.shtml">#hashflags</a>
  96
+                     | feature to encourage conversation. Worked with a designer to create the World Cup 2012 microsite to display
  97
+                     | side-by-side Tweets about the event. All of this as a <strong>side project</strong> based on my belief that
  98
+                     | the World Cup was an important event.
  99
+                     ul.people
  100
+                       li.title Co-workers on the project:
  101
+                       li
  102
+                        a(href='http://twitter.com/cpatil') @cpatil
  103
+                       li
  104
+                        a(href='http://twitter.com/vitor') @vitor
  105
+                li.project
  106
+                   h5.name twitter-text libraries
  107
+                     a.expand.icon(href='#') ; 
  108
+                   div.description
  109
+                     | I saw a need for consistent auto-linking in Tweets, especially after fixing issues with Japanese
  110
+                     | text. Rather than a simple bug fix I made this into an open source project to create a cross-platform
  111
+                     | test suite (<a href="https://github.com/twitter/twitter-text-conformance">twitter-text-conformance</a>).
  112
+                     | I wrote the <a href="https://github.com/twitter/twitter-text-rb">Ruby</a> and
  113
+                     | <a href="https://github.com/twitter/twitter-text-java">Java</a> implementations and consulted with the
  114
+                     | the Twitter front end team on the <a href="https://github.com/twitter/twitter-text-js">Javascript</a> implementation.
  115
+                     | I continued development as the leader of an internal group that determined the features and roadmap.
  116
+                     ul.people
  117
+                       li.title Co-workers on the projects: 
  118
+                       li
  119
+                         a(href='http://twitter.com/ded') @ded
  120
+                       li
  121
+                        a(href='http://twitter.com/kevinweil') @kevinweil
  122
+                     ul.people
  123
+                       li.title Maintainer after I left: 
  124
+                       li
  125
+                         a(href='http://twitter.com/keita_f') @keita_f
  126
+            li.pos
  127
+              div.r-arrow >
  128
+              h4.name <span class="icon">_</span>Engineer (API)
  129
+              div.description
  130
+                | Lead engineer for international projects. This was a combination of company roadmap projects
  131
+                | and international-focused side projects that I conceived and executed on.
  132
+               ol.projects
  133
+                  li.project
  134
+                    h5.name Mail at Twitter
  135
+                       a.expand.icon(href='#') ; 
  136
+                     div.description
  137
+                       | Email at Twitter was all plain-text and sent by the Rails process at the time of whatever event
  138
+                       | spawned it. The mails looked like spam so I took on a side project to upgrade the mail system. Moved
  139
+                       | to multipart MIME and HTML emails (with Google Analytics click tracking) and decoupled the email 
  140
+                       | from the front-end processing. This code continued to run in production for several years before its
  141
+                       | eventual replacement.
  142
+                       ul.people
  143
+                          li.title Operations/Engineers I worked with: 
  144
+                          li
  145
+                            a(href='http://twitter.com/netik') @netik
  146
+                          li
  147
+                           a(href='http://twitter.com/rael') @rael
  148
+                        ul.people
  149
+                          li.title People who cleaned up my mess: 
  150
+                          li
  151
+                            a(href='http://twitter.com/kmonkeyjam') @kmonkeyjam
  152
+                          li
  153
+                            a(href='http://twitter.com/phopkins') @phopkins
  154
+                  li.project
  155
+                    h5.name OAuth v1.0
  156
+                      a.url(href='http://groups.google.com/group/twitter-development-talk/msg/55be24ee9219c447') [Announcement]
  157
+                      a.expand.icon(href='#') ; 
  158
+                    div.description
  159
+                      | I created the first server-side implementation of OAuth for Twitter.com. This required complex
  160
+                      | integrations with Twitter's existing authentication infrastructure as well as performance critical
  161
+                      | design decisions to make sure that the API traffic could continue unabated.
  162
+                      ul.people
  163
+                        li.title Tech lead of the API team:
  164
+                        li
  165
+                          a(href='http://twitter.com/al3x') @al3x
  166
+                      ul.people
  167
+                        li.title Re-write later on by:
  168
+                        li
  169
+                          a(href='http://twitter.com/raffi') @raffi
  170
+                        li
  171
+                          a(href='http://twitter.com/DanaDanger') @DanaDanger
  172
+                      
  173
+        li.employer#emp-summize
  174
+          span.employer-name Summize
  175
+          span.employer-description In a company this small you do it all.
  176
+            span.employer-dates 2007-2008
  177
+          ol.positions
  178
+            li.pos
  179
+              div.r-arrow >
  180
+              h4.name <span class="icon">_</span>Engineer (Twitter Search)
  181
+              div.description
  182
+                | Worked on a combination of content acquisition, content processing, front-end development and
  183
+                | operations for twitter.summize.com, which later became search.twitter.com.
  184
+               ol.projects
  185
+                  li.project
  186
+                    h5.name Language Detection
  187
+                      a.expand.icon(href='#') ;
  188
+                    div.description
  189
+                      | To help remove irrelevant results from Twitter search results I felt limiting to Tweets the user
  190
+                      | can read was an obvious first step. The problem here was that language detection needed to be
  191
+                      | implemented in a way that was both fast an reasonably accurate. I posted a brief
  192
+                      | <a href="http://mzsanford.com/blog/language-detection-geekery">blog post</a> about the approach. This
  193
+                      | code continued to be used for Twitter search until my departure in late 2011.
  194
+                      ul.people
  195
+                        li.title Co-worker on the project:
  196
+                        li
  197
+                          a(href='http://twitter.com/JugglingPumba') @JugglingPumba
  198
+                      ul.people
  199
+                        li.title Owners after my departure:
  200
+                        li
  201
+                          a(href='http://twitter.com/rion') @rion
  202
+                        li
  203
+                          a(href='http://twitter.com/mbilotti') @mbilotti
  204
+                  li.project
  205
+                    h5.name More Tweets since you began searching …
  206
+                      a.expand.icon(href='#') ;
  207
+                    div.description
  208
+                      | It seems like a small thing, and an obvious one, now that years have passed. I created the
  209
+                      | "x more Tweets since you began searching" dialog for Twitter search. The product goal was to increase
  210
+                      | the <em>feeling</em> of real-time. At the time this needed to be stressed and again, it seems simple,
  211
+                      | but it's simply awesome at doing what it is designed to do. <strong>Notably</strong>: I did not deliver new Tweets inline
  212
+                      | (although I wrote it) because the moving click-target problems it creates.
  213
+                      ul.people
  214
+                        li.title Co-worker on the project:
  215
+                        li
  216
+                          a(href='http://twitter.com/gregpass') @gregpass
  217
+                  li.project
  218
+                    h5.name Tweet acquisition
  219
+                      a.expand.icon(href='#') ;
  220
+                    div.description
  221
+                      | As a very earlier user of the Twitter firehose we first needed to implement it over XMPP. Because
  222
+                      | of the instabilities we also needed a backup method using the Public Timeline method. My Java acquisition
  223
+                      | pipeline used the firehose unless excess lag was detected, at which point it failed over to the
  224
+                      | Public Timeline. Not a difficult project but critical to the success of our small company.
  225
+                      ul.people
  226
+                        li.title Co-workers on the pipeline:
  227
+                        li
  228
+                          a(href='http://twitter.com/JugglingPumba') @JugglingPumba
  229
+                        li
  230
+                          a(href='http://twitter.com/ej') @ej
  231
+            li.pos
  232
+              div.l-arrow <
  233
+              h4.name <span class="icon">_</span>Engineer (Review Search)
  234
+              div.description
  235
+                | Worked mostly on content acquisition for the review search and aggregation site Summize.com. The content
  236
+                | was crawled from review sources all over the web.
  237
+               ol.projects
  238
+                 li.project
  239
+                   h5.name Grease Monkey Demos
  240
+                     a.expand.icon(href='#') ;
  241
+                   div.description
  242
+                     | Before pivoting to work on Twitter search Summize was showing how sentiment extraction could improve
  243
+                     | content recommendations. I wrote Grease Monkey demos to show this to prospective clients interactively.
  244
+                     | These included <a href="https://vimeo.com/31966319">Washington Post</a> and <a href="https://vimeo.com/31966238">O'Reilly</a>.
  245
+                  li.project
  246
+                    h5.name Monitoring and Metrics
  247
+                      a.expand.icon(href='#') ;
  248
+                    div.description
  249
+                      | While the project itself involved simple things like choosing a systems monitoring solution (Cacti at
  250
+                      | at the time) it also involved instrumenting the code for monitorability. This included the now open
  251
+                      | sourced <a href="http://commons.apache.org/sandbox/pipeline/apidocs/org/apache/commons/pipeline/stage/ExtendedBaseStage.html">ExtendedBaseStage for commons-pipeline</a>
  252
+                      ul.people
  253
+                        li.title Co-workers on the pipeline:
  254
+                        li
  255
+                          a(href='http://twitter.com/JugglingPumba') @JugglingPumba
  256
+                  li.project
  257
+                    h5.name Heritrix Configuration / Extension
  258
+                      a.expand.icon(href='#') ;
  259
+                    div.description
  260
+                      | Configuring Heritrix for site-specific crawls is a daunting task that does not yield much sexy to talk
  261
+                      | about. However, at Summize we also wanted to re-visit a large number of blog posts and that sort of
  262
+                      | long-running non-batch crawl required extensive extensions to Heritrix. This involved a modified exponential
  263
+                      | back-off scheduling algorithm and a content change detection system.
  264
+        li.employer#emp-wdig
  265
+          span.employer-name Walt Disney <br/>&nbsp;Internet Group
  266
+          span.employer-description Engineer on login, registration and commerce.
  267
+            span.employer-dates 2006-2007
  268
+          ol.positions
  269
+            li.pos
  270
+              div.r-arrow >
  271
+              h4.name <span class="icon">_</span>Senior Software Engineer
  272
+              div.description
  273
+                | I worked on the server-side Java processing of registration, login and commerce on the Disney
  274
+                | owned online properties (ABC, ESPN, etc.). Among the projects during my tenure was merge of the
  275
+                | European and US account systems, for which I was able to lend a hand on both design and implementation.
  276
+              ol.projects
  277
+                li.project
  278
+                  h5.name European Migration
  279
+                    a.expand.icon(href='#') ;
  280
+                  div.description
  281
+                    | I worked with the team to design and implement a solution for merging the two account systems. While most
  282
+                    | of this work was pretty standard it did include my first exposure to character encodings, which has
  283
+                    | since lead me to become a member of the <a href="http://unicode.org">Unicode Consortium</a>.
  284
+                    ul.people
  285
+                      li.title Co-workers and maintainers
  286
+                      li
  287
+                        a(href='http://www.linkedin.com/pub/aleece-vanderloop/0/648/297') Aleece Vanderloop
  288
+                      li
  289
+                        a(href='http://www.linkedin.com/profile/view?id=49152599') Jaya Srinivasan
  290
+        li.employer#emp-aol
  291
+          span.employer-name AOL
  292
+          span.employer-description From the phones to the research department.
  293
+            span.employer-dates 1998-2006
  294
+          ol.positions
  295
+            li.pos
  296
+              div.r-arrow >
  297
+              h4.name <span class="icon">_</span>Software Engineer (Search Research)
  298
+              div.description
  299
+                | Junior member of the Search Research department. Worked on site creation for the group and a series of
  300
+                | prototype projects to show off the work we had been doing.
  301
+              ol.projects
  302
+                li.project
  303
+                  h5.name research.aol.com
  304
+                    a.expand.icon(href='#') ;
  305
+                  div.description
  306
+                    | Created a site to showcase the insights the team was gathering from search log data. This was mostly adding
  307
+                    | fancy jQuery effects (new at the time) and determining what method would best display the data. This was
  308
+                    | eventually shut down after the search logs in question were found to be less anonymous that thought.
  309
+                    ul.people
  310
+                      li.title Manager:
  311
+                      li
  312
+                        a(href='http://twitter.com/abdur') @abdur
  313
+                li.project
  314
+                  h5.name Prototype: Podcast Search
  315
+                    a.expand.icon(href='#') ;
  316
+                  div.description
  317
+                    | I created a small revisiting crawler for the most popular podcasts (then a hot topic). I worked with a 
  318
+                    | few other team members on meta-data extraction and search indexing and then wrote a front-end for
  319
+                    | our new service.
  320
+                    ul.people
  321
+                      li.title Manager:
  322
+                      li
  323
+                        a(href='http://twitter.com/abdur') @abdur
  324
+                li.project
  325
+                  h5.name Patent filings
  326
+                    a.expand.icon(href='#') ;
  327
+                  div.description
  328
+                    | Not the proudest projects but one that required significant work was the filing of two patents. One is related
  329
+                    | to image processing and required intensive manual quality evaluation. The other was related to crawler technology
  330
+                    | and while the filing was easier the work done implementing it was wide ranging and difficult.
  331
+                    ul.people
  332
+                      li.title Manager:
  333
+                      li
  334
+                        a(href='http://twitter.com/abdur') @abdur
  335
+            li.pos
  336
+              div.l-arrow <
  337
+              h4.name <span class="icon">_</span>Software Engineer (Video Search)
  338
+              div.description
  339
+                | Engineer in charge of the crawler components of the AOL Video Search system. I also worked on other
  340
+                | components like thumbnail extraction and processing.
  341
+              ol.projects
  342
+                li.project
  343
+                  h5.name Web Crawler
  344
+                    a.expand.icon(href='#') ;
  345
+                  div.description
  346
+                    | I took over and existing RMI-based crawler infrastructure and made significant scalability improvements
  347
+                    | by moving to internally-queued communication to reduce lock contention. I also parallelized fetches to use
  348
+                    | more machine resources while a given process was waiting on network I/O.
  349
+                    ul.people
  350
+                      li.title Manager:
  351
+                      li
  352
+                        a(href='http://twitter.com/jkolar') @jkolar
  353
+            li.pos
  354
+              div.r-arrow >
  355
+              h4.name <span class="icon">S</span>Senior Operations Analyst
  356
+              div.description
  357
+                | Helped ensure a smooth transition from per-country currencies to the Euro by working closely with our
  358
+                | team in Dublin, Ireland and our partners there. I lived in Ireland for 18 months as part of the project,
  359
+                | which in the end was very successful. Upon my return I started working on Video Search and AOL Voicemail
  360
+                | operations, which involved bringing newly acquired technologies in house.
  361
+                ul.people
  362
+                  li.title Co-workers left with my code:
  363
+                  li
  364
+                    a(href='http://www.linkedin.com/profile/view?id=8818289') Gary Cosgrave
  365
+            li.pos
  366
+              div.l-arrow <
  367
+              h4.name <span class="icon">S</span>Operations Analyst
  368
+              div.description
  369
+                | Worked with the QA and Engineering teams to improve the quality of software for billing, reporting and data 
  370
+                | warehousing. Monitored systems and wrote new software to collect metrics and monitor for anomalies (variance from
  371
+                | expected values, mostly). Learned to program on the job.
  372
+                ul.people
  373
+                  li.title Co-worker:
  374
+                  li
  375
+                    a(href='http://www.linkedin.com/profile/view?id=7391772') Dave Whittle
  376
+                ul.people
  377
+                  li.title Co-workers left with my code:
  378
+                  li
  379
+                    a(href='http://www.linkedin.com/profile/view?id=19181215') Bill McGarvey
  380
+                  li
  381
+                    a(href='http://www.linkedin.com/profile/view?id=4418419') Ron Lovato 
  382
+            li.pos
  383
+              div.r-arrow >
  384
+              h4.name <span class="icon">U</span>Technical Support Representative
  385
+              div.description
  386
+                | "Hello, and thank you for calling America Online, My name is Matt, can I start by getting your Screen Name?"
  387
+    footer
  388
+      span.copy &copy; #{1900+(new Date().getYear())} Matt Sanford
  389
+      span.contact Contact:
  390
+        a(href='http://twitter.com/mzsanford') @mzsanford
  391
+    script(type="text/javascript")
  392
+      twttr.anywhere(function (T) {
  393
+        T.hovercards();
  394
+      });
  395
+    script(type="text/javascript")
  396
+        $('.expand').click(function() {
  397
+          $(this).parent().parent().find('.description').toggle();
  398
+          return(false);
  399
+        });
  400
+      

No commit comments for this range

Something went wrong with that request. Please try again.