TypeScript Developer
2021 - 2022Flux- Architected and developed exporters for generating Gerber files that allow users to order Printed Circuit Boards from manufacturers, a major milestone in Flux's journey to wide user adoption.
- Developed an end-to-end testing process to ensure quality and avoid regression issues in the future.
- Created TypeScript definitions for JSON representation of KiCad PCB files, allowing for strict type checking of all exporter code.
- Architected and developed the foundation of a TypeScript API to generate Gerber files natively without reliance on third-party tools.
Technologies: TypeScript, Electronics, Jest, TestingFront-end Developer, React
2021 - 2021Nas Education (via Toptal)- Implemented an editable text component for inline editing of the website copy in a brand-new CMS back end.
- Built multiple web components for use on product pages.
- Refactored common components for reusability and maintainability.
Technologies: React, Next.js, Tailwind CSS, JavaScript, HTML, CSS, Figma, Front-endSenior Software Engineer
2020 - 2021GfK - Growth from Knowledge- Converted approximately 20 legacy Svelte components to React with TypeScript.
- Created an automated workflow to generate React hooks for querying a GraphQL back end, including end-to-end type safety with TypeScript.
- Set up integration testing for components using Jest.
- Delivered team training on the best practices of React, TypeScript, and GraphQL.
- Constructed end-to-end system tests using Cypress.io.
- Developed the initial version of a Webpack build system, migrating over from a legacy Rollup configuration.
Technologies: Jest, Cypress, React, Svelte, JavaScript, GraphQL, TypeScript, TestingSenior Software Engineer
2020 - 2020Array (via Toptal)- Built reusable web components using React and Vanilla JavaScript.
- Implemented a pagination mechanism for custom Vanilla JavaScript components.
- Contributed to the development of the company website at array.com.
Technologies: React, HTML, CSS, Vanilla JS, Next.js, Express.js, Figma, Front-end, TestingLead Front-end Developer
2018 - 2020Verb Tech (via Toptal)- Created the monorepo architecture, applying best practices from Nrwl/Nx, including Redux stores.
- Trained the team on best practices and unit testing in Angular.
- Set up automation to speed up development and maintain quality.
Technologies: Jest, RxJS, TypeScript, Angular, Redux, Cypress, CI/CD Pipelines, Monorepos, Front-end, TestingFreelance Front-end Developer
2017 - 2018MedChat, LLC (via Toptal)- Developed the foundation and architecture of the client's new front-end in Angular.
- Set up continuous integration for the deployment of code to production, including automatic deployment of feature branches.
- Created pages for chat analytics and monitoring with a reusable Redux pattern using NgRx.
- Developed chat log navigation functionality for administrators.
- Supported the team in the maintenance of the legacy AngularJS platform.
Technologies: Mocha, Chai, RxJS, TypeScript, Angular, CI/CD Pipelines, Monorepos, NgRx, Front-end, TestingSenior Software Engineer
2016 - 2017BGL Group- Built a Node.js API using Swagger, Express, and MongoDB to capture entrant information for marketing promotions at comparethemarket.com.
- Built interactive web content to entertain and engage visitors of comparethemeerkat.com.
- Trained members of the team on core JavaScript topics, best practices, advanced patterns, functional programming, and new features of ES2015.
Technologies: Mocha, Jasmine, Episerver, ASP.NET MVC, .NET, Swagger, MongoDB, Node.js, JavaScript, Sass, CSS, HTML, Front-end, TestingFront-end Developer
2015 - 2016Checkout.com- Built, tuned, and improved "Checkout Hub," the checkout portal for account administrators and merchants.
- Promoted, encouraged, and demonstrated TDD with AngularJS.
- Automated anything and everything that could be automated using Grunt or Gulp.
Technologies: Chai, Mocha, Jasmine, Node.js, Angular, CSS, HTML, JavaScript, Front-end, TestingSoftware Engineer
2012 - 2015KPMG UK- Developed full-stack web applications using .NET technologies for the back-end and frameworks such as Knockout.js and AngularJS for the front end.
- Developed a hybrid HTML5 app with AngularJS, wrapped with PhoneGap for native deployments.
- Presented tech talks on interesting topics such as AngularJS, BDD with Cucumber, and ECMAScript 6.
Technologies: Jasmine, Angular, Knockout (Knockout.js), C#, ASP.NET MVC, CSS, HTML, JavaScript, Testing