My Experience
Languages
CSS
- I have 15 years of experience writing CSS.
Bootstrap
- I used it at UW-Milwaukee, Kohler, Starkmedia, QM Quality Matters, and Bader Rutter.
Bulma
- I used it at UW-Milwaukee and Bader Rutter.
Vuetify
- I used it at Bader Rutter.
Shoelace / Web Awesome
- I discovered this in early 2024 and am excited about it.
HTML
- I have 15 years of experience writing HTML.
SQL
- I have 15 years of experience writing SQL.
JavaScript
- I have years of experience with AngularJS, Rivets.js, Vue.js, and React. I also have years of experience writing Node.js in multiple contexts.
Web Components
- I have experience with web components with and without Lit. I like Lit.
AngularJS
- In 2013, I introduced my employer to AngularJS, began teaching my fellow developers about its promise for what it could do for us, and started using it with production applications.
- In 2014 and 2015, I wrote several articles about how to leverage AngularJS best and wrote several small projects using it.
Rivets.js
- I discovered Rivets.js in 2015 after joining Quality Matters. Their product needed a binding and templating solution and I couldn't justify adding AngularJS. Rivets was lightweight and robust enough to fit the need since it is only 6.2kb minified and gzipped (including dependencies).
- I published several articles on Rivets in 2015 and 2016 and presented about it at MilwaukeeJS.
Vue.js
- When I joined UW-Milwaukee in 2016, I discovered Vue.js and wished I had known about it sooner. It was everything that I wanted from Rivets and more.
- I have published dozens of articles on Vue.js since 2020 and written both side apps and code for work using it. I adore it.
React
- In 2024, I poked my head up and realized React dominates the space. I started exploring the topic and published several articles on it.
Node.js
- Since 2014, I have written Node for multiple shops in multiple contexts. I have run it in Heroku, Azure, and Google Cloud. For one client, I ran it in Firebase Functions. I like it a lot.
PHP
- I have written a ton of PHP while at Starkmedia, UW-Milwaukee, and Bader Rutter.
- I have also written dozens of PHP articles on my website and on Dev.
Laravel
- I started writing Laravel while working for UW-Milwaukee.
- I started writing about Laravel in 2022 while attempting to convince Bader Rutter to consider it.
WordPress
- I built and maintained WordPress sites at Starkmedia, UW-Milwaukee, and Bader Rutter.
- My website uses WordPress and has used it for over a decade.
Python
- I have published code on my blog related to Machine Learning (ML) and Artificial Intelligence (AI). Python might be my chosen language for AI and ML work.
.NET
- I was the .NET expert at BR. We used both .NET Framework and .NET Classic.
CFML
Adobe ColdFusion
- I wrote a ton of CFML at UW-Milwaukee, Kohler, Starkmedia, and QM Quality Matters.
- I have written a few ColdFusion blog posts but not as many as you would expect.
Lucee
- If you don't have $8,000 for an Adobe ColdFusion license, Lucee is a great option. I have used it a lot to play around with CFML outside of work.
Databases
Relational Databases
Oracle RDBMS
- I used it at UW-Milwaukee and Kohler.
MySQL / MariaDB
- I used it at UW-Milwaukee, Starkmedia, QM Quality Matters, and Bader Rutter.
SQL Server
- I used it at Starkmedia and QM Quality Matters.
PostgreSQL
- I have used this in the past for a few side projects, over the years.
NoSQL Databases
CouchDB
MongoDB
- I explored MongoDB in 2021 and we used it for a project at Bader Rutter.
Firebase
- I explored the original Firebase while working for Starkmedia.
Firebase Cloud Firestore
- We used this a lot at Bader Rutter with systems for clients and internal tools.
- At the October 2023 Hack and Tell, I wrote "Job Tracker" that used Cloud Firestore and Firebase Authentication.
- In early 2024, I wrote an app that uses Vue, Pinia, the composition API, Firebase Authentication, and Firebase Cloud Firestore. The plan was to use it as a "boilerplate" for other things.
Vector Databases
Chroma DB
- I have written a bit about it on my website and have talked about it in webinars.
Code Version Control
Git
- I used it at UW-Milwaukee, Starkmedia, and Bader Rutter.
Subversion
- I used it at Kohler and QM Quality Matters.
Artificial Intelligence
Ollama
- I introduced Ollama to BR and used it to help them develop an embedding solution.
- I have written many articles on how to integrate it into your Node.js and Python systems.
- I presented a "Crafting Intelligent Python Apps with Retrieval-Augmented Generation" webinar on May 31, 2024 and June 28, 2024.
- I presented "The Scoop on Embedding: Teaching Large Language Models the “Flavor of the Day” at Culvers" on July 23, 2024 at the La Crosse, WI Software Developer Meetup Group
- I presented "The Scoop on Embedding: Teaching Large Language Models the 'Flavor of the Day' at Culvers" at DevCon Midwest on August 23, 2024.
Fediverse
Mastodon
- I run the Mastodon instance Toot Works.
GoToSocial
- I run the GoToSocial instance JWS Social.
Hosting
Linode
- At one point JWS News was hosted on Linode.
DigitalOcean
- At one point JWS News was hosted on DigitalOcean.
Google Cloud
- At one point JWS News was hosted on Google Cloud.
Github Pages
- JWS Pictures is hosted on Github Pages
Render
- JWS Dev is hosted on Render.
Microsoft Azure
- Client websites at BR were hosted on Azure
WP Engine
- Client websites at BR were hosted on WP Engine
WordPress.com
- JWS News is hosted on WordPress.com
Firebase Hosting
- Client websites at BR were hosted on Firebase Hosting
Heroku
- Client websites at BR were hosted on Heroku