
About
I am a self taught software engineer with over 20 years of extensive experience in web development. I have been able to expand into desktop applications, and through my own curiousness, built back end services including an IRC bot. I have Linux experience as a system administrator for a small enterprise system.
I am a full stack LAMP developer. My primary focus in development includes PHP with some Python experience. I'm familiar with several languages and proficient with multiple databases, primarily being MySQL and PostgreSQL.
I run Arch Linux as my daily operation system, but have experience with many Linux distributions. I've used most major distributions including the Ubuntu, Fedora and CentOS flavors. I currently dual boot with Windows 11 for gaming and have experience with many mainstream Windows versions since Windows 95. I have also been an admin on multiple Windows Server installs during my career.
My Resume
My resume linked below contains a full list of my skills and experience. I have also made it available for download in multiple formats.
Projects
The following personal projects showcase my passion for continuous learning. I leverage these opportunities to explore emerging technologies, test new ideas, and deepen my understanding of core concepts. Each project, whether active or archived, represents a significant step in my growth as a developer.
DeskChanger
Desk Changer is a Gnome Shell extension written in TypeScript that automatically rotates the desktop wallpaper. Users can select from predetermined intervals or set a custom schedule. By leveraging modern Gnome Shell features, the extension's daemon continues to run seamlessly, even when the user's session is locked. For publication on the Gnome Shell Extension website, the TypeScript code is transpiled into clean, readable JavaScript, formatted with Prettier to aid in the review process.
The project has evolved significantly since conception. It was originally written in JavaScript with a separate Python daemon to overcome early Gnome Shell limitations on the lock screen. As the project matured, the daemon was rewritten first in Python to improve maintainability, and ultimately in GJS (Gnome JavaScript) to provide a more native experience and reduce external dependencies.
Portfolio
This portfolio is a living project, serving as both a showcase for my work and a platform for my continued learning. It has evolved significantly over the years, adapting to new languages, frameworks, and architectural patterns.
The current version utilizes a modern, multi-repository architecture where projects from different tech stacks are integrated seamlessly. All content is centrally managed via Contentful as a headless CMS, with a shared portfolio.css package ensuring a consistent design.
Previous iterations of this site include:
PHP & Symfony: A monolithic application built with the Symfony Framework, MySQL, Composer, and a front-end powered by Yarn and Webpack Encore.
Python & Django: A version built on the Wagtail CMS (using the Django Framework) with a PostgreSQL database and django-sass-processor for front-end assets.
portfolio.css
To solve the challenge of maintaining a consistent UI across a portfolio built with multiple languages and frameworks, I created this centralized front-end package.
It provides a robust design system built with Dart Sass and includes essential JavaScript utilities for shared UI components. The package is designed for flexibility, allowing any of my projects to easily integrate its styles and scripts. For developer efficiency, it includes TypeScript definitions and is privately distributed via GitHub Packages. All code is maintained to a high standard using ESLint and Prettier.
SiTech
SiTech is a code library that I wrote for PHP several years ago and have not actively maintained in a couple of years. It was originally my alternative to using a full framework or the PEAR Library as they were both heavy with dependencies. The purpose of SiTech being a library was so that you could easily use individual parts of the library, much like a framework, but without the dependency on any other part of the library. Since writing it I have started to use other code libraries and, at this point, no longer wish to maintain my own. Some day I might attempt to rewrite this library for PHP 7 using some of the newer features in the language and apply some newer patterns that I myself have learned.
SimpleIRC
SimpleIRC is a project I created several years ago. It was initially written to be an IRC bot, but my insight changed to wanting more of a library than a client. At first it was written in PHP, but after finding limitations when creating reloadable code modules, I rewrote the project in Python. Several years back I unfortunately lost the original code in a hard drive failure and did not have backups. I have not, since, taken the time to recreate the original work.
Get In Touch
If you have any questions, please feel free to drop me a line. I would also like to speak with you if you are interested in working together. Please allow me a couple of days to reply back to you. We all get busy from time to time, but I promise I'll get back with you.
