I am a web dev based in Cleveland, Ohio who is open to moving and remote projects. I work primarily in JavaScript, PHP, HTML, CSS3 and MySQL, with some experience with REACT and GraphQL. Clean, reliable code, Agile project management, focused work ethic and and good eye for graphic design help me build solid and engaging web apps.
Below are a few samples of my own work and writing on various code-related subjects. Another example of my work is this website you are reading this on. I designed and built on the WordPress framework along with creating all of the visual elements including the images (unless otherwise credited).
A quick highlight: I made a complete JavaScript interactive Cheat Sheet that is both a cheat sheet and full learning tool. Toggling between the Learn and Cheat Sheet modes shows or hides detail, making it a great tool for finding quick info and then expanding the detail as needed.
Similarly, my Interview Questions tool helps simulate a coding interview environment, which over 600 possible coding question randomly chosen and answers timed. It is filterable, so we can focus on larger algorithm and data-structure questions, or just take light simple answer questions.
In addition, I frequently build little coding projects to explore some new territory or just for fun. Check those out here.
Do you need a dedicated and skilled developer for long-term employment or project-based contracts? Yes? Awesome! Hire me by reaching out here.

Tool to Find Every Method on Every JavaScript Object
Ever wonder exactly which methods are available on every JavaScript object? I did, plus I wanted to write a post listing all of them with links to more detail for each. So, I needed a tool. This is that tool.This tool will grab the available JavaScript objects and list each with every method available on… MORE q




Crazy Cool Loaders Part One
Loaders suck. Seeing one means we are waiting...and waiting sucks. Can a loader be cool enough that we forget we are waiting? Perhaps even so crazy-cool and interesting we don't want it to go away? Maybe even so hypnotizing we just want more?Well, I doubt it, but I tried. These seem fun and a more… MORE q




Interview Questions List
This list provides access to all of the questions used in the Interview Questions tool. There are filters and search options. The filters will filter first by level, Basic or Advanced, then by topic within those levels. The search option will always search the complete list and remove any filters This ensures a complete list… MORE q




Every Method on globalThis in JS
n JavaScript, globalthis carries a long list of methods. This page is meant to serve as a companion to the JS Methods article. There we have every method in JavaScript sorted by the object the method is attached to. The only thing not included there is globalThis. Given the 1,500+ methods on globalThis, and the fact that they are all MORE q




All Errors in JavaScript
Error: Permission denied to access property "x"InternalError: too much recursionRangeError: argument is not a valid code pointRangeError: invalid array lengthRangeError: invalid dateRangeError: precision is out of rangeRangeError: radix must be an integerRangeError: repeat count must be less than infinityRangeError: repeat count must be non-negativeReferenceError: "x" is not definedReferenceError: assignment to undeclared variable "x"ReferenceError: can't access… MORE q




Spread & Rest in JavaScript
The spread operator allows for an Object's properties to be filled into a another object right in line with existing properties. Likewise, this can fill one array in another array keeping the values in line with existing values. Spread const aNewObject = {...oldObject} const aNewArray = [...oldArray] Rest The rest parameter an array made MORE q




Map Data Structure in JavaScript
The Map object holds key-value pairs like a standard object. There are a few significant differences between Map and a regular key-value pair object. These are: Objects: Keys must be obtained and used to iterate over. Map: This is iterable, meaning we can directly iterate. Objects: The key can only be an integer, string, or symbol. Map: Key field can be of any data-type including objects and functions. Objects: Retrieving size is a manual process. Map: The size property hold this info. Objects: Iterating will not always return keys in MORE q




Patterns in JavaScript
There are a variety of common situations and obstacles programmers deal with. Over time many design patterns emerged that nicely addressed these common issues. Of these, there are four patterns that MORE q




Asynchronous Code with JS
A promise returns the same data as a callback function, but can await the reply. With this, when there is a delay receiving data, the syntax is nicer and the better error handing. Most importantly, the browser can continue processing the page and then fill in the delayed data whenever it is ready. The above allows for JavaScript to step away from the normal synchronous processing order, which is running commands one after the other in the order MORE q