1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{3525:function(n,e,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return s(6934)}])},6934:function(n,e,s){"use strict";s.r(e),s.d(e,{default:function(){return h}});var i=s(2111),r=s(5392);function t(n){let e={a:"a",h1:"h1",hr:"hr",li:"li",p:"p",span:"span",ul:"ul",...(0,r.a)(),...n.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(e.h1,{id:"hello-im-john-otander",children:[(0,i.jsx)(e.a,{"aria-hidden":"true",tabIndex:"-1",href:"#hello-im-john-otander",children:(0,i.jsx)(e.span,{className:"icon icon-link"})}),"Hello, I'm John Otander"]}),"\n",(0,i.jsxs)(e.p,{children:["You can usually find me on the internet as\n",(0,i.jsx)(e.a,{href:"https://github.com/johno",children:"johno"})," or ",(0,i.jsx)(e.a,{href:"https://twitter.com/4lpine",children:"4lpine"}),"."]}),"\n",(0,i.jsx)(e.p,{children:"I'm a web developer and designer that builds things. Lots of things.\nI focus on improving design/developer tooling and making it more\napproachable to build websites and applications."}),"\n",(0,i.jsxs)(e.p,{children:["I've built a few popular open source projects including\n",(0,i.jsx)(e.a,{href:"https://mdxjs.com",children:"MDX"}),", ",(0,i.jsx)(e.a,{href:"https://blocks-ui.com",children:"Blocks"}),",\n",(0,i.jsx)(e.a,{href:"https://tachyons.io",children:"Tachyons"}),", and ",(0,i.jsx)(e.a,{href:"https://cssstats.com",children:"CSS Stats"}),"."]}),"\n",(0,i.jsxs)(e.p,{children:["I'm part of the ",(0,i.jsx)(e.a,{href:"https://unifiedjs.com",children:"unified collective"})," and\ncreating a course, ",(0,i.jsx)(e.a,{href:"https://compilersforhumans.com",children:"Compilers for Humans"}),"\nthat seeks to show you that compilers aren't magic."]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"/writing",children:"Writing"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"/newsletter",children:"Newsletter"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://github.com/johno",children:"GitHub"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"https://twitter.com/4lpine",children:"Twitter"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"/videos",children:"Videos"})}),"\n",(0,i.jsx)(e.li,{children:(0,i.jsx)(e.a,{href:"/resume",children:"Resume"})}),"\n"]}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)(e.hr,{}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)(e.p,{children:"âï¸ I'm not currently looking for new opportunities."})]})}function h(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},{wrapper:e}={...(0,r.a)(),...n.components};return e?(0,i.jsx)(e,{...n,children:(0,i.jsx)(t,{...n})}):t(n)}}},function(n){n.O(0,[774,888,179],function(){return n(n.s=3525)}),_N_E=n.O()}]);
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.