<!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>