My Software Is...
Performant
Intuitive
Responsive
Dynamic
I Have Experience With...
HTML5
CSS3
English
BBQ
JavaScript
Bootstrap
Spanish
React
jQuery
Git
Linux
NodeJS
Express
SASS
MongoDB
Drupal
Guitar
GoLang
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)