PageSourceSearch

https://jonsuh.com/about/

html jonsuh.com collected 2026-10-04 00:19:50 UTC 46,055 bytes, 281 lines download raw bytes

1<!DOCTYPE html>
2<!--#if expr="$HTTP_COOKIE=/fonts\-loaded\=true/" -->
3<html lang="en" class="fonts-loaded">
4<!--#else -->
5<html lang="en">
6<!--#endif -->
7<head>
8
9  <meta name="viewport" content="width=device-width, initial-scale=1">
10  <title>About — Jonathan Suh</title>
11  <link rel="dns-prefetch" href="//d281e42xwg0cwl.cloudfront.net">
12<!--#if expr="$HTTP_COOKIE=/fonts-loaded\=true/" -->
13  <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:400,700,500|Roboto+Slab:400,700">
14<!--#else -->
15  <meta name="fontsCSS" content="//fonts.googleapis.com/css?family=Roboto:400,700,500|Roboto+Slab:400,700">
16<!--#endif -->
17<!--#if expr="$HTTP_COOKIE=/mainCSS\=true/" -->
18  <link rel="stylesheet" href="//d281e42xwg0cwl.cloudfront.net/assets/css/screen.css?v=20170610251">
19<!--#else -->
20  <style>
21      body,h1,h4{margin:0}p,ul{letter-spacing:0;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;margin:0 0 .75em;line-height:1.5em}p,ul,ul li{line-height:1.5em}a,body,html{color:#66676e}.header,svg:not(:root){overflow-x:hidden;overflow-y:hidden}.logo-link,.nav{text-align:center}.nav-link,.sidebar-title{text-transform:uppercase}.about-mosaic-tile,.hero{background-size:cover;background-position:50% 50%;background-repeat:no-repeat no-repeat}*{box-sizing:inherit}@font-face{font-family:RobotoLocal;font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular")}@font-face{font-family:RobotoLocal;font-style:normal;font-weight:500;src:local("Roboto Medium"),local("Roboto-Medium")}@font-face{font-family:RobotoLocal;font-style:normal;font-weight:700;src:local("Roboto Bold"),local("Roboto-Bold")}@font-face{font-family:RobotoSlabLocal;font-style:italic;font-weight:400;src:local("Roboto Slab Regular"),local("RobotoSlab-Regular")}html{box-sizing:border-box}body,html{font-family:RobotoLocal,Helvetica,Arial,sans-serif;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background-color:#222326;height:100%}.fonts-loaded body{font-family:Roboto,Helvetica,Arial,sans-serif}aside,header,nav,section{display:block}.container::after,.header::after,.section-break-half::after,.section::after{display:table;clear:both;content:''}hr{box-sizing:content-box;height:0}img{max-width:100%;height:auto;border-style:initial;border-color:initial;border-width:0;border-width:0}h1,h4{color:#33343b}h1{font-size:1.875em;line-height:1.2em;margin-bottom:.3em}h4,p,ul,ul li{font-size:1em}h4{line-height:1.4em;margin-bottom:.5em}ul{padding-left:1.5em}a{text-decoration:none;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:#bbdefb;background-color:transparent}.container{padding-left:.9375em;padding-right:.9375em;max-width:68.75em;margin-left:auto;margin-right:auto;position:relative}.section{background-color:#fff;padding-top:1.5625em;padding-bottom:1.5625em}.header,.nav{background-color:#222326}.section-break-half{width:100%;border-style:initial;border-color:initial;border-width:0;margin:0;padding-top:.78125em}.no-break{white-space:nowrap}.about-intro p{text-indent:1.5em}.about-intro p:not(:last-child){margin-bottom:0}.about-intro h1+p{text-indent:0}.main,.sidebar{max-width:39.0625em;margin-left:auto;margin-right:auto}.header-border{width:100%;border-right-width:0;border-bottom-width:0;border-left-width:0;border-style:solid initial initial;border-color:#e6e7eb initial initial;border-top-width:.1875em;position:absolute;bottom:0;left:0;z-index:1;margin:0;margin:0}.header{height:3.75em;line-height:3.5625em;position:relative;z-index:3}.logo-link,.nav-link{border-bottom-width:.1875em;border-bottom-color:transparent;z-index:2;position:relative}.logo{width:3.125em;float:left;position:relative;left:-.3125em}.logo-link{display:block}.nav-label,.nav-link{display:inline-block}.logo-canvas{position:relative;height:3.5625em}.logo-svg{width:2.39583em;height:2.60417em;position:relative;top:.4375em}.logo-svg polygon{stroke:#bbbcc3;stroke-width:1px}.logo-svg g{-webkit-transform:translateX(0)}.logo-svg-g-1{fill:#3fae52}.logo-svg-g-2{fill:#7cc686}.logo-svg-g-3{fill:#2d8d43}.logo-svg-c-1{fill:#00bad2}.logo-svg-c-2{fill:#0097a7}.logo-svg-c-3{fill:#4ac4d7}.logo-svg-c-4{fill:#00bad2}.logo-svg-b-1{fill:#62b3e4}.logo-svg-b-2{fill:#1b77bd}.logo-svg-b-3{fill:#62b3e4}.logo-svg-b-4{fill:#3191cf}.logo-svg-pu-1{fill:#7a3594}.logo-svg-pu-2{fill:#944198}.logo-svg-pu-3{fill:#b06eae}.logo-svg-pu-4{fill:#944198}.logo-svg-pi-1{fill:#e81f64}.logo-svg-pi-2{fill:#c21e5c}.logo-svg-pi-3{fill:#f06392}.logo-svg-pi-4{fill:#e81f64}.logo-svg-pi-5{fill:#c21e5c}.logo-svg-r-1{fill:#ef4438}.logo-svg-r-2{fill:#e57373}.logo-svg-r-3{fill:#d32e2e}.logo-svg-r-4{fill:#ef4438}.logo-svg-r-5{fill:#d32e2e}.logo-svg-o-1{fill:#f47c20}.logo-svg-o-2{fill:#f8951f}.logo-svg-o-3{fill:#f47c20}.logo-svg-o-4{fill:#fcb452}.logo-svg-y-1{fill:#fedc63}.logo-svg-y-2{fill:#fecd27}.logo-svg-y-3{fill:#faa71c}.nav{border-top-width:1px;border-top-style:solid;border-top-color:#3a3c44;position:relative;top:-1px;float:right}.nav-link{font-weight:500;color:#bbbcc3;letter-spacing:.03em;padding-left:.4375em;padding-right:.4375em;margin-left:-.3125em}.nav-link:first-child{margin-left:0}.nav-label{font-size:.8125em;margin-bottom:-.07692em}.nav-link.is-current{color:#fff}.nav-link.is-current:nth-child(1){border-color:#e91e63}.mce-responses .response{display:none}.hero{padding-left:.9375em;padding-right:.9375em;height:12.5em;background-color:#2196f3;position:relative}.hero::before{content:'';width:100%;height:100%;position:absolute;top:0;left:0;z-index:1}.sidebar-title{font-size:95%;letter-spacing:.07em;margin-bottom:1em}.sidebar-list{line-height:1em;list-style:none initial initial;padding:0;margin:0}.sidebar-list-item{margin-bottom:.3em}.sidebar-list-link{color:#898a92;border-bottom-color:#e6e7eb}.hero--about{background-color:#4caf50;background-image:url(https://d281e42xwg0cwl.cloudfront.net/assets/images/about/jonathan-suh.jpg)}.about-mosaic{margin-bottom:.75em;position:relative}.about-mosaic::after{clear:both;content:'';display:table}.about-mosaic-tile{position:relative;float:left}.about-mosaic-tile-proportion{width:100%;display:block}.about-mosaic-tile--jb{width:60%;background-image:url(https://d281e42xwg0cwl.cloudfront.net/assets/images/about/jonathan-becky.jpg)}.about-mosaic-tile--js{width:50%;background-image:url(https://d281e42xwg0cwl.cloudfront.net/assets/images/about/jonathan-silas.jpg)}.about-mosaic-tile--sk{width:40%;background-image:url(https://d281e42xwg0cwl.cloudfront.net/assets/images/about/silas-katelyn.jpg);position:absolute;top:0;right:0}.about-location-beacon,.about-location-pin{display:inline-block;position:absolute}.about-location-pin{width:.875em;height:.875em;background-color:#f48fb1;top:2em;left:7.625em;border-width:2px;border-style:solid;border-color:#e91e63;border-radius:.875em}.about-location-beacon{width:3.125em;height:3.125em;top:.875em;left:6.5em;background-color:#fff;opacity:.5;-webkit-animation-name:about-location-beacon;-webkit-animation-duration:2s;-webkit-animation-timing-function:linear;-webkit-animation-delay:initial;-webkit-animation-iteration-count:infinite;-webkit-animation-direction:initial;-webkit-animation-fill-mode:initial;-webkit-transform:scale3d(.25,.25,.25);border-radius:3.125em}.sidebar-list--about-people .sidebar-list-item{display:inline-block}.sidebar-list--about-people .sidebar-list-item::after{content:', '}.about-location-image{width:100%;display:block}.about-location-image-path{fill:#ec407a}.about-sidebar-break{width:100%;margin-top:10.3125em;display:none}@media only screen and (min-width:22.8125em){.logo,.logo-svg{position:relative}.logo{width:4.0625em;float:left;left:-.1875em}.nav-link{padding-left:.625em;padding-right:.625em}.logo-svg{width:2.875em;height:3.125em;top:.21875em}.nav-label{font-size:.875em;margin-bottom:-.07692em}}@media only screen and (min-width:25em){.nav-link{padding-left:.75em;padding-right:.75em}}@media only screen and (min-width:30em){.header,.nav{background-color:#fff}h1{font-size:2em}p,ul{font-size:1.0625em}.container{padding-left:1.5625em;padding-right:1.5625em}.section{padding-top:2.5em;padding-bottom:2.5em}.section-break-half{padding-top:1.25em}.header{height:4.375em;line-height:4.1875em}.logo-canvas,.logo-svg{height:4.1875em}.logo{width:4.6875em;left:initial}.nav{width:calc(100% - 4.6875em)}.logo-svg{width:3.8125em;top:0}.nav{text-align:right;height:inherit;border-top-width:0;border-top-style:initial;border-top-color:initial;top:inherit;float:left;clear:inherit}.nav-link{color:#66676e;padding-left:.6875em;padding-right:.6875em}.nav-link.is-current{color:#33343b}
21.nav-label{font-size:1em;padding-top:initial}.hero{height:18.75em;padding-left:1.5625em;padding-right:1.5625em}}@media only screen and (min-width:34.375em){.nav-link{padding-left:1.125em;padding-right:1.125em}}@media only screen and (min-width:40em){h1{font-size:2.125em}p,ul{font-size:1.125em}.section{padding-top:3.75em;padding-bottom:3.75em}.section-break-half{padding-top:1.875em}.logo{width:4.9375em}.nav{width:calc(100% - 4.9375em)}.nav-link{padding-left:1.375em;padding-right:1.375em}.hero{height:25em}.sidebar-title{font-size:inherit}.sidebar-section{font-size:95%}.about-mosaic{width:110%;left:-5%}.about-mosaic-tile--bs,.about-mosaic-tile--jb,.about-mosaic-tile--js{margin-right:.9375em}.about-mosaic-tile--js{margin-bottom:.9375em}.about-mosaic-tile--sk{width:23%}}@media only screen and (min-width:48em){.header{height:5.625em;line-height:5.4375em}.logo-canvas,.logo-svg{height:5.4375em}.logo{width:6.375em}.nav{width:calc(100% - 6.375em)}.logo-svg{width:5em}.nav-link{padding-left:1.5625em;padding-right:1.5625em}}@media only screen and (min-width:56.25em){.logo{width:8.25em}.nav{width:calc(100% - 8.25em)}.nav-link{padding-left:2.5em;padding-right:2.5em}}@media only screen and (min-width:64em){.main,.sidebar{float:left;display:block;margin-right:3.63636%}h1{font-size:2.25em}h4{font-size:1.0625em}p,ul{font-size:1.1875em}.main{width:61.13636%}.sidebar{width:30.90909%;margin-left:4.31818%}.sidebar:last-child{margin-right:0}.sidebar-section{font-size:90%}.hero--about{background-image:url(https://d281e42xwg0cwl.cloudfront.net/assets/images/about/[email protected])}.about-mosaic{width:173%}.about-mosaic::after{clear:both;content:'';display:table}.about-sidebar-break{display:block}.sidebar-list--about-people .sidebar-list-item{display:inherit}.sidebar-list--about-people .sidebar-list-item::after{content:none}}
22    </style>
23  <meta name="mainCSS" content="//d281e42xwg0cwl.cloudfront.net/assets/css/screen.css?v=20170610251">
24<!--#endif -->
25
26  
26<script>
27    function loadCSS(a,b,c){"use strict";var d=window.document.createElement("link"),e=b||window.document.getElementsByTagName("script")[0],f=window.document.styleSheets;return d.rel="stylesheet",d.href=a,d.media="only x",e.parentNode.insertBefore(d,e),d.onloadcssdefined=function(a){for(var b,c=0;c<f.length;c++)f[c].href&&f[c].href===d.href&&(b=!0);b?a():setTimeout(function(){d.onloadcssdefined(a)})},d.onloadcssdefined(function(){d.media=c||"all"}),d}function cookie(a,b,c){if(void 0===b){var d="; "+window.document.cookie,e=d.split("; "+a+"=");return 2===e.length?e.pop().split(";").shift():null}var f;if(b===!1&&(c=-1),c){var g=new Date;g.setTime(g.getTime()+24*c*60*60*1e3),f="; expires="+g.toGMTString()}else f="";window.document.cookie=a+"="+b+f+"; path=/"}function loadJS(a,b){"use strict";var c=window.document.getElementsByTagName("script")[0],d=window.document.createElement("script");return d.src=a,d.async=!0,c.parentNode.insertBefore(d,c),b&&"function"==typeof b&&(d.onload=b),d}!function(){"use strict";function a(a){this.a=i,this.b=void 0,this.d=[];var b=this;try{a(function(a){d(b,a)},function(a){e(b,a)})}catch(c){e(b,c)}}function b(b){return new a(function(a,c){c(b)})}function c(b){return new a(function(a){a(b)})}function d(a,b){if(a.a===i){if(b===a)throw new TypeError("Promise resolved with itself.");var c=!1;try{var g=b&&b.then;if(null!==b&&"object"==typeof b&&"function"==typeof g)return void g.call(b,function(b){c||d(a,b),c=!0},function(b){c||e(a,b),c=!0})}catch(h){return void(c||e(a,h))}a.a=0,a.b=b,f(a)}}function e(a,b){if(a.a===i){if(b===a)throw new TypeError("Promise rejected with itself.");a.a=1,a.b=b,f(a)}}function f(a){setTimeout(function(){if(a.a!==i)for(;a.d.length;){var b=a.d.shift(),c=b[0],d=b[1],e=b[2],b=b[3];try{0===a.a?e("function"==typeof c?c.call(void 0,a.b):a.b):1===a.a&&("function"==typeof d?e(d.call(void 0,a.b)):b(a.b))}catch(f){b(f)}}},0)}function g(b){return new a(function(a,c){function d(c){return function(d){f[c]=d,e+=1,e===b.length&&a(f)}}var e=0,f=[];0===b.length&&a(f);for(var g=0;g<b.length;g+=1)b[g].c(d(g),c)})}function h(b){return new a(function(a,c){for(var d=0;d<b.length;d+=1)b[d].c(a,c)})}var i=2;a.prototype.e=function(a){return this.c(void 0,a)},a.prototype.c=function(b,c){var d=this;return new a(function(a,e){d.d.push([b,c,a,e]),f(d)})},window.Promise||(window.Promise=a,window.Promise.resolve=c,window.Promise.reject=b,window.Promise.race=h,window.Promise.all=g,window.Promise.prototype.then=a.prototype.c,window.Promise.prototype["catch"]=a.prototype.e)}(),function(){"use strict";function a(a){l.push(a),1==l.length&&k()}function b(){for(;l.length;)l[0](),l.shift()}function c(a){this.a=m,this.b=void 0,this.f=[];var b=this;try{a(function(a){f(b,a)},function(a){g(b,a)})}catch(c){g(b,c)}}function d(a){return new c(function(b,c){c(a)})}function e(a){return new c(function(b){b(a)})}function f(a,b){if(a.a==m){if(b==a)throw new TypeError;var c=!1;try{var d=b&&b.then;if(null!=b&&"object"==typeof b&&"function"==typeof d)return void d.call(b,function(b){c||f(a,b),c=!0},function(b){c||g(a,b),c=!0})}catch(e){return void(c||g(a,e))}a.a=0,a.b=b,h(a)}}function g(a,b){if(a.a==m){if(b==a)throw new TypeError;a.a=1,a.b=b,h(a)}}function h(b){a(function(){if(b.a!=m)for(;b.f.length;){var a=b.f.shift(),c=a[0],d=a[1],e=a[2],a=a[3];try{0==b.a?e("function"==typeof c?c.call(void 0,b.b):b.b):1==b.a&&("function"==typeof d?e(d.call(void 0,b.b)):a(b.b))}catch(f){a(f)}}})}function i(a){return new c(function(b,c){function d(c){return function(d){g[c]=d,f+=1,f==a.length&&b(g)}}var f=0,g=[];0==a.length&&b(g);for(var h=0;h<a.length;h+=1)e(a[h]).c(d(h),c)})}function j(a){return new c(function(b,c){for(var d=0;d<a.length;d+=1)e(a[d]).c(b,c)})}var k,l=[];k=function(){setTimeout(b)};var m=2;c.prototype.g=function(a){return this.c(void 0,a)},c.prototype.c=function(a,b){var d=this;return new c(function(c,e){d.f.push([a,b,c,e]),h(d)})},window.Promise||(window.Promise=c,window.Promise.resolve=e,window.Promise.reject=d,window.Promise.race=j,window.Promise.all=i,window.Promise.prototype.then=c.prototype.c,window.Promise.prototype["catch"]=c.prototype.g)}(),function(){function a(a,b){document.addEventListener?a.addEventListener("scroll",b,!1):a.attachEvent("scroll",b)}function b(a){document.body?a():document.addEventListener?document.addEventListener("DOMContentLoaded",function b(){document.removeEventListener("DOMContentLoaded",b),a()}):document.attachEvent("onreadystatechange",function c(){"interactive"!=document.readyState&&"complete"!=document.readyState||(document.detachEvent("onreadystatechange",c),a())})}function c(a){this.a=document.createElement("div"),this.a.setAttribute("aria-hidden","true"),this.a.appendChild(document.createTextNode(a)),this.b=document.createElement("span"),this.c=document.createElement("span"),this.h=document.createElement("span"),this.f=document.createElement("span"),this.g=-1,this.b.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;",this.c.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;",this.f.style.cssText="max-width:none;display:inline-block;position:absolute;height:100%;width:100%;overflow:scroll;font-size:16px;",this.h.style.cssText="display:inline-block;width:200%;height:200%;font-size:16px;max-width:none;",this.b.appendChild(this.h),this.c.appendChild(this.f),this.a.appendChild(this.b),this.a.appendChild(this.c)}function d(a,b){a.a.style.cssText="max-width:none;min-width:20px;min-height:20px;
27display:inline-block;overflow:hidden;position:absolute;width:auto;margin:0;padding:0;top:-999px;left:-999px;white-space:nowrap;font:"+b+";"}function e(a){var b=a.a.offsetWidth,c=b+100;return a.f.style.width=c+"px",a.c.scrollLeft=c,a.b.scrollLeft=a.b.scrollWidth+100,a.g!==b&&(a.g=b,!0)}function f(b,c){function d(){var a=f;e(a)&&null!==a.a.parentNode&&c(a.g)}var f=b;a(b.b,d),a(b.c,d),e(b)}function g(a,b){var c=b||{};this.family=a,this.style=c.style||"normal",this.weight=c.weight||"normal",this.stretch=c.stretch||"normal"}function h(){if(null===k){var a=document.createElement("div");try{a.style.font="condensed 100px sans-serif"}catch(b){}k=""!==a.style.font}return k}function i(a,b){return[a.style,a.weight,h()?a.stretch:"","100px",b].join(" ")}var j=null,k=null,l=!!window.FontFace;g.prototype.load=function(a,e){var g=this,h=a||"BESbswy",k=e||3e3,m=(new Date).getTime();return new Promise(function(a,e){if(l){var n=new Promise(function(a,b){function c(){(new Date).getTime()-m>=k?b():document.fonts.load(i(g,g.family),h).then(function(b){1<=b.length?a():setTimeout(c,25)},function(){b()})}c()}),o=new Promise(function(a,b){setTimeout(b,k)});Promise.race([o,n]).then(function(){a(g)},function(){e(g)})}else b(function(){function b(){var b;(b=-1!=q&&-1!=r||-1!=q&&-1!=s||-1!=r&&-1!=s)&&((b=q!=r&&q!=s&&r!=s)||(null===j&&(b=/AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent),j=!!b&&(536>parseInt(b[1],10)||536===parseInt(b[1],10)&&11>=parseInt(b[2],10))),b=j&&(q==t&&r==t&&s==t||q==u&&r==u&&s==u||q==v&&r==v&&s==v)),b=!b),b&&(null!==w.parentNode&&w.parentNode.removeChild(w),clearTimeout(x),a(g))}function l(){if((new Date).getTime()-m>=k)null!==w.parentNode&&w.parentNode.removeChild(w),e(g);else{var a=document.hidden;!0!==a&&void 0!==a||(q=n.a.offsetWidth,r=o.a.offsetWidth,s=p.a.offsetWidth,b()),x=setTimeout(l,50)}}var n=new c(h),o=new c(h),p=new c(h),q=-1,r=-1,s=-1,t=-1,u=-1,v=-1,w=document.createElement("div"),x=0;w.dir="ltr",d(n,i(g,"sans-serif")),d(o,i(g,"serif")),d(p,i(g,"monospace")),w.appendChild(n.a),w.appendChild(o.a),w.appendChild(p.a),document.body.appendChild(w),t=n.a.offsetWidth,u=o.a.offsetWidth,v=p.a.offsetWidth,l(),f(n,function(a){q=a,b()}),d(n,i(g,'"'+g.family+'",sans-serif')),f(o,function(a){r=a,b()}),d(o,i(g,'"'+g.family+'",serif')),f(p,function(a){s=a,b()}),d(p,i(g,'"'+g.family+'",monospace'))})})},window.FontFaceObserver=g,window.FontFaceObserver.prototype.check=window.FontFaceObserver.prototype.load=g.prototype.load,"undefined"!=typeof module&&(module.exports=window.FontFaceObserver)}();for(var metaTags=document.getElementsByTagName("meta"),metaArray=[],metaContent=["fontsCSS","mainCSS","pageCSS"],i=0;i<metaTags.length;i++)metaContent.indexOf(metaTags[i].getAttribute("name"))>-1&&metaArray.push(metaTags[i]);for(var i=0;i<metaArray.length;i++){var metaAttrName=metaArray[i].getAttribute("name");metaAttrName.match(/CSS/)&&("mainCSS"==metaAttrName?loadCSS(metaArray[i].getAttribute("content"),null,null,function(){null===cookie("mainCSS")&&cookie("mainCSS","true",1)}):loadCSS(metaArray[i].getAttribute("content")))}!function(){if(null===cookie("fonts-loaded")){var a=new FontFaceObserver("Roboto",{weight:400}),b=new FontFaceObserver("Roboto",{weight:500}),c=new FontFaceObserver("Roboto",{weight:700}),d=new FontFaceObserver("Roboto Slab",{weight:400});Promise.all([a.check(),b.check(),c.check(),d.check()]).then(function(){document.documentElement.className+=" fonts-loaded",cookie("fonts-loaded","true",1)},function(){document.documentElement.className+=" fonts-timeout"})}}();
28  </script>
28
29
30  <noscript>
31    <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Roboto:400,700,500|Roboto+Slab:400,700">
32    <link rel="stylesheet" href="//d281e42xwg0cwl.cloudfront.net/assets/css/screen.css?v=20170610251">
33    
34  </noscript>
35
36  <link rel="canonical" href="https://jonsuh.com/about/">
37  <meta name="robots" content="ALL">
38  <meta name="author" content="Jonathan Suh">
39  <link rel="author" href="https://plus.google.com/+JonathanSuh">
40
41  <meta name="description" content="Jonathan Suh is a designer and developer based out of Northwest Indiana/Chicago, creating digital things for the web.">
42  <meta http-equiv="content-language" content="en-us">
43  <meta property="og:locale" content="en_us">
44  <meta property="og:title" content="About">
45  <meta property="og:url" content="https://jonsuh.com/about/">
46  <meta property="og:site_name" content="Jonathan Suh">
47  <meta property="og:type" content="website">
48
49  <meta property="og:description" content="Jonathan Suh is a designer and developer based out of Northwest Indiana/Chicago, creating digital things for the web.">
50  <meta property="og:image" content="https://jonsuh.com/assets/images/about/jonathan-suh.jpg">
51  <meta property="fb:admins" content="506470591">
52
53  <meta name="twitter:card" content="summary">
54  <meta name="twitter:site" content="@jonsuh">
55  <meta name="twitter:creator" content="@jonsuh">
56  <meta name="twitter:url" content="https://jonsuh.com/about/">
57  <meta name="twitter:title" content="About">
58  <meta name="twitter:description" content="Jonathan Suh is a designer and developer based out of Northwest Indiana/Chicago, creating digital things for the web.">
59  <meta name="twitter:image:src" content="https://jonsuh.com/assets/images/about/jonathan-suh.jpg">
60
61  <link rel="apple-touch-icon" href="//jonsuh.com/icon.png">
62  <meta name="theme-color" content="#2196f3">
63  <meta name="msapplication-TileImage" content="//jonsuh.com/icon.png">
64  <meta name="msapplication-TileColor" content="#2196f3">
65</head>
66<body id="top">
67
68<header id="header" class="header" role="banner">
69  <hr class="header-border">
70  <div class="container">
71    <div class="logo">
72      <a href="/" class="logo-link" title="Jonathan Suh">
73        <div class="logo-canvas">
74          <svg viewBox="-100 -80 470 514" preserveAspectRatio="xMidYMid meet" class="logo-svg">
75            <g class="logo-svg-g-1"><polygon points="235.4,58.2 269.2,0.8 186.7,0.8"/></g><g class="logo-svg-g-2"><polygon points="186.7,0.8 235.4,58.2 188.8,82"/></g><g class="logo-svg-g-3"><polygon points="269.2,0.8 235.4,58.2 269.2,79.8"/></g><g class="logo-svg-c-1"><polygon points="232.3,145.3 235.4,58.2 188.8,82"/></g><g class="logo-svg-c-2"><polygon points="232.3,145.3 269.2,79.8 235.4,58.2"/></g><g class="logo-svg-c-3"><polygon points="188.8,82 232.3,145.3 185.5,131.1"/></g><g class="logo-svg-c-4"><polygon points="269.2,79.8 232.3,145.3 267.8,126.6"/></g><g class="logo-svg-b-1"><polygon points="185.5,131.1 188.8,196.8 232.3,145.3"/></g><g class="logo-svg-b-2"><polygon points="232.3,145.3 237.3,206.6 188.8,196.8"/></g><g class="logo-svg-b-3"><polygon points="232.3,145.3 267.8,202.7 237.3,206.6"/></g><g class="logo-svg-b-4"><polygon points="232.3,145.3 267.8,126.6 267.8,202.7"/></g><g class="logo-svg-pu-1"><polygon points="188.8,196.8 203.3,290.1 184.9,255.9"/></g><g class="logo-svg-pu-2"><polygon points="203.3,290.1 237.3,206.6 188.8,196.8"/></g><g class="logo-svg-pu-3"><polygon points="203.3,290.1 267.8,202.7 237.3,206.6"/></g><g class="logo-svg-pu-4"><polygon points="203.3,290.1 261.3,279.3 267.8,202.7"/></g><g class="logo-svg-pi-1"><polygon points="145.3,285.4 184.9,255.9 135.6,315.1"/></g><g class="logo-svg-pi-2"><polygon points="135.6,315.1 203.3,290.1 184.9,255.9"/></g><g class="logo-svg-pi-3"><polygon points="203.3,290.1 261.3,279.3 236,323.5"/></g><g class="logo-svg-pi-4"><polygon points="135.6,315.1 236,323.5 203.3,290.1"/></g><g class="logo-svg-pi-5"><polygon points="135.6,315.1 180.7,353.2 236,323.5"/></g><g class="logo-svg-r-1"><polygon points="135.6,315.1 104.4,274 145.3,285.4"/></g><g class="logo-svg-r-2"><polygon points="135.6,315.1 73.6,290.1 104.4,274"/></g><g class="logo-svg-r-3"><polygon points="73.6,290.1 64.2,335.2 102.1,351.8"/></g><g class="logo-svg-r-4"><polygon points="73.6,290.1 102.1,351.8 135.6,315.1"/></g><g class="logo-svg-r-5">
75<polygon points="102.1,351.8 180.7,353.2 135.6,315.1"/></g><g class="logo-svg-o-1"><polygon points="46.1,273 77.8,250.5 104.4,274"/></g><g class="logo-svg-o-2"><polygon points="73.6,290.1 46.1,273 104.4,274"/></g><g class="logo-svg-o-3"><polygon points="46.1,273 64.2,335.2 73.6,290.1"/></g><g class="logo-svg-o-4"><polygon points="46.1,273 8.5,275.2 64.2,335.2"/></g><g class="logo-svg-y-1"><polygon points="46.1,273 0.8,251.5 8.5,275.2"/></g><g class="logo-svg-y-2"><polygon points="0.8,251.5 69.5,230 46.1,273"/></g><g class="logo-svg-y-3"><polygon points="46.1,273 69.5,230 77.8,250.5"/></g>
76          </svg>
77        </div>
78      </a>
79    </div>
80    <nav id="nav" class="nav" role="navigation">
81      <a href="/about/" class="nav-link is-current"><span class="nav-label">About</span></a><a href="/work/" class="nav-link"><span class="nav-label">Work</span></a><a href="/blog/" class="nav-link"><span class="nav-label">Blog</span></a><a href="/contact/" class="nav-link"><span class="nav-label">Contact</span></a>
82    </nav>
83  </div>
84</header>
85
86<div class="hero hero--about"></div>
87<div class="section">
88  <div class="container">
89    <div class="main">
90      <section class="about-intro">
91        <h1>Hey! I’m Jonathan Suh.</h1>
92        <p>I’m a multidisciplinary developer &amp; designer based out of the <span class="no-break">Northwest Indiana</span>/Chicago area. I primarily create digital things for the web. By day I’m building stuff with the awesome folks at <a href="https://planning.center" class="no-break" target="_blank">Planning Center</a>. I’ve had the privilege of working with clients like Allstate, Brian Hoff Design, Bottlerocket Creative, Leo Burnett, and OLSON.</p>
93        <p>I’m also a husband to my beautiful wife, father to my 2 wonderful children, and a Christian. I’m a New York sports fan, inhabitant of Apple’s ecosystem, perfectionist (borderline obsessive compulsive), and a lover of Banana Republic and Nike. By night I’m either checkin’ out new restaurants or watching <em>Mythbusters</em> with my wife, building LEGO cars and airplanes or singing the <em>Teenage Mutant Ninja Turtles</em> theme song with my son, playing peek-a-boo with my daughter, or working on side projects or building stuff with friends.</p>
94        <hr class="section-break-half">
95        <div class="about-mosaic">
96          <div class="about-mosaic-tile about-mosaic-tile--jb">
97            <img src="/assets/images/1x1.png" class="about-mosaic-tile-proportion" alt="">
98          </div>
99          <div class="about-mosaic-tile about-mosaic-tile--js">
100            <img src="/assets/images/3x2.png" class="about-mosaic-tile-proportion" alt="">
101          </div>
102          <div class="about-mosaic-tile about-mosaic-tile--bs">
103            <img src="/assets/images/3x2.png" class="about-mosaic-tile-proportion" alt="">
104          </div>
105          <div class="about-mosaic-tile  about-mosaic-tile--sk">
106            <img src="/assets/images/2x3.png" class="about-mosaic-tile-proportion" alt="">
107          </div>
108        </div>
109        <hr class="section-break-half">
110        <p>My website is a personal reflection of who I am, the people I love, the things I’m passionate about, and what I do&mdash;I realize one’s online representation is often skewed, fabricated, and one-sided, but I put forth my best effort to portray myself as who I really am away from the screen.</p>
111        <hr class="section-break-half">
112        <div id="find-me" class="about-find-me">
113          <h2>Find me</h2>
114          <p>I limit myself to 140 characters as <a href="https://twitter.com/jonsuh" class="about-social-link about-social-link--twitter" target="_blank">@jonsuh on Twitter</a>, share shapshots of my life seen through my iPhone on <a href="https://instagram.com/jonsuh" class="about-social-link about-social-link--instagram" target="_blank">Instagram</a> and my XE-1 on <a href="https://flickr.com/jonsuh" class="about-social-link about-social-link--flickr" target="_blank">Flickr</a>, give and contribute to the open-source community on <a href="https://github.com/jonsuh" class="about-social-link about-social-link--github" target="_blank">Github</a> and <a href="https://codepen.io/jonsuh" class="about-social-link about-social-link--codepen" target="_blank">CodePen</a>, answer or ask questions on <a href="http://stackoverflow.com/users/879081/jonsuh" class="about-social-link about-social-link--stackoverflow" target="_blank">Stack Overflow</a>, share my knowledge and thoughts on <a href="/blog/" class="no-break">my blog</a>, and occasionally take shots on <a href="https://dribbble.com/jonsuh" class="about-social-link about-social-link--dribbble" target="_blank">Dribbble</a>.</p>
115        </div>
116        <hr class="section-break-half">
117        <div id="colophon" class="about-colophon">
118          <h2>Colophon</h2>
119          <p>This site is created using HTML, CSS, and JavaScript; carefully hand-coded in <a href="http://sublimetext.com" target="_blank">Sublime Text</a>; compiled by <a href="http://sass-lang.com" target="_blank">Sass</a>, <a href="http://jekyllrb.com" target="_blank">Jekyll</a> and <a href="http://gruntjs.com" target="_blank">Grunt</a>; hosted on a <a href="https://www.digitalocean.com/?refcode=b7bd38a51314" target="_blank">DigitalOcean</a> instance running <a href="http://nginx.org" target="_blank">Nginx</a>; and deployed in Terminal with the help of a custom <a href="http://capistranorb.com" target="_blank">Capistrano</a> recipe. The codebase is version-controlled by <a href="http://git-scm.com" target="_blank">Git</a> and managed on a self-hosted <a href="http://gitlab.org" target="_blank">Gitlab</a> and private <a href="http://beanstalkapp.com" target="_blank">Beanstalk</a>.</p>
120          <p>The type is set in beautiful <a href="https://www.google.com/fonts/specimen/Roboto">Roboto</a> served by <a href="https://www.google.com/fonts">Google Fonts</a> and <a href="https://typekit.com/fonts/freight-text-pro" target="_blank">Freight Text Pro</a> by <a href="https://typekit.com" target="_blank">Typekit</a>. The photographs were taken with a <a href="https://amazon.com/Fujifilm-X-E1-Compact-Digital-2-8-Inch/dp/B0092MD5UY/?tag=jonsuhcom-20" class="no-break" target="_blank">Fujifilm X-E1</a> coupled with a <a href="https://amazon.com/Fujifilm-XF-35mm-F1-4-Lens/dp/B006UL00R6/?tag=jonsuhcom-20" class="no-break" target="_blank">Fujifilm XF35mm</a>. I recently upgraded to the <a href="https://amazon.com/dp/B01A8DUPJO/?tag=jonsuhcom-20" class="no-break" target="_blank">Fujifilm X-E2S</a>. Check out my <a href="/uses/">/uses</a> page for more on the <a href="/uses/#hardware-and-desk">hardware</a>, <a href="/uses/#software">software</a> or <a href="/uses/#personal-gear-and-stuff">gear</a> I use.</p>
121          <p>This site is designed to be future-friendly, so please forgive me if it doesn’t play or work well on older browsers. As time goes on, I may roll out patches to improve support but no guarantees. It’s also a playground for me so I’m constantly trying new stuff, making changes, and probably breaking things.</p>
122        </div>
123      </section>
124    </div>
125    <aside class="sidebar">
126      <div class="sidebar-section">
127  
127<script async type="text/javascript" src="//cdn.carbonads.com/carbon.js?serve=CKYIK27Y&placement=jonsuh" id="_carbonads_js"></script>
127
128</div>
129
130      <hr class="section-break-half">
131
132      <div class="sidebar-section">
133  <h4 class="sidebar-title">Say hey!</h4>
134  <ul class="sidebar-list">
135    <li class="sidebar-list-item">
136      <a href="/cdn-cgi/l/email-protection#2503061415111e03061415141e030614151d1e030614151d1e03061414141e030613111e03061415131e03061414141e03061414151e03061414101e03061414121e03061415111e030611131e03061c1c1e03061414141e030614151c1e" class="sidebar-list-link">Drop me an email</a>
137    </li>
138    <li class="sidebar-list-item">
139      <a href="https://twitter.com/jonsuh" class="sidebar-list-link" target="_blank">Start a conversation @jonsuh</a>
140    </li>
141  </ul>
142</div>
143
144      <hr class="section-break-half">
145
146      <div class="sidebar-section">
147  <h4 class="sidebar-title">Selected posts</h4>
148  <ul class="sidebar-list">
149    <li class="sidebar-list-item"> <a href="/blog/animated-toggle-react-native/" class="sidebar-list-link">Animated Toggle in React Native</a> </li> <li class="sidebar-list-item"> <a href="/blog/need-for-speed-2/" class="sidebar-list-link">Need for Speed 2&#58; Improving Front-End Performance</a> </li> <li class="sidebar-list-item"> <a href="/blog/font-loading-with-font-events/" class="sidebar-list-link">Faster Font Loading with Font Events</a> </li> <li class="sidebar-list-item"> <a href="/blog/git-command-line-shortcuts/" class="sidebar-list-link">Git Command-Line Shortcuts</a> </li>
150  </ul>
151</div>
152
153      <hr class="section-break-half">
154      <img src="/assets/images/2x3.png" class="about-sidebar-break" alt="">
155
156      <div class="sidebar-section">
157  <h4 class="sidebar-title">Selected people</h4>
158  <p>Handful of trusted professionals I respect and admire&mdash;Thankful and privileged that I can call some of them friends.</p>
159  <ul class="sidebar-list sidebar-list--about-people">
160    <li class="sidebar-list-item">
161      <a href="http://avclark.com" class="sidebar-list-link" target="_blank">Adam Clark</a>
162    </li>
163    <li class="sidebar-list-item">
164      <a href="http://allison.house" class="sidebar-list-link" target="_blank">Allison House</a>
165    </li>
166    <li class="sidebar-list-item">
167      <a href="http://brianhoffdesign.com" class="sidebar-list-link" target="_blank">Brian Hoff</a>
168    </li>
169    <li class="sidebar-list-item">
170      <a href="http://danielmall.com" class="sidebar-list-link" target="_blank">Daniel Mall</a>
171    </li>
172    <li class="sidebar-list-item">
173      <a href="http://focuslabllc.com/our-story/profile/erik-reagan" class="sidebar-list-link" target="_blank">Erik Reagan</a>
174    </li>
175    <li class="sidebar-list-item">
176      <a href="http://burciaga.co" class="sidebar-list-link" target="_blank">Ismael Burciaga</a>
177    </li>
178    <li class="sidebar-list-item">
179      <a href="http://mattdsmith.com" class="sidebar-list-link" target="_blank">Matt D. Smith</a>
180    </li>
181  </ul>
182</div>
183
184      <hr class="section-break-half">
185
186      <div class="sidebar-section">
187  <h4 class="sidebar-title">Subscribe</h4>
188  <div class="sidebar-subscribe">
189    <p>Stay up-to-date with all the blog posts via <a href="/blog/feed.xml" class="sidebar-subscribe-link sidebar-subscribe-link--rss" target="_blank" rel="alternate">RSS <svg class="svg-icon svg-icon-rss">
190  <use xlink:href="/assets/images/icons.svg#svg-icon-rss"></use>
191</svg></a> or the <a href="/blog/archives/">Archives</a>.</p>
192    <p>You can also subscribe to my newsletter to receive occasional emails from me.</p>
193    <div id="mc_embed_signup" class="mce-form">
194      <form action="//jonsuh.us6.list-manage.com/subscribe/post?u=009c6170771cca839567b57d7&amp;id=c732518d7d" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate form form--sidebar-newsletter js-form-newsletter" target="_blank" novalidate>
195        <div class="form-field-group form-field-group--email mc-field-group">
196          <input type="email" id="mce-EMAIL" name="EMAIL" value="" placeholder="Your email address" class="required email">
197        </div>
198        <div id="mce-responses" class="mce-responses">
199          <div id="mce-error-response" class="response"></div>
200          <div id="mce-success-response" class="response"></div>
201        </div>
202        <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups--><div class="mce-security">
203          <input type="text" name="b_009c6170771cca839567b57d7_c732518d7d" tabindex="-1" value="">
204        </div>
205        <button type="submit" name="subscribe" id="mc-embedded-subscribe" class="form-submit">Subscribe</button>
206      </form>
207    </div>
208  </div>
209</div>
210    </aside>
211  </div>
212</div>
213<div class="section section--about-location">
214  <div class="about-location">
215    <div class="about-location-image-container">
216      <svg viewBox="0 0 480 496" preserveAspectRatio="xMidYMid meet" class="about-location-image">
217        <path d="M279.6 238.1c0.9 6.1 6.6 29 5.1 33.6c-0.6 1.9-5.9 2.6-6.1 5.4c-0.2 2.6 5.1 5.7 4.8 8.2 c-0.4 3-7.2 4-4.6 8.1c2.8 4.2 9.7 8.4 11.4 13.1c0.3 0.8 0 1.7 0 2.5c0 0.8 0 1.6 0 2.5c0 0.8-0.2 1.7 0 2.5 c0.5 1.9 2.5 3.6 3.2 5.5c4 10.6-3.2 10.1-4.8 14.1l0.7 4.4c-0.4 1.5-2.7 2-3 3.4c-0.3 1.1 2.6 4.8 2 5.6c-1.2 1.6-5.1 2.3-6.2 5.4 c-0.5 1.6 0.7 4.3-0.3 6c-1.8 3.2-3.3 2.4-4 7.1c-0.1 0.8 0.3 2-0.4 2.5c-0.5 0.4-0.9-0.8-1.4-1.3c-0.5-0.4-0.8-1.4-1.4-1.3 c-1 0.2 0.2 2.5-0.7 3.1c-2 1.2-1.8-3.7-3.5 0.5c-2.6 6.3-0.8 5.7 2.7 10c0.3 0.4 0.4 1 0.2 1.4c-0.8 1.7-4 2.3-4.7 4.1 c-2 4.8 2.4-1.2 1.5 3.4c-0.3 1.4-3.3 1.1-3.6 2.5c0 0.2 3.1 12.9 3.1 12.9l-3.7 1.5c-1.5 2.5 5 7.2 5 7.2c-0.5-3.7 4.1 1.1 6 0.6 c7.4-2.1-4.6-14.3 1.5-13.6c3.1 0.4 5.2 5.4 9 4.6c2.1-0.5 4.4-4 6.5-4c3.5 0-1.8 9 4.4 5.3c5.4-3.3 0.6-5-0.2-8.9 c-0.1-0.6-0.2-2.1 0.4-1.9c4.6 1.1-1.3 0.4 3.3 2.8c2.6 1.4 8.2-3.5 11.4-3.3c6.8 0.5 14.7 4.7 19.3 8.8c0.7 0.6 1.7 1.5 2.6 1.1 c5.1-2.8 2.1-9.3 5.1-12.7c1.3-1.5 5.1-1.5 6.7-2.6c1.8-1.2 3.1-4.5 5.1-5.3c2.7-1.1 5.2 5.6 7 6.3c1.3 0.5 6-2.1 6.9-1.2 c0.6 0.5-0.1 1.5-0.2 2.3c-0.1 0.8-0.8 1.8-0.2 2.3c0.6 0.5 1.6-0.1 2.3-0.4c3.3-1.3 1.1-4.3 2.5-6.4l4.4-2.2c1.1-2-2.4-6.5-1.5-8.7 c0.6-1.5 4.9-2.3 5.3-3.9l-2.2-3.6c0.2-0.4 6.9-0.5 8.2-3.4c0.6-1.5-6.7-4.8-3.3-5.4c4.3-0.7 6.4 7.1 7.5 9.1 c1 1.9 17.4 6.8 18.4 6.5l1.3-2.5c0 0 4.6-0.8 4.6-0.8c4.4-2.8-2.2-20.6 3.7-26c2.4-2.2 5.8 2.1 10.1-3.3c3.1-4 0.8-10.4 3.4-14 c1.2-1.7 10.6-6.6 11.3-9.5c0.9-3.8-7.8-14-4.3-17.1c8.5-7.5 16.4 1.4 17.9 1.2c3.8-0.5 8.7-9.2 12.1-11.2c2-1.2 6.6-3 8.8-3.2 l3.7 0.8c0.7-1.4-1.9-2.6-2-4.1c0 0 1.4-4.8 1.4-4.8c-0.6-3-4.6 0.2-6-0.4c-1.2-0.5 0.5-3 0.6-3.1c4.4-8.6-8.9-5.2-0.2-13.4 c-14-75.3-28.1-150.7-42.1-226c-0.1-0.6-0.8-7.1-1.4-7.3c-3.5-1.2-25.5 5.1-30.5 6.1c-33.9 6.7-68 13-102 19l-0.1 0 c-8.3 8-19.3 14.9-27.7 16.2c-2.4 0.4-11 0.4-9.8-3.2c0-0.1 0.1-0.6-0.2-0.7c-2.6-0.4-4.7-1.2-6.5-2.3l-0.1 0.2 C262.1 122.5 270.8 180.3 279.6 238.1z" class="about-location-image-path"/>
218        <path d="M288.6 319.4c-0.7-1.9-2.7-3.5-3.2-5.5c-0.2-0.8 0-1.7 0-2.5c0-0.8 0-1.7 0-2.5c0-0.8 0.3-1.7 0-2.5 c-1.7-4.7-8.7-8.9-11.4-13.1c-2.7-4.1 4.2-5.2 4.6-8.1c0.3-2.5-5-5.6-4.8-8.2c0.2-2.8 5.5-3.5 6.1-5.4c1.5-4.6-4.1-27.4-5.1-33.6 c-8.7-57.8-17.4-115.6-26.2-173.4l0-0.2c-9.5-5.7-9-20-14.8-28.9c-1.1-1.6-3.7-1.6-5.1-2.8c-3.4-2.7-7.5-11.2-8.3-15.4 c-1-5.2 0.1-10-0.4-15.4c-0.1-0.5-0.2-1.1-0.2-1.6h0C158.6 8.9 97.2 16.7 35.7 23.9c-2.1 3.6 9.5 8.5 12.5 10.4 c3.9 2.4 2.6 6.6 5.3 9.8c7.2 8.3 18.7 6.2 20.1 19.9c0.4 3.8-0.8 13.2-2.4 16.6c-1.2 2.6-4.7 4.1-5.9 6.7c-2 4.5 0.4 11-1.5 15.1 c-2.2 4.5-9.9 5.4-13.6 7.6c-2.7 1.6-4.2 5.4-7 6.8c-3.4 1.7-21.5 2.6-22.9 5.6c-10 23.1 12.7 23.6 10 38.9 c-0.8 4.5-6.3 8.3-7.6 12.7c-1.4 4.8-1.2 10.1-2.8 15.1c-0.6 1.8-14.9 6.7-17 10.7c-1 1.8 11.4 15.1 0.6 16.2c0 0-1.7 0.9-2.1 1.7 c-2.2 4.1-1.4 10.5-1.3 14.9c0.2 6 0.8 11.9 3.6 17.4c0.9 1.9 3.4 3.5 4 5.5c0.6 1.8-1.1 4.2-0.5 6c0.6 2 3.1 3.6 4 5.5 c1 2.1 0.6 5.3 1.9 7.2c4.4 6.4 15.2 9.8 21.1 14c2.2 1.6 3.2 5 5.3 6.8c6.5 5.3 17.8 6.9 21.4 15.3c1.3 3.1 0.8 7.1 2.3 10.1 c0.5 1.1 2.2 1.5 2.6 2.7c1.4 4.6-1 15.2 7.9 18.3c5.2 1.8 7.9-6.6 11.8-8.8c2-1.1 20.3 6.9 22.1 9.2c2.5 3.1-3.2 7.9-3.4 10.8 c-0.1 2.3 2.2 4.8 2.1 7.2c-0.6 10.7-16.5 25.4-8.5 36.5c2.4 3.3 7.3 8.3 10.7 10.5c1.7 1.1 4.6 0.9 6.2 2.2c1.3 1 1.6 3 2.9 4.1 c2.6 2.3 10.8 2.3 12.4 4.4c1.5 1.9-2.2 3.7 0.7 5.8c4 2.9 3.7-2.5 6.8-2.3c1.3 0 1.6 2 2.7 2.6c1.8 1.1 4.6 0.9 6.2 2.2 c2.5 2 3.2 6.3 5.8 8.1c2.4 1.7 8 1 9.9 3.2c2 2.2 0.3 8.8 1.5 11.6c1.7 4 7.2 6.6 8.6 10.7c2.2 6.3-5.1 7.1-4.2 13.9l3.7 1l0.6 4.4 c1.4 3.1 5.6 4.9 7.1 7.9c0.6 1.3-0.3 3.2 0.6 4.4c0.4 0.6 7 3.6 7.7 3.4c4.1-1.1-5.8-5-2.2-7.1c3.4-1.9 5.4 6.8 8.3 7.8 c2.8 0.9 3.6-1.8 6.1 0.6c0 0-0.9-0.9-1.4-1.3c-2.6-2.4-2.9-3.4-3.3-6.9c-0.1-0.8 7.8-13.9 8.8-14.5c10.3-6 28.2 9.4 39.6 7.8 c0.7-0.1 0.6-1.3 0.9-2c6.5-14.1-11.7-10.8-4.9-25.6c1.6-3.5 5.3-1 8-2.7c0 0 1.9-3.2 1.9-3.2c4-3.4 10.3-3 14.8-5.1 c0.8-0.4 2-0.9 2.1-1.8c1.1-6.3-7.8-7.1-7.8-12.2c0.1-5 5.5-11.2 7.2-15.9c0 0-6.5-4.6-5-7.2l3.7-1.5c0 0-3.1-12.7-3.1-12.9 c0.2-1.4 3.3-1.1 3.6-2.5c0.9-4.5-3.5 1.4-1.5-3.4c0.7-1.7 3.9-2.4 4.7-4.1c0.2-0.4 0.1-1.1-0.2-1.4c-3.5-4.3-5.3-3.7-2.7-10 c1.7-4.2 1.4 0.7 3.5-0.5c0.9-0.5-0.3-2.9 0.7-3.1c0.6-0.1 1 0.8 1.4 1.3c0.5 0.4 0.9 1.6 1.4 1.3c0.7-0.5 0.3-1.7 0.4-2.5 c0.7-4.7 2.2-3.9 4-7.1c1-1.6-0.3-4.4 0.3-6c1.1-3.1 5.1-3.8 6.2-5.4c0.6-0.8-2.3-4.6-2-5.6c0.3-1.5 2.6-2 3-3.4l-0.7-4.4 C285.4 329.5 292.6 330 288.6 319.4z" class="about-location-image-path"/>
219      </svg>
220      <div class="about-location-beacon"></div>
221      <div class="about-location-pin"></div>
222    </div>
223  </div>
224</div>
225
226<footer id="footer" class="footer" role="contentinfo">
227  <div class="footer-top">
228    <a href="#top" class="footer-top-link js-top" aria-label="Back to the Top">
229      <svg viewBox="0 0 12 7" preserveAspectRatio="xMidYMid meet" class="svg-icon svg-icon-arrow-top">
230  <path class="svg-icon-path" d="M6,0L0,6L0.9,7l5.1-5l5.1,5L12,6L6,0z"/>
231</svg>
232      <span class="footer-top-link-label">Top</span>
233    </a>
234  </div>
235  <div class="container">
236    <div class="footer-column footer-column--left">
237      <div class="footer-logo">
238        <a href="/" class="footer-logo-link" title="Jonathan Suh" aria-label="Jonathan Suh">
239          <div class="footer-logo-canvas">
240            <svg viewBox="-100 -80 470 514" preserveAspectRatio="xMidYMid meet" class="footer-logo-svg">
241              <polygon points="235.4,58.2 269.2,0.8 186.7,0.8"/><polygon points="186.7,0.8 235.4,58.2 188.8,82"/><polygon points="269.2,0.8 235.4,58.2 269.2,79.8"/><polygon points="232.3,145.3 235.4,58.2 188.8,82"/><polygon points="232.3,145.3 269.2,79.8 235.4,58.2"/><polygon points="188.8,82 232.3,145.3 185.5,131.1"/><polygon points="269.2,79.8 232.3,145.3 267.8,126.6"/><polygon points="185.5,131.1 188.8,196.8 232.3,145.3"/><polygon points="232.3,145.3 237.3,206.6 188.8,196.8"/><polygon points="232.3,145.3 267.8,202.7 237.3,206.6"/><polygon points="232.3,145.3 267.8,126.6 267.8,202.7"/><polygon points="188.8,196.8 203.3,290.1 184.9,255.9"/><polygon points="203.3,290.1 237.3,206.6 188.8,196.8"/><polygon points="203.3,290.1 267.8,202.7 237.3,206.6"/><polygon points="203.3,290.1 261.3,279.3 267.8,202.7"/><polygon points="145.3,285.4 184.9,255.9 135.6,315.1"/><polygon points="135.6,315.1 203.3,290.1 184.9,255.9"/><polygon points="203.3,290.1 261.3,279.3 236,323.5"/><polygon points="135.6,315.1 236,323.5 203.3,290.1"/><polygon points="135.6,315.1 180.7,353.2 236,323.5"/><polygon points="135.6,315.1 104.4,274 145.3,285.4"/><polygon points="135.6,315.1 73.6,290.1 104.4,274"/><polygon points="73.6,290.1 64.2,335.2 102.1,351.8"/><polygon points="73.6,290.1 102.1,351.8 135.6,315.1"/><polygon points="102.1,351.8 180.7,353.2 135.6,315.1"/><polygon points="46.1,273 77.8,250.5 104.4,274"/><polygon points="73.6,290.1 46.1,273 104.4,274"/><polygon points="46.1,273 64.2,335.2 73.6,290.1"/><polygon points="46.1,273 8.5,275.2 64.2,335.2"/><polygon points="46.1,273 0.8,251.5 8.5,275.2"/><polygon points="0.8,251.5 69.5,230 46.1,273"/><polygon points="46.1,273 69.5,230 77.8,250.5"/>
242            </svg>
243          </div>
244        </a>
245      </div>
246      <nav class="footer-nav" role="navigation">
247        <a href="/" class="footer-link-home">Jonathan Suh</a>
248        <a href="https://twitter.com/jonsuh" class="footer-link-twitter" title="Follow Jonathan on Twitter" aria-label="Follow Jonathan on Twitter" target="_blank">
249          <svg class="svg-icon svg-icon-twitter">
250  <use xlink:href="/assets/images/icons.svg#svg-icon-twitter"></use>
251</svg>
252        </a>
253        <a href="/about/" class="footer-link footer-link--first" aria-label="About">About</a>
254        <a href="/work/" class="footer-link" aria-label="Work">Work</a>
255        <a href="/blog/" class="footer-link footer-link--blog" aria-label="Blog">Blog</a>
256        <a href="/blog/feed.xml" class="footer-link footer-link--rss" title="RSS feed" target="_blank" rel="alternate" title="RSS" aria-label="RSS"><svg class="svg-icon svg-icon-rss">
257  <use xlink:href="/assets/images/icons.svg#svg-icon-rss"></use>
258</svg></a>
259        <a href="/contact/" class="footer-link" aria-label="Contact">Contact</a>
260      </nav>
261    </div>
262    <div class="footer-column footer-column--right">
263      <p class="footer-copyright">2018 &copy; <a href="/contact/">Jonathan Suh</a>. All rights reserved.</p>
264      <p class="footer-made-with">Made with <svg class="svg-icon svg-icon-heart-outline">
265  <use xlink:href="/assets/images/icons.svg#svg-icon-heart-outline"></use>
266</svg> in Northwest Indiana/Chicago.</p>
267    </div>
268  </div>
269</footer>
270<!--#if expr="$HTTP_COOKIE=/mainJS\=true/" -->
vendor: 111 bytes, lines 270-271
270
271  <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
271<script src="//d281e42xwg0cwl.cloudfront.net/assets/js/jonsuh.js?v=201505262208"></script>
271
272<!--#else -->
273  
273<script>loadJS("//d281e42xwg0cwl.cloudfront.net/assets/js/jonsuh.js?v=201505262208");</script>
273
274<!--#endif -->
275<script>
276  function aload(a){"use strict";a=a||window.document.querySelectorAll("[data-aload]"),void 0===a.length&&(a=[a]);var b,c=0,d=a.length;for(c;d>c;c+=1)b=a[c],b["LINK"!==b.tagName?"src":"href"]=b.getAttribute("data-aload"),b.removeAttribute("data-aload");return a}!function(a,b,c,d,e,f,g){a.GoogleAnalyticsObject=e,a[e]=a[e]||function(){(a[e].q=a[e].q||[]).push(arguments)},a[e].l=1*new Date,f=b.createElement(c),g=b.getElementsByTagName(c)[0],f.async=1,f.src=d,g.parentNode.insertBefore(f,g)}(window,document,"script","//www.google-analytics.com/analytics.js","ga"),ga("create","UA-2018785-1","auto"),ga("send","pageview",{transport:"beacon"}),aload();
277</script>
277
278
279<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"a66fc81222434b7dbad4747540b58978","r":1,"spa":2}' crossorigin="anonymous"></script>
279
280</body>
281</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.