diff options
Diffstat (limited to 'static')
-rw-r--r-- | static/css/style.css | 75 | ||||
-rw-r--r-- | static/cv/index.html | 348 | ||||
-rw-r--r-- | static/keybase.txt | 55 | ||||
-rw-r--r-- | static/robots.txt | 3 |
4 files changed, 348 insertions, 133 deletions
diff --git a/static/css/style.css b/static/css/style.css deleted file mode 100644 index e605297..0000000 --- a/static/css/style.css +++ /dev/null @@ -1,75 +0,0 @@ -body { - font-family: sans-serif; - line-height: 1.5em; - margin: auto; - max-width: 800px; - padding: 1em; -} - -/* header and footer areas */ -nav > ul { padding: 0; } -nav > ul > li { display: inline-block; } -article > header, nav > ul a { - background: #eee; - border-radius: 5px; - padding: 5px; - text-decoration: none; -} -.terms { font-size: .9em; } -nav > ul, article > header, footer { text-align: center; } -.title { font-size: 1.1em; } -footer a { text-decoration: none; } -hr { - border-style: dashed; - color: #ddd; -} -body > nav { - border-bottom: 1px solid #ddd; -} -body > footer { - border-top: 1px solid #ddd; -} - -/* code */ -pre { - border: 1px solid #ddd; - overflow-x: auto; - padding: 1em; -} -code { background: #f9f9f9; } -pre code { background: none; } - -/* misc elements */ -img, iframe, video { max-width: 100%; } -main { hyphens: auto; } -blockquote { - background: #f9f9f9; - border-left: 5px solid #ccc; - padding: 3px 1em 3px; -} - -table thead th { border-bottom: 1px solid #ddd; } -th, td { padding: 5px; } -thead, tfoot, tr:nth-child(even) { background: #eee; } -.hl { background-color: #ffc; } - -@media (prefers-color-scheme: dark) { - body { - background-color: #111; - color: white; - } - article > header, nav > ul a { - background: #222; - } - a { - color: #C4D4EE; - } - a:visited { - color: #CEDEE0; - } - code { background-color: #444; } - thead, tfoot, tr:nth-child(even) { background: #222; } - .hl { - background-color: #555; - } -} diff --git a/static/cv/index.html b/static/cv/index.html new file mode 100644 index 0000000..4fef4cc --- /dev/null +++ b/static/cv/index.html @@ -0,0 +1,348 @@ +<!doctype html> +<html> + <head> + <title>Alan Pearce's Curriculum Vitae</title> + <style> + body { + font-family: Verdana, sans-serif; + font-size: small; + margin: auto; + padding: 1em; + max-width: 50rem; + text-align: left; + background-color: #fff; + word-wrap: break-word; + overflow-wrap: break-word; + line-height: 1.5; + color: #444; + height: 210mm; + width: 297mm; + } + + @page { + size: A4 portrait; + } + + h1, + h2, + h3, + h4, + h5, + h6, + strong, + b { + color: #222; + margin: unset; + } + + a { + color: #3273dc; + } + + .title { + color: #222; + text-decoration: none; + border: 0; + } + + time { + font-style: italic; + } + + nav a { + margin-right: 1ex; + } + + .tags { + padding: unset; + font-size: smaller; + } + + .tags > li { + list-style: none; + display: inline-block; + padding-right: 1ex; + } + + textarea { + width: 100%; + font-size: 1rem; + } + + input { + font-size: 1rem; + } + + main, + article { + line-height: 1.6; + } + + blockquote { + border-left: 1px solid #999; + color: #222; + padding-left: 20px; + font-style: italic; + } + + footer { + padding: 25px; + text-align: center; + } + + main { + column-count: 2; + } + main > section { + padding-right: 1rem; + padding: 1rem 0; + border-bottom: 2px solid #999; + break-inside: avoid; + } + section > header { + display: flex; + justify-content: space-between; + align-items: center; + } + .timeperiod { + font-style: italic; + font-size: small; + } + + ul { + padding-left: 0; + margin: unset; + } + ul > li { + display: inline-block; + font-size: smaller; + } + + .links > li { + display: block; + } + + @media (prefers-color-scheme: dark) { + body { + background-color: #333; + color: #ddd; + } + + h1, + h2, + h3, + h4, + h5, + h6, + strong, + b, + .title { + color: #eee; + } + + a { + color: #8cc2dd; + } + blockquote { + color: #ccc; + } + section { + border-bottom-color: #ccc; + } + } + </style> + </head> + <body> + <header> + <h1>Alan Pearce</h1> + <h2>Backend & Infrastructure Developer</h2> + <h3>Berlin, Germany</h3> + </header> + <hr /> + <main> + <section> + <ul class="links"> + <li> + Email: <a href="mailto:alan@alanpearce.eu">alan@alanpearce.eu</a> + </li> + <li>Website: <a href="https://alanpearce.eu">alanpearce.eu</a></li> + <li> + GitHub: <a href="https://github.com/alanpearce">@alanpearce</a> + </li> + <li> + Personal Projects: + <a href="https://git.alanpearce.eu">git.alanpearce.eu</a> + </li> + </ul> + </section> + <section> + <h4>Summary</h4> + <p> + I care about keeping code and UIs consistent and simple. I also have a + strong drive to learn and really enjoy being able to explore new + methodologies and languages. + </p> + </section> + <section> + <h4>Experience</h4> + <header> + <h5>Senior Fullstack Developer at SatoshiPay</h5> + <span class="timeperiod">2017—2023</span> + </header> + <ul> + <li>Helm</li> + <li>Kubernetes</li> + <li>GitLab</li> + <li>TypeScript</li> + <li>PostgreSQL</li> + </ul> + <p> + Principal worker for migration from Docker Cloud to Kubernetes, + alongside work on microservices interfacing with distributed ledger + APIs. Implemented and maintained GitLab CI/CD pipelines including + merge request previews and end-to-end testing. Migrated projects to + product-based monorepos. + </p> + </section> + <section> + <header> + <h5>Senior Fullstack Developer at SpotCap</h5> + <span class="timeperiod">2015–2017</span> + </header> + <ul> + <li>NodeJS</li> + <li>MySQL</li> + <li>Webpack</li> + <li>Sails.js</li> + <li>Mithril.js</li> + </ul> + <p> + Responsible for banking integration service, implemented parsers and + generators for custom text formats (MT940, MT942) using unit tests to + verify. + <br /> + Worked on backend credit scoring admin panel, began migration from + Sails to SPA using Mithril + </p> + </section> + <section> + <header> + <h5>Senior Web Developer at StudentCrowd (Studio-40 spin-off)</h5> + <span class="timeperiod">2014–2015</span> + </header> + <ul> + <li>PHP</li> + <li>MySQL</li> + <li>ElasticSearch</li> + <li>Vagrant</li> + <li>Saltstack</li> + </ul> + <p> + Optimised database access and ORM usage. Simplified dev environment + setup using Vagrant and Salt. Attended ElasticSearch, LogStash & + Kibana training. Worked remotely (60% -> 100%) + </p> + </section> + <section> + <header> + <h5>Senior Developer at Studio-40</h5> + <span class="timeperiod">2014</span> + </header> + <ul> + <li>Symfony</li> + <li>Sylius</li> + <li>PHP</li> + <li>MySQL</li> + <li>Capistrano</li> + </ul> + <p> + Wrote product CSV importer for Sylius with streaming preview diff + feature. Fixed issues with integration of payment provider API + including false payment failures. Assisted front-end developers with + JavaScript. + </p> + </section> + <section> + <header> + <h5>Backend Web Developer at Bulb Studios</h5> + <span class="timeperiod">2013–2014</span> + </header> + <ul> + <li>Laravel</li> + <li>ExpressionEngine</li> + <li>Ansible</li> + <li>PHP</li> + <li>Capistrano</li> + </ul> + <p> + Suggested and implemented switch from Apache to Nginx, enabling a + 1000x speedup in page loads. Suggested and implemented use of + configuration management for server provisioning. Introduced Vagrant + to reduce development environment variance and Capistrano for + deployment. Created time-basic competition entry API designed for 50k + RPM. + </p> + </section> + <section> + <header> + <h5>PHP Web Developer at Supplyant</h5> + <span class="timeperiod">2012-2013</span> + </header> + <ul> + <li>PHP</li> + <li>MySQL</li> + <li>Subversion</li> + <li>jQuery</li> + <li>HTML</li> + <li>CSS</li> + </ul> + <p> + Maintained e-commerce platform and worked on new product management + system. Made Entity-Attribute-Value system usable for other database + consumers using an SQL view. Recommended use of Mustache templates, + which the design team loved + </p> + </section> + <section> + <header> + <h5>Web Applications Programmer at ASL Holdings</h5> + <span class="timeperiod">2010-2011</span> + </header> + <ul> + <li>PHP</li> + <li>MySQL</li> + <p>Continued rewrite of SIM management web application</p> + </ul> + </section> + <section> + <h4>Relevant Education</h4> + <div> + <header> + <h5>CodeSchool</h5> + <span class="timeperiod">2014</span> + </header> + <ul> + <li>Ruby</li> + <li>JavaScript</li> + <li>CoffeeScript</li> + <li>EmberJS</li> + <li>BackboneJS</li> + </ul> + </div> + <div> + <header> + <h5>Computing A Level at Northampton College</h5> + <span class="timeperiod">2008-2010</span> + </header> + </div> + <ul> + <li>Pascal</li> + <li>PHP</li> + <li>SQL</li> + <li>HTML</li> + <li>CSS</li> + </ul> + </section> + </main> + </body> +</html> diff --git a/static/keybase.txt b/static/keybase.txt deleted file mode 100644 index 71b773e..0000000 --- a/static/keybase.txt +++ /dev/null @@ -1,55 +0,0 @@ -================================================================== -https://keybase.io/alanpearce --------------------------------------------------------------------- - -I hereby claim: - - * I am an admin of https://alanpearce.uk - * I am alanpearce (https://keybase.io/alanpearce) on keybase. - * I have a public key ASANiS-7NFF6vVEg-lRstl2tEXLNhUBc-uSTbc24v1rBhQo - -To do so, I am signing this object: - -{ - "body": { - "key": { - "eldest_kid": "01200d892fbb34517abd5120fa546cb65dad1172cd85405cfae4936dcdb8bf5ac1850a", - "host": "keybase.io", - "kid": "01200d892fbb34517abd5120fa546cb65dad1172cd85405cfae4936dcdb8bf5ac1850a", - "uid": "91ae6da6b67277c6eded2451d6925919", - "username": "alanpearce" - }, - "merkle_root": { - "ctime": 1528123072, - "hash": "e0815741a6d5837c8c4a3af6900f5921484ebc1a0c8931284247134587f5cb2a330840662e835ad3d21397c5617cfa3c6152777b5b643821f5e80cd00d107af3", - "hash_meta": "c92918ad06b58621eea19be246eff63e3a86d00c619c5457ae41cc090bbcfd70", - "seqno": 2990872 - }, - "service": { - "hostname": "alanpearce.uk", - "protocol": "https:" - }, - "type": "web_service_binding", - "version": 1 - }, - "client": { - "name": "keybase.io go client", - "version": "1.0.44" - }, - "ctime": 1528123107, - "expire_in": 504576000, - "prev": "7c22548954f852d481dec3c2f6ccefb4be4322e2cd51016e2beb4be359b65763", - "seqno": 6, - "tag": "signature" -} - -which yields the signature: - -hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgDYkvuzRRer1RIPpUbLZdrRFyzYVAXPrkk23NuL9awYUKp3BheWxvYWTFA0d7ImJvZHkiOnsia2V5Ijp7ImVsZGVzdF9raWQiOiIwMTIwMGQ4OTJmYmIzNDUxN2FiZDUxMjBmYTU0NmNiNjVkYWQxMTcyY2Q4NTQwNWNmYWU0OTM2ZGNkYjhiZjVhYzE4NTBhIiwiaG9zdCI6ImtleWJhc2UuaW8iLCJraWQiOiIwMTIwMGQ4OTJmYmIzNDUxN2FiZDUxMjBmYTU0NmNiNjVkYWQxMTcyY2Q4NTQwNWNmYWU0OTM2ZGNkYjhiZjVhYzE4NTBhIiwidWlkIjoiOTFhZTZkYTZiNjcyNzdjNmVkZWQyNDUxZDY5MjU5MTkiLCJ1c2VybmFtZSI6ImFsYW5wZWFyY2UifSwibWVya2xlX3Jvb3QiOnsiY3RpbWUiOjE1MjgxMjMwNzIsImhhc2giOiJlMDgxNTc0MWE2ZDU4MzdjOGM0YTNhZjY5MDBmNTkyMTQ4NGViYzFhMGM4OTMxMjg0MjQ3MTM0NTg3ZjVjYjJhMzMwODQwNjYyZTgzNWFkM2QyMTM5N2M1NjE3Y2ZhM2M2MTUyNzc3YjViNjQzODIxZjVlODBjZDAwZDEwN2FmMyIsImhhc2hfbWV0YSI6ImM5MjkxOGFkMDZiNTg2MjFlZWExOWJlMjQ2ZWZmNjNlM2E4NmQwMGM2MTljNTQ1N2FlNDFjYzA5MGJiY2ZkNzAiLCJzZXFubyI6Mjk5MDg3Mn0sInNlcnZpY2UiOnsiaG9zdG5hbWUiOiJhbGFucGVhcmNlLnVrIiwicHJvdG9jb2wiOiJodHRwczoifSwidHlwZSI6IndlYl9zZXJ2aWNlX2JpbmRpbmciLCJ2ZXJzaW9uIjoxfSwiY2xpZW50Ijp7Im5hbWUiOiJrZXliYXNlLmlvIGdvIGNsaWVudCIsInZlcnNpb24iOiIxLjAuNDQifSwiY3RpbWUiOjE1MjgxMjMxMDcsImV4cGlyZV9pbiI6NTA0NTc2MDAwLCJwcmV2IjoiN2MyMjU0ODk1NGY4NTJkNDgxZGVjM2MyZjZjY2VmYjRiZTQzMjJlMmNkNTEwMTZlMmJlYjRiZTM1OWI2NTc2MyIsInNlcW5vIjo2LCJ0YWciOiJzaWduYXR1cmUifaNzaWfEQLd80AcgXet5yGW0bL5y5IAf/rQ2R15NNRCk0T6qz/kQlf30JN810HcLoGrX3RcalgHbb8QbcgCWyd0kiep4CgWoc2lnX3R5cGUgpGhhc2iCpHR5cGUIpXZhbHVlxCB8OF/NBSFEq73lc0tGCM3gCNgr29QmOgZd9jvX68GNaKN0YWfNAgKndmVyc2lvbgE= - -And finally, I am proving ownership of this host by posting or -appending to this document. - -View my publicly-auditable identity here: https://keybase.io/alanpearce - -================================================================== diff --git a/static/robots.txt b/static/robots.txt index ef30e6f..a0e9740 100644 --- a/static/robots.txt +++ b/static/robots.txt @@ -1,7 +1,4 @@ User-agent: * Disallow: Host: alanpearce.eu -Sitemap: https://alanpearce.eu/sitemap.xml -User-agent: googlebot -Disallow: / |