Summary
I am a solution architect and full stack developer with over 10 years of experience. I work across application development, cloud infrastructure, and security, specializing in SOLID, clean code, and unit and integration testing. I raise delivery quality through automation and advocate for simple, maintainable architecture.
Technologies
- Java
- Gradle
- Groovy
- InlelliJ IDEA
- C#
- AspNetCore
- Redis
- NSwag
- JavaScript
- TypeScript
- Angular
- React
- Chef
- Unit Testing
- XUnit
- Playwright
- Powershell
- Pester
- Ruby
- JUnit4
- JUnit5
- FitNesse
- Google Test
- Apex
- VisualForce
- Salesforce DX
- Ant
- PdfBox
- CometD
- C++
- Ada
- Wireshark
- Lua
- VBA
- SQL
- Selenium
- VirtualBox
- VMware
- Docker
- Kubernetes
- Blockchain
- Ethereum
- TRON
- DevOps
- ARM Template
- AWS/Azure
- App Insights
- CloudFormation
- Solidity
- Truffle
- HardHat
- Web3
- NestJS
- RabbitMQ
- MongoDB
- n8n
- Prismatic
- Snyk
- OAuth
Work Experience
-
Solution Architect
Sep 2023 – Present
Mad Mobile, Tampa, FLRestaurant and Retail Software
- Standardize build automation, Snyk security testing, unit and integration tests, code review, release versioning, and deployment automation across old and new applications
- Rewrite ShopCPQ in NestJS, replacing MongoDB queues with RabbitMQ and in-memory timers with Kubernetes jobs
- Make JSDoc type safety and unit test coverage standard for JSRunner implementation repositories
- Guide integration choices across n8n, Prismatic, and NestJS while supporting retail customers such as Knitwell Group and West Marine
- Carry OAuth research for Concierge through to an implementation decision, and steer Concierge toward faster client integration, including Concierge AI
- Move Neo toward reproducible builds and deployments
- Partner with the Cloud team on production ownership, with a clear split between prod and non-prod and explicit access controls
- Support Multi-Location Reporting, Enterprise Solutions, and products including CAKE, MenuPad, and Concierge
- Mentor retail engineers and advocate for simple, maintainable architecture in design decisions
-
Senior Software Developer (Contractor)
Jan 2019 – Present
Baha'i National Center, Wilmette, ILNot-For-Profit Religious Organization
- Design automatic API documentation from unit test execution
- Create SAML Identify Provider on existing authentication system
- Develop and maintain Azure Functions, ASP.NET Core/MVC and SOAP services (C#)
- Encourage best practices (e.g. SOLID, clean code, etc) and use of DI for IoC in .NET
- Optimize REST services from controller to database via LINQ and EF Core
- Convert UI pages from jQuery to React and JavaScript to TypeScript
- Consolidate source code repositories and CI/CD solutions for automated testing/linting
- Automate builds using Azure DevOps Build and Release Pipelines
- Integrate ARM templates to streamline deployments
- Alert and troubleshoot using Azure App Insights' KQL (Kusto Query Language)
- Update stored procedures (SQL Server) and write SQL unit tests to verify functionality
-
Senior Software Developer (Contractor)
Jun 2021 – Present
Flexsible, Tampa, FLSmart Contract Development Services
- Create Smart Contract using Solidity and HardHat including automated unit tests
- Reduce gas by implementing cloning of Smart Contracts
- Troubleshoot Hyperledger FireFly dynamic creation of supernodes
- Investigate Proof of Concept for Binance Smart Chain real time notifications
- Implement Smart Contracts using both Truffle and Hardhat (Solidity)
- Automate CI/CD using GitHub Actions and AWS CloudFormation for NodeJS apps
- Provide sample PHP for submitting signed token transfer requests to Ethereum
-
Senior Software Developer
Jul 2019 – Jul 2021
PODS, Clearwater, FLMoving and Storage
- Decouple legacy WCF based applications from Microsoft AX 2009 to enable smooth upgrade from Microsoft AX (C#)
- Troubleshoot issues related to performance and caching (Redis)
- Track down source code for legacy applications for which exact source could not be identified (C#, Visual Basic)
- Refactor common code into Nuget packages published on Sonatype Nexus via Bitbucket pipelines (DevOps, C#)
- Automate integration tests with on-premise TFS 2017 (Powershell)
- Create templates for Azure DevOps pipeline automation
- Participate in PCI DSS gap remediation
-
Senior Software Developer
Sep 2015 – Jul 2019
Applicant Insight / NoMoreForms, New Port Richey, FLBackground Investigation and Applicant Processing
- Debug and diagnose obscure race conditions in various environments (JavaScript, Java, SQL)
- Maintain and upgrade legacy Java based systems while launching new systems using .NET (C#, XUnit, Angular, TypeScript)
- Model automated containerized deployment strategies (VirtualBox, VMware Workstation, Docker)
- Integrate credit card / ACH payment system to allow applicants to pre-pay client specified fees (Java, C#)
- Create rule based system for automated appointment of insurance agents (C#)
- Implement unit testing for SQL functions
- Script application deployment using TDD (Powershell, Pester)
- Improve Java coding practices by implementing custom logging, unit testing, and static code analysis (slf4j, junit4, junit5, ErrorProne, SonarQube)
- Create Gradle build scripts for legacy Java applications with custom tasks for local deployment, build versions, and packaging (Java, Gradle, Groovy)
- Tweak legacy apps written with PowerBuilder in PowerScript
-
Software Architect (Part-Time)
Jul 2015 – Jan 2019
Qualityze Inc., Tampa, FLQualityze Systems for Regulated Industries
- Implement file conversion using Salesforce Platform Event and Heroku (Java)
- Research managed package automation to scratch orgs (Salesforce DX, Ant)
- Build Quality System as Salesforce managed package (Apex, VisualForce)
- Architect and implement Salesforce managed package secure feature manager
- Implement PDF manipulation using Java running on Heroku uploading to various salesforce orgs (Java, PdfBox, Apex)
- Notify using unobtrusive messages and Salesforce cometD (WebSocket) messaging
- Create method to perform VisualForce injection to increase flexibility of Salesforce managed package (VisualForce)
- Diagnose slow pages in Salesforce and design method to reduce load time
- Design deployment process around github and lack of automation in Salesforce
-
Software Developer (Contractor)
Dec 2018 – Jan 2019
iReward.io, Trinity, FLBlockchain Reward System
- Create blockchain reward system on TRON Network (C#, Typescript, Angular)
-
Software Engineer
Jan 2013 – Sep 2015
CAE USA Inc, Tampa, FLMilitary Training Simulation with Active Security Clearance
- Enhance Ant Contrib cpptasks to generate Visual Studio .sln file and desired .vcproj version to enable source code analysis (Java)
- Deploy and maintained central build automation within secured IT environment (Opscode Chef)
- Implement wrapper over single Magnetic Variation model for multiple languages (Ada, C, C++)
- Create Visual Studio solution wizard to streamline adoption of software best practices (JavaScript)
- Support multiple projects simultaneously; not the norm for recent hires (C++, C, Ada with Linux)
- Write Wireshark dissector for network communication with USMC Tactical Environment (Lua)
- Identify and implement a database to combine multiple lists of software assets (SQL, VBA) and convert database access to MS SQL and ASP.NET MVC (C#)
- Participate in numerous Kaizen workshops focusing on subjects ranging from software development best practices to identifying tools for saving money
- Coordinate and present training for software engineers on Automated Testing, Static Code Analysis, and Software Product Lines (Fitnesse, GoogleTest, Selenium)
- Develop tool for converting Ant XML build instructions to Visual Studio format (C++)
- Team lead for deployment and institutionalizing internally developed Software Production Line tool
-
Quality Assurance and Regulatory Affairs Manager / Software Developer
Dec 2003 – Jan 2013
IsoAid, LLC, Port Richey, FLMedical Device Manufacturer
- Research solutions for validation, auditing, documentation and manufacturing improvements
- Compare and purchase equipment for sterilization, validation, sterile sealing, and automation
- Maintain and upgrade multiple companywide databases from MS Access to MS SQL Server (VBA)
- Optimize Iodine-125 and Palladium-103 decay and tracking systems in MS Access and Excel (VBA)
- Perform both software and equipment validation on critical systems
- Develop and execute validation protocol for electronic signatures
- Manage simultaneous deadlines for regulatory and quality goals
- Upgrade Quality Assurance System to allow paperless availability
- Submit and receive 510(k) submissions to the FDA
- Submit and receive medical license applications to Health Canada and EU notified body
- Create and execute sterilization validation protocols for both Ethylene Oxide and Steam sterilizers
Education
- Bachelor of Science, Computer Engineering University of South Florida · 2012
Training
- DEV541: SANS Secure Coding in Java/JEE: Developing Defensible Applications April 2019 (certified August 2019)
- DEV544: SANS Secure Coding in .NET: Developing Defensible Applications April 2018 (certified August 2018)
- SANS Core NetWars Experience April 2018
- OWASP AppSec USA: Hands On Security in DevOps and Application Security Automation Workshop September 2017
- CS169.1x: Software as a Service (Ruby) June 2014
- Software Verification & Validation Strategies (by Noblitt and Rueland) 2010
- ISO 14971:2007 Medical devices -- Application of risk management to medical devices 2008
- ISO 13485:2003 Medical devices -- Quality management systems -- Requirements for regulatory purposes 2005
Additional Information
Application Security: In addition to fixing various common sense vulnerabilities (like unauthenticated access and SQL injection) I have begun applying skills learned at various security related training courses.
Spoken Languages: Native English and Spanish speaker