|DIY projects for the camping/adventure van, Goldie|
|Visiting breweries and beer gardens in new towns when traveling|
|Taking photos of the pets|
- Frontend development
- basic websites using static generators like hugo and jeykll
- re-usable modules with webpack and npm
- testing with jest, karma, jasmine, browserstack, and cypress
- Backend development
- restful APIs with HTTP and JSON using C#/ASP.NET Core and python/flask
- authentication and authorization using oauth and JWTs
- event-driven architecture using AMQP, rabbitmq, and Azure Storage Queues
- serverless architecture using Azure Functions with C#, F#, and nodejs
- re-usable modules with nuget
- testing with mstest and pytest
- Relational Databases
- data modeling
- query optimization
- authentication and fine-grained authorization using
- monitoring, backups, restores
- deployment using Entity Framework Migrations and flyway
- experience with SQL Server, Azure SQL DB, postgresql, mysql, and sqlite
- create independent development environments using docker and docker-compose
- deploy containerize applications using Kubernetes and helm
- monitor and debug applications using prometheus, alert manager, grafana, kibana, pagerduty, and bash scripts
- create build pipelines with automated testing and static analysis using Github actions and Gitlab pipelines
- convey complex ideas with flowcharts, sequence diagrams, and C4 diagrams using mermaid and graphviz
- capture important contextual information using git commit messages, ticket comments, architectural decision records, and code comments
- make the software development lifecycle transparent using ticketing systems and keeping them up-to-date
- experience with Jira, trac, Github, Gitlab, pivotal tracker, trello, mediawiki, and Confluence
Custom application development
Interview clients to design user interfaces and business processes, then implement those using a wide variety of web and RDBMS technologies. Work with clients to evolve the system to better meet their needs and reduce operating costs.
Technical debt collection
Adopt old systems, introduce automated tests, documentation, and de-duplicate code. Upgrade user interfaces to use modern UI conventions. Clean up systems incrementally in concert with bug fixes and new feature development.
Energy conservation and data display
Import utility consumption data from diverse sources, efficiently store in a relational database, and display via web-based maps. Analyze data using statistical models.
Electronic voting for a college student government
Interface with third-party authentication systems, support high volume web traffic with high data integrity and security requirements.
Server and application monitoring
Design low-impact means to gather relevant performance and health metrics, minimize notification spam, analyze data to predict problems.
Woodworking - custom furniture and knick-knacks
Design, choose and re-use materials to minimize waste, measure, and construct in the garage workshop. Use power tools and retain possession of all fingers.
2015 - Present
Work with multiple development teams to guide architectural and design decisions toward consistent, modern solutions.
Software Developer 4
Work with CIS-focused team to modernize and improve maintainability. Introduced new-to-company test automation practices and tools. Led incorporation of angularjs as a stepping stone away from the older technologies then in use.
Accelerated Data Works, Inc
2001 - 2015
Director of Development / Programmer / Consultant
Led a small team on many IT projects with diverse requirements. Designed and built small to medium custom websites.
- Microsoft Certified Professional
- Microsoft Technology Associate: Database Administration Fundamentals
- Microsoft Specialist: Programming in C#
- BS, Computer Engineering from the University of Florida