Hi, I'm Tom!

Full Stack Software Developer, Designer, Problem-Solver

My Software Is...

Performant

My apps and websites are optimized for perceived speed and snappiness.

Intuitive

Utilizing design standards I create drop-dead simple user interactions.

Responsive

Apps and sites should look beautiful and work perfectly on all screens.

Dynamic

Fetching, collating, and rendering dynamic data is a must for modern apps!

I Have Experience With...

HTML Icon HTML5
99%
CSS Icon CSS3
99%
English Language Icon English
99%
Barbecue Icon BBQ
99%
JavaScript Icon JavaScript
90%
Bootstrap Icon Bootstrap
90%
Spanish_Language Icon Spanish
85%
React Icon React
85%
JQuery Icon jQuery
85%
Git Icon Git
85%
Linux Icon Linux
80%
NodeJS Icon NodeJS
80%
Express Icon Express
80%
SASS Icon SASS
75%
MongoDB Icon MongoDB
75%
Drupal Icon Drupal
65%
Guitar Icon Guitar
60%
GoLang Icon GoLang
45%

Contact Details...

Please shoot me an email if you are interested in working together. Questions and general enquiries are welcome but please no spam or recruiters (recruiters can find me on LinkedIn).

Software Developer Journey

Early Learning and Application

  • Hello World - First Static Website
  • Adding Styles With CSS
  • Adding Interactivity via HTML Elements (e.g.: form, button, prompt)
  • Adding Interactivity via JavaScript (e.g.: event handling, dynamic DOM updates
  • Fetching Scripts From Other Sites/CDNs (e.g.: fontawesome, jquery, bootstrap)
  • Fetching Data From Other Sources (e.g.: remote database, API retrievals)

Discovering What's Out There And Piecing It Together

  • Using Dynamic Data to Create Simple WebApps (e.g.: weather data fetch and display, random X of the day)
  • Local Authentication and User Accounts (consider: local auth via database w/bcrypt, server sessions, CORS)
  • Third Party Authentication (consider: OAuth, JWT)
  • Module and Package Management and Locking (e.g.: npm/x, yarn, go mod/get, ruby gem)
  • Distributed Version Control Systems (consider: git, merges, pull requests, branching model)
  • Version Control Data Stores (e.g.: github, bitbucket)
  • Coordination and Distribution of Work in a Distributed Team

Settling Structures Into Mental Models and Using Them To Compose New Systems

  • Releases, Version Locking, Containers (consider: Docker, CI/CD pipelines, travis, yaml)
  • Recognition of Patterns in Software Development
  • Reading Theory and Applying Design Patterns
  • Coalescing Design Patterns into Components
  • Application Performance Monitoring (consider: tooling, low-impact monitoring and exfiltration, data combinatorics)

Moving Up The Hierarchy and Realizing Decisions Involve Tradeoffs

  • Systems Architecture Design
  • High Availability (consider: database sharding, concurrency, elixir)