I have been programming since as far as I remember. When I was five, I learned the most basic of BASIC on a VIC-20. In the third grade, I was able to print my name to the screen over and over again (among other things) on a Commodore PET. I wrote simple games on a Commodore 64 and excelled at programming in Pascal. I studied Computer Science at the University of Richmond and in the summer after my junior year, got my first job writing software for Oak Tree Systems where I helped write multiple application in Visual Basic, SQL Server, and ASP. After college, I moved to Boston to work at a startup and have spent the last 25 years building a career in software development.
I started programming in Java while in college with version 1.1. Since then Java has made up the vast majority of my experience. For most of th 2000s, I wrote mainly web application using Struts, MyBatis, JSP and FreeMarker. Towards the end of the decade and into 2010s, my experience shifted to developing web applications and REST APIs Spring, where I have developed application using Spring Boot, Spring MVC/REST, Spring Security, Spring Batch, and Hibernate/JPA. I also predominantly use Java for my personal projects, which include an automated trading system which uses various broker APIs, Spring, and RabbitMQ and data processing analysis for sports betting.
My first experience with Python was in 2008 when I developed a web application for a financial reporting system along with a financial transaction processor. With the rise of Python use in data science and machine learning, I've been spending a good portion of my training time using core Python, PyTorch, and scikit-learn.
Since the beginning of my career, I’ve been working with relational databases starting with Access 97, SQL Server 6.0, and Oracle 8i. Later in my career, I developed databases using Postgres, MySQL, and H2. Anything from schema design, writing complex SQL statements, implementing stored procedures, and creating migration and upgrade scripts. I am experienced using several ORMs and software libraries to implement application that interact with SQL databases including JPA, Hibernate, Spring Data, Spring JDBC, and SQLAlchemy. Some of my more recent engagements involved developing with MongoDB, Timestream, and DocumentDB.
One of my more esoteric skills, I worked on a project that used SNMP for the configuration and monitoring of networked devices such as routers and radio antennas. I never want to look at a MIB file ever again.