Skills

PHP

PHP is the reason I got into programming. Starting in middle school, while teaching myself how to build static websites with HTML, I stumbled across the PHP include() function. This was a game changer, and it served as the starting point for learning about functions, writing code, server side vs. client side code, and more. I now use PHP every day for work and for personal projects. It is the backbone language for which all of my experience branches from. Without PHP, I would have never explored web development as a career. I have been using PHP in varying capacities for over 10 years now.

Laravel

Laravel supercharged my PHP development, and introduced me to the MVC philosophy of development. I started using Laravel back when Laravel 5 was released, and I have kept up to date with the major releases regularly. Currently, I work with Laravel 6, 8, 9, and 10 for different applications either constrained by server configurations, or constrained by tech debt. I have been working on MVC apps and Laravel Apps + API’s for over 6 years now.

MySQL

MySQL was another instance of a self-taught language. Using a combination of trial and error to learn about database structures, transactions, relations, and more. Over the years I have developed the skills needed to scaffold large relational databases in SQL, and I have given presentations about how to structure data for MySQL for non-technical audiences.

JavaScript, React, Vue, Inertia

I have worked with Javascript for a little over 10 years, and more recently (over the past 4 years or so) I have also started to work heavily with Javascript frameworks like React and Vue.

In addition to vanilla Javascript, basic jQuery, and some simple scripting for small projects (see: Minesweeper and Connect 5), I wrote a custom block theme using React and PHP for the NewMexicoKids.org wordpress websites, and I have used ReactNative and Vue to develop personal applications and side projects. The NewMexicoKids.org Search Portal utilizes Vue heavily for front-end reactivity.

HTML

No web developer worth their salt can get away with not knowing HTML, at least the basic tags. Before I learned about dynamic websites and programming languages, I taught myself how to build static webpages with HTML and inline-css. I have built webpages and static templates of websites for over a decade. HTML as a markup language and way to structure page was also the inspiration for my undergraduate thesis about accessibility and information architecture.

CSS

After learning inline styles and the heavy usage of the <style> tag in HTML, CSS was the second iteration of scripting and markup I learned. I have been working with CSS in some capacity for over 10 years. At first, Bootstrap CSS was my best friend, because early versions of the CSS framework (Bootstrap 1 and 2) were easily readable and understandable by novices. I was able to copy and paste components from the Bootstrap documentation, look at the corresponding CSS classes, and piece together how it worked through a kind of reverse engineering. These days, I use a combination of Bootstrap for simple styles that are easy to, well, bootstrap, and I use Tailwind for more custom and complex styles.

Java

My first Java class was Sophomore year in High School. It was a self-paced, online-only, no-instruction course that I took as an elective because I had already tested out of every other computer course my small rural school had to offer (things like “Using Microsoft Office”, and “Typing 1 & 2” and “Photoshop”).

Much to my surprise, Java was actually really difficult for a sophomore in high school who didn’t know that HTML wasn’t a programming language on its own. Since then, I have worked on several small applications and programs as part of various classes and assignments in college, and I have a solid grasp of the language’s syntax, and a basic understanding of it’s language-specific features.

Git / Version Control

I went a surprisingly long time without learning any kind of version control system. Instead, being baked into the Apple OS ecosystem, I used iCloud to “sync” my code across devices, without really caring about the “versions” or differences between features and ideas. Around halfway through my first undergraduate degree, I started using Git and a student Github account as a basic “documents” folder for my code assignments, not really bothering to learn about the version part of version control.

By the time I graduated though, I had encountered situations that could have been remedied by proper git usage, and now I am in charge of enforcing versioning at my job in the Early Childhood Services Center at UNM.

While my usage of Git is far from perfect, as you can likely tell from my Github profile, I make efforts to keep my code organized and versioned so that it is easy to maintain and read. No programmer should be without it.