diff options
Diffstat (limited to 'static')
-rw-r--r-- | static/.well-known/keybase.txt | 56 | ||||
-rw-r--r-- | static/.well-known/webfinger | 1 | ||||
-rw-r--r-- | static/cv/index.html | 348 | ||||
-rw-r--r-- | static/public_key.asc | 16 |
4 files changed, 421 insertions, 0 deletions
diff --git a/static/.well-known/keybase.txt b/static/.well-known/keybase.txt new file mode 100644 index 0000000..f027aa9 --- /dev/null +++ b/static/.well-known/keybase.txt @@ -0,0 +1,56 @@ +================================================================== +https://keybase.io/alanpearce +-------------------------------------------------------------------- + +I hereby claim: + + * I am an admin of https://www.alanpearce.eu + * I am alanpearce (https://keybase.io/alanpearce) on keybase. + * I have a public key ASAktAZWh67GLebI8PNw4QNlJ4zEiIogKiQQ8WsqVsQa8Qo + +To do so, I am signing this object: + +{ + "body": { + "key": { + "eldest_kid": "01200d892fbb34517abd5120fa546cb65dad1172cd85405cfae4936dcdb8bf5ac1850a", + "host": "keybase.io", + "kid": "012024b4065687aec62de6c8f0f370e10365278cc4888a202a2410f16b2a56c41af10a", + "uid": "91ae6da6b67277c6eded2451d6925919", + "username": "alanpearce" + }, + "merkle_root": { + "ctime": 1529691082, + "hash": "6588b60bdcbf5836c74db6647f69ed9f88e8d45b237f896e75d790534fcb3058a3c2e3e9b7f026469b0ca30fe58f20e47fbe074306e02eba912348f19ab1abd2", + "hash_meta": "68aec5954816532401f402af55121c0c7496f3aac93475db68ea50e38e7e45b4", + "seqno": 3127786 + }, + "service": { + "entropy": "pkn3peHHXkyLn2KYC2q0CKkC", + "hostname": "www.alanpearce.eu", + "protocol": "https:" + }, + "type": "web_service_binding", + "version": 2 + }, + "client": { + "name": "keybase.io go client", + "version": "2.1.1" + }, + "ctime": 1529691093, + "expire_in": 504576000, + "prev": "9d580c5bd9f3b4a01356f507d808de55add562ddf3fded05a7d74299c5766503", + "seqno": 25, + "tag": "signature" +} + +which yields the signature: + +hKRib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgJLQGVoeuxi3myPDzcOEDZSeMxIiKICokEPFrKlbEGvEKp3BheWxvYWTESpcCGcQgnVgMW9nztKATVvUH2AjeVa3VYt3z/e0Fp9dCmcV2ZQPEIIRjxssrSyS8RF3Xr7Br780Q1Y0vy58txz8S6XBBaYpCAgHCo3NpZ8RAeAwN++lz+C+csgxZXXLSv76w2WcYaH41EcagALVLrULinV0j+Ea1TOUhmBfI9KNKFkOSiuEm+kOVktdf4BrWA6hzaWdfdHlwZSCkaGFzaIKkdHlwZQildmFsdWXEIFnViSN5iA8WlkQfuHAD3PEQ0gkZyjv59iuNx7EoBhrRo3RhZ80CAqd2ZXJzaW9uAQ== + +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 + +================================================================== \ No newline at end of file diff --git a/static/.well-known/webfinger b/static/.well-known/webfinger new file mode 100644 index 0000000..b2e3d7d --- /dev/null +++ b/static/.well-known/webfinger @@ -0,0 +1 @@ +{"subject":"acct:alan@alanpearce.eu","links":[{"rel":"http://openid.net/specs/connect/1.0/issuer","href":"https://id.alanpearce.eu/"}]} \ No newline at end of file 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/public_key.asc b/static/public_key.asc new file mode 100644 index 0000000..f081429 --- /dev/null +++ b/static/public_key.asc @@ -0,0 +1,16 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mDMEXOZxBhYJKwYBBAHaRw8BAQdApEDmvmbv0fkrkND5LsR32g9QX8KtXAybgcCv +euU6N9O0IEFsYW4gUGVhcmNlIDxhbGFuQGFsYW5wZWFyY2UuZXU+iIAEExYIABwF +AlzmcQYCCwkCGwMEFQgJCgQWAgMBAheAAh4BABYJEM1L65Ko1GWDCxpUUkVaT1It +R1BHgDABAICw5varaVWeuVlzJ0/XpLDFSHfY1CvQbMHe1LJ/iwGJAP9m3XC0yTyX +uEG7w3R32Md5urcGH3fTIKK0ea6M+QVtArQgQWxhbiBQZWFyY2UgPGFsYW5Ac2F0 +b3NoaXBheS5pbz6IkAQTFggAOBYhBEjmV2wHBziMuL79DM1L65Ko1GWDBQJc5p5N +AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEM1L65Ko1GWD2Z4A/jggQexr +za4DXNK2jolKjIBL9S7pOGbXxldHo69HC+dLAP4lJlaExUbompFaXzV/FETH2pdQ +azi51lmD8wN5YX4AA7g4BFzmcQYSCisGAQQBl1UBBQEBB0C5WCVOLRJpEHSWMVFH +0xtWavMXh3QUaoNIrX0jcEtpIAMBCAeIbQQYFggACQUCXOZxBgIbDAAWCRDNS+uS +qNRlgwsaVFJFWk9SLUdQR5PKAP93z83yYaOZMQKZYAD3h2LHdlKD2wl2LaLiFOll +4N4ghgEA5iTNV6d5PHo8NV73T4xm97qY94LpF1cDWwBDYhb0ywI= +=VSmX +-----END PGP PUBLIC KEY BLOCK----- |