Hi, I'm
Joshua Hayes
Full-stack developer and technical SEO.
I started in automotive digital marketing, running SEO and paid search for a 13-dealership group. When the tools we had could not solve our problems, I taught myself to build the ones we needed. Today I own a production SaaS end to end.
How I got here
I started in the BDC at World Car Auto Group, then moved into SEO and paid search, then into development. That path means I look at a problem from the business side first, and only then decide what to build.
These days that means React and Node/Express on PostgreSQL and AWS, Go feeds that keep ad platforms in sync with inventory, and city-targeted pages with schema.org markup and analytics set up end to end.
How I work
-
Business first
I work out what the people using the software are trying to accomplish before I choose a tool.
-
Tests before code
I write parameterized tests first, then the code, and I review every change before it is committed.
-
Persistent
Stubborn about the problem, flexible about the solution. I keep going until it works.
Where I have worked
-
- Translate business requirements into database and infrastructure architecture, breaking projects into technical tasks and managing sprints.
- Develop React features and Node/Express REST APIs on PostgreSQL, including Stripe webhook integrations.
- Architect custom email infrastructure and worker queues.
- Implement Prometheus, Grafana, and PostHog monitoring with automated error-threshold alerts.
- Built AWS staging and production environments, with releases tested against staging restored from the latest production backup.
- Resolved Prometheus high-cardinality and Nginx performance issues; optimized client-side image processing to publish 70+ photos in under 2 minutes.
- Built the custom WordPress theme for the marketing site (reamp.co).
Stack: PostgreSQL, Valkey, React, TanStack, Docker, AWS, Nginx
-
- Built a Django website with city and county pages and JSON-LD markup for search reach, and a Google Data Studio KPI tracker fed by Google Apps Script that normalized caller data into metrics.
- Developed and maintained a multi-threaded data collection scraper that gathered public records to inform business decisions.
- Built a phone scrubber on the Trestle API: upload a CSV, fan in to a rate-limited queue, export a cleaned CSV.
Stack: Python, Django, MySQL, HTMX, Selenium, Playwright, Node.js
-
- Built a vehicle page script that matched on-page pricing and legal disclaimers to each ad's offer via a URL parameter, and a market-pulse scraper tracking competing inventory and price deltas.
- Built a Go ETL pipeline and API that syncs vehicle inventory to Google and Facebook ad platforms, still used for inventory marketing.
- Ran SEO for 13 dealerships: city-based strategy, custom pages with structured URL naming for Google Search Console and GA4 tracking, and maintenance and reporting automated in Google Apps Script.
- Managed Google and Bing ad accounts with $10K to $40K monthly budgets across all 13 stores, with bi-weekly CPL and conversion reports and Google Ads scripts that enforced budgets and cleaned up search terms.
Stack: Go, MySQL, JavaScript, Python, Selenium, Google Ads, GA4, Apps Script
What I work with
- Languages
-
- Go
- Python
- JavaScript
- TypeScript
- SQL
- REST APIs
- Automated testing / CI
- Web
-
- React
- HTML
- CSS
- Tailwind CSS
- WordPress
- Django
- Apps Script
- Backend and servers
-
- Node.js / Express
- AWS (EC2, S3, VPC)
- Docker
- Nginx
- Linux
- Git
- Data and monitoring
-
- PostgreSQL
- MySQL
- Prometheus
- Grafana
- SEO and analytics
-
- Technical SEO
- JSON-LD / Schema.org
- Google Search Console
- GA4 / Tag Manager
- Google Ads
- Screaming Frog
- Google Data Studio
Things you can inspect
The SEO sites are live, so view the page source to see the markup. The code projects are on my own Forgejo server: browse all repositories.
- World Car Careers SEO Job listings for a dealership group, with a base page for every job and city-targeted variants that each carry their own title, heading, description and JobPosting markup. Averaged about 460 users per month over nine months, and 451 unique users submitted applications, per GA4. SvelteKitDirectusMySQLschema.org JobPosting
- Casey The Home Buyer SEO A Django site with state, county and city landing pages. Each page has its own title, description, canonical URL and schema.org JSON-LD. DjangoJSON-LDCanonical URLs
- RE/AMP marketing site Code Custom WordPress theme I built for the marketing site of the RE/AMP platform, the SaaS I lead development on. WordPressCustom theme
- Botprofiles CS:S Code Go command-line tool that generates Counter-Strike: Source bot profiles from a JSON config and CSV word lists. Seeded and reproducible, 65 tests, CI. GoCLICI
- Brazen Code Django user-management portal with email invites, password reset, and user, manager and admin roles enforced on the backend. Security-reviewed, 27 tests. DjangoAuthTesting
- Committy Code Python CLI that builds Conventional Commits messages from flags and runs git commit. 16 tests. PythonCLIGit
- Createpass Code Python CLI password generator built on the secrets module, with batch, exclusion and hex modes. PythonCLISecurity
Certifications
- Google Ads Search Certification Valid Oct. 2026 to Oct. 2027
- Google Analytics Certification Valid Oct. 2026 to Oct. 2027