Technical Competencies
I pride myself on being a generalist and believe that with the rate of change in software today, adaptability and intellectual curiosity are the most powerful traits a programmer can have.
- Solidity development and security best practices
- Diamond proxy standard (EIP-2535) and diamond storage pattern
- Common libraries including web3.js, Ethers, Hardhat, RainbowKit, and OpenZeppelin contracts
- Cryptography - Hands-on experience with ECDSA and Shamir's Secret Sharing
- Languages - TypeScript, Kotlin, Java, JavaScript, Ruby, Python, PHP, and C#
- MVC frameworks - Express.js, Spring, Laravel, and Rails
- Serverless and microservice architectures
- Relational and document databases - MySQL, Postgres, MongoDB, and DynamoDB
- Frameworks - Vue.js, React, AngularJS, and Backbone.js
- Vue supporting libraries - Vuex and Vue Router
- Responsive UIs with Chakra and Tailwind CSS
- Infrastructure as code with AWS SAM and CloudFormation
- AWS services - Lambda, API Gateway, SQS, RDS, DynamoDB, CodeDeploy, EC2, and CloudFront
- CI/CD with CircleCI
- Heroku, Netlify, and AWS application platforms
- Common Android architectures - MVVM, MVP
- Android libraries - Dagger, Koin, Room, the Navigation Component, LiveData, and ViewModels
- Cross-platform app development with React Native
- Native iOS development with Swift
Web3
Back End
Front End
DevOps
Mobile
Where I've Worked
Interim Tech Lead @ Sarcophagus DAO
Sept 2022 - Present
- Partnered with Decent DAO to lead a globally distributed team of engineers on development of V2 of Sarcophagus decentralized dead man's switch protocol. Responsible for coordinating work across time zones, setting priorities, strategic planning, and maintaining a strong team culture.
- Implemented EIP-2535 upgradeable diamond proxy and storage patterns
- Implemented Shamir's Secret Sharing to enhance decentralization by distributing responsibility for sarcophagus encryption keys among multiple nodes
- Established peer-to-peer communication across a decentralized network of nodes using libp2p
- Conducted vulnerability evaluations, optimized smart contract code, and implemented extensive testing
- Provided technical review of whitepaper to ensure accuracy and completeness
Head of Engineering @ Portis
November 2020 - July 2022
- Directed engineering efforts on Portis noncustodial web-based crypto wallet and SDK, leading team through a full UI rewrite and development of a new blockchain indexing engine.
- Coordinated engineering priorities through acquisition, playing a critical role in due diligence process to ensure all security requirements were met for new ownership.
- Oversaw planning of engineering epics based on feature requirements from product team.
- Established engineering process standards including git conventions, unit testing, frameworks to interact with core services, and coding best practices in collaboration with engineering team.
- Collaborated with other leadership to oversee growth of engineering team, including budget planning, strategic hiring to support product roadmap, interviewing, and onboarding of new talent.
- Acted as technical liaison in partner calls, providing insight into viability and level of effort required by new integrations.
Senior Software Engineer @ Katasi
March 2019 - October 2020
- Proposed transitioning development and management of a critical data pipeline to in-house. Led development of replacement pipeline to completion 1 month ahead of schedule. Drastically improved performance and reliability of data ingression and saved a projected 1.2M in annual costs to contractors responsible for original pipeline.
- Implemented tool to aggregate and visualize large amounts of customer usage data based on KPIs developed in tandem with management. Enabled Katasi to continue to monitor success rates as load increased by 5x during rollout to first fleet customer. Saved Katasi 20+hrs/wk of manual data analysis and improved accuracy of data insights which informed ongoing business and technical decisions.
- Proposed and led introduction of Kotlin into existing Spring back end, Android app, and SDK, resulting in more concise and maintainable code. Instructed teammates in Kotlin best practices.
- Championed adoption of serverless technology in development of integrations with high scalability needs. Took over management of AWS infrastructure and implemented new data pipelines on AWS CloudFormation, leveraging a variety of AWS services including SQS, Lambda, RDS, CodeDeploy, DynamoDB, and EC2.
- Proposed and implemented Dockerized version of back-end dev environment to accelerate onboarding of new hires. Introduced visual admin interfaces to facilitate easier interaction with infrastructure (MongoDB, Redis, Postgres, RabbitMQ).
Contractor @ Spire Digital
June 2018 - Feb 2019
- Worked as sole developer on Kiosk mode tablet application for major car rental company, featuring VoIP calling, SMS, and support for 7 languages. Took product from design prototype to functional MVP in 3 months, working with management to meet aggressive deadlines and support client demos.
- Consolidated existing authentication logic into a single middleware in an Express.js web app, resulting in elimination of significant code duplication, improved security, and savings in future development time.
- Analyzed technical debt on an outsourced app for COSU devices and evaluated risk on a rewrite. Introduced dependency injection with Dagger to promote testability in code.
- Worked with design and engineering on a rewrite of a Vue.js admin dashboard. Advocated introduction of generative testing with testcheck.js, resulting in increasing test coverage and more concise tests.
Software Engineer @ Devetry
June 2016 - Oct 2018
- Collaborated with National Renewable Energy Laboratory to create open-source CAD software. Proposed and implemented a Vuex transaction-based data store to facilitate undo/redo functionality.
- Shifted between mobile, front-end, and back-end roles as projects required. Worked with a range of server-side technologies including Meteor, Drupal, and Django.
- Led development of Android app for ASU featuring chat and interactive course components. Leveraged open-source RocketChat and EdX mobile app codebases to minimize development costs while integrating complex functionality into a fully customized product. Assisted back-end team in development of REST APIs for Android and iOS apps.
- Worked as sole native Android developer within agency. Supported front-end focused teammates in debugging Android builds on legacy hybrid apps.
Software Engineer @ Spire Digital
Aug 2014 - Aug 2016
- Worked with front-end frameworks including Vue.js and Backbone.js. Leveraged build tools including Gulp, Grunt, and Webpack.
- Developed a variety of large web applications with Laravel and Express.js.
- Styled responsive interfaces with Sass based on Sketch comps and InVision prototypes.
Some Things I've Worked On
Featured Project
Sarcophagus V2
An open source decentralized dead man's switch built on Ethereum and Arweave which uses the SARCO token to incentivize its own network of nodes to protect and publish secrets. Protocol contracts are implemented on Ethereum and use Shamir's Secret Sharing and elliptic curve cryptography to split responsibility for individual secrets across multiple nodes.
- Solidity
- libp2p
- EIP-2535
- Hardhat
- RainbowKit
Featured Project
Portis
A noncustodial web based cryptocurrency wallet with support for multiple chains and an accompanying open source SDK for easy integration. Supports direct fiat to token purchases via 0x and MoonPay integrations. Previously owned by ShapeShift.
- web3.js
- TypeScript
- React
- Express
Featured Project
FloorspaceJS
An open source web app for creating building energy models. Provides a story by story interface to create unique geometry for each floor, and support for importing satellite imagery or existing floorplan images.
- Vue.js
- D3
- Vuex
- OpenStreetMap
Other Noteworthy Projects
Ingress Pipelines
Highly scalable data ingestion pipelines developed on AWS infrastructure are used to forward data from vehicles to the Decision Engine. Services with built in scaling like Lambda and DynamoDB are used to ensure that the pipelines can perform under load.
Decision Engine
The decision engine processes data from all customer vehicles to determine when it is necessary to disable a phone for the safety of the driver.
Groove SDK
The Groove SDK provides distraction blocking functionality to third party apps.
Travel Assistant
Travel assistant was built for a major car rental company for use on kiosk mode tablet devices. It provides VoIP calling, SMS functionality, and localized support for 7 languages.
What's Next?
Get In Touch
Schedule a call with me to discuss your development needs.