Dale Woods
Developer/Mr Fix It/ISTJ

// meet the guy who wants to work for you

Full-stack developer who loves to <Create>, new Innovate && Obliterate($bugs)

Senior engineer, 15+ years in. I have spent my life taking things apart and rebuilding them, from cars and custom electronics to software that serves 8 million visitors a month.

main 0 conflicts committed to this 26 years ago LVL 26PHPGoTypeScriptOpen to offers
Class
Senior Full-Stack Engineer
Experience
15+ yearsin professional software
Main stack
PHP, Go, TypeScriptplus Python and AWS
Tested at scale
8 millionvisitors a month
Status
Open to offers

My talent tree

Three specialisations, 36 talents. Hover over a talent, or tap it, to see where I earned it.

Software engineer

15 talents

Builds it: back end, front end and trading tools.

PHPLanguage, 15+ yearsMy main language since PHP 5. I have built online stores from scratch, WordPress plugins, and helped move the taste.com.au app to PHP 8.5.// News Corp, The Forex Guy, The Pod King
JavaScript and TypeScriptLanguagesPlain modern JavaScript where it is enough, TypeScript as a project grows. At News Corp I moved the analytics events module to TypeScript and removed jQuery from shared bundles.// News Corp, Lift My Boxes, TFG Accounts
GoLanguageMy first choice for new back ends. At News Corp I built, solo, the engine that matches recipe ingredients to Coles products. It also runs Beach Signal, Thunder and Lift My Boxes.// News Corp, Beach Signal, Lift My Boxes
SymfonyPHP frameworkCo-delivered the Symfony 7.4 upgrade of taste.com.au, and started the component bundle shared by four brand sites.// News Corp
ReactFront-end libraryThe front ends of Beach Signal, Thunder and Lost Item Heroes, and the interactive parts of Lift My Boxes.// Beach Signal, Thunder, Lift My Boxes
PythonLanguageData analysis and machine learning with Pandas, NumPy, TensorFlow and scikit-learn. It trains the models behind my AI-assisted trading bot.// trading research, Beach Signal, Thunder
LaravelPHP frameworkRebuilt a company's slow CRM as a Laravel 10 app, with a Tailwind front end and search-as-you-type fields.// client work
React NativeMobile appsThe phone app for Lost Item Heroes, built with Expo.// Lost Item Heroes
MQL4 and MQL5Trading languages, 15+ yearsTrading robots, custom indicators and on-screen tools for MetaTrader. The Trade Panel is my most popular tool.// The Forex Guy
WordPress and WooCommerceCMS and online storesCustom plugins: a members' area, software licences, loyalty points and review reminders. At News Corp I built editor features across four brand CMSes.// News Corp, The Forex Guy, The Pod King
Vue 3Front-end frameworkBuilt the promo-card editor for the Coles shoppable recipes platform, and rebuilt the War Room chat as a Vue 3 app.// News Corp, War Room chat
C#LanguageDesktop tools and DLLs. The first Trade Panel drew its screen in C# and talked to MetaTrader through the Windows API.// The Trade Panel
DatabasesData storageMySQL and PostgreSQL day to day. PostGIS for map data, MongoDB for the War Room chat, and Redis to cache prices on the Coles pricing API.// News Corp, Beach Signal, War Room chat
HTML and CSSMarkup and stylingResponsive layouts with flexbox and grid, Tailwind 4 and Bootstrap 5. I built most of the component library shared by four News Corp brand sites.// News Corp, client sites
AI toolingWorking with AIMCP servers that give AI assistants new abilities, and AI coding agents in my daily work. At News Corp I built the AI tagging screen in the recipe editor.// News Corp, MCP servers

DevOps and cloud

11 talents

Ships it, and keeps it running.

AWSCloud platform, 6 yearsSix years on the AWS set-up behind taste.com.au and its sister sites: servers, deploys, queues and storage.// News Corp
EC2 and custom AMIsServersImage-based deploys: each release is baked into a machine image and recorded. I added blue/green switching and automatic clean-up of old servers.// News Corp
S3File storageArchives each synced recipe version for a shopping partner. My open-source WordPress plugin sends a site's images to S3.// News Corp, WordPress plugins
SNS and SQSMessagingEvent-driven messages between services, and job queues for the recipe sync pipeline.// News Corp
CloudFormationInfrastructure as codeBatch fixes to the templates that define the food sites' infrastructure.// News Corp
LambdaServerless functionsRebuilt the Adobe Analytics reporting function for new segment rules and more than one S3 bucket.// News Corp
Linux serversOperating systemMoved servers from Amazon Linux 2 to 2023, built PHP from source, and sized PHP-FPM pools to each server's resources.// News Corp, my own servers
DockerContainersLocal development and deploys for my own projects. Lift My Boxes ships as a single Docker image.// Lift My Boxes, TFG Accounts
GitHub ActionsBuild and deploy pipelinesWrote the workflows for four brand CMSes and their front ends, plus a code-quality gate that runs Rector, PHPCS and PHPUnit.// News Corp
AnsibleServer automationRebuilt the server roles, added bootstrap, Bun and Go server roles, and made them run cleanly on CI runners. It also deploys Lift My Boxes.// News Corp, Lift My Boxes
Automated testingQualityMoved the end-to-end test suite to Playwright, 64 files, solo. Unit tests with PHPUnit.// News Corp, Lost Item Heroes

SEO and marketing

10 talents

Gets it found, and measures what works.

SEOSearch engine optimisationYears of ranking my own and clients' websites, then search work across News Corp's food sites.// News Corp, The Forex Guy, Bodology
Technical SEOSite healthRobots rules, noindex on search results, Open Graph data and language attributes across the brand sites.// News Corp
Structured dataschema.orgSite-wide JSON-LD for every page type on News Corp's food sites. I also wrote go-json-schema, with 923 schema.org types for Go.// News Corp, go-json-schema
Keyword researchSearch demandFinding what people search for, and which page should answer it. I built a scanner that finds pages competing for the same keywords.// SEO toolkit, client sites
Page speedPerformanceFaster pages rank and sell better. Speed work on my own stores and on client sites.// own stores, client sites
AnalyticsReportingGoogle Analytics on my own stores. At News Corp I ran tracking audits and rebuilt the Adobe Analytics reporting function.// News Corp, own stores
Google AdsPaid searchBuilt and managed pay-per-click campaigns for my own stores and for clients.// Bodology, Gymscriptions
Email campaignsCustomer emailCustomer groups, review reminders and back-in-stock notices, set up so the emails reach the inbox.// own stores
Facebook AdsPaid socialPaid social campaigns for online stores, with each sale reported back to the ad account.// own stores
Conversion trackingMeasurementWooCommerce plugins that report each sale to Google Ads and Facebook, so every campaign shows what it earned.// Gymscriptions, own stores

Main questline (so far)

Employment Own business Trading software Music
Now2026

Awaiting next opportunity

Senior full-stack developer: PHP, JavaScript, Go, Python and C#.

EmploymentNov 2020 to 20266 years

Senior Full-Stack Engineer

News Corp Australia

Kept a network of recipe sites running for 8 million visitors a month, built new services for it, looked after its cloud infrastructure, and mentored junior developers.

Brands I worked on

Australia's #1 cooking resource, with 50,000+ recipes. Platform upgrades, shoppable recipes, editor tools and infrastructure.

16,000+ recipes from Australian home cooks. Shared page components, analytics tracking and infrastructure.

Shared page components and content system upgrades.

Shared page components and content system upgrades.

Key achievements

ColesIntegration

Built the engine behind shoppable recipes

Readers can buy the ingredients for a recipe from Coles without leaving our sites. I built the pieces on our side that make that work, from the data to the buy button.

Ingredient matching service

A service that maps the ingredients in our recipes to real Coles products.

Internal APIs

The connections our sites use to fetch matched products and current prices.

Front-end modules

The on-page pieces that drive purchases: prices on the recipe, add to cart from a meal plan, and product badges.

Amazon Web ServicesCloud services development and maintenance

Ran the cloud infrastructure behind taste and Best Recipes

Developed and maintained the large Amazon Web Services setup that keeps the sites online.

GitHub workflows integrated with AWS

GitHub Actions workflows that build, test and release the four brands' content systems and front ends straight into AWS.

Cloud infrastructure upgrades

Updated the servers to the latest Amazon Linux, built new machine images (AMIs), and set up resources with Ansible playbooks.

Infrastructure as code

CloudFormation templates and Ansible playbooks describe the setup, so an environment can be rebuilt the same way every time.

Web server tuning

Web servers set up for each machine, with PHP built from source and its worker count sized to the hardware.

Automatic clean-up

Release scripts that remove old test servers and unused server groups.

SNS, SQS and Lambda functions

Event-driven services that pass work between systems, including a rebuilt analytics reporting function.

EC2S3SQSSNSLambdaDynamoDBCloudFormationAuto ScalingAnsibleDockerGitHub Actions

Bug troubleshooter

The person hard bugs get sent to. I trace problems across many codebases to the real cause, then design a solution that stops them coming back.

Turned ideas into technical plans

Worked with product managers to shape business ideas into designs the team could build, and explained them to stakeholders and engineers alike.

Modernised an ageing platform

Co-delivered the upgrade of taste.com.au to current software versions, cleaning up 605 files with the tests passing throughout.

Show 5 more achievements

Rebuilt the automated testing

Moved all 64 browser tests to a modern tool, and added quality checks that run on every code change.

One design toolkit for four brands

Started and built most of a shared set of page components used by four brand sites.

Better tools for editors

Multiple authors on one byline, scheduled editor's picks, and AI-assisted tagging in the recipe editor.

Improved search visibility

Added the structured data search engines read to every page type across the network.

Mentored the team

Coached junior developers and set engineering standards for code quality.

Skills usedGoPHPSymfonyWordPressAWSAnsibleGitHub ActionsPlaywright
Own business2018 to 20202 years

Co-founder and lead developer

The Pod King eCommerce startup, US market

Ran both the technical side and the marketing. The business closed when US federal regulations changed.

Key achievements

The Pod KingBrand and store, built from scratch

Built an online store and its brand from nothing

A WordPress and WooCommerce store that ran on a theme and plugins I wrote myself.

1,000+ orders in its first three months.

The Pod King home page
Custom theme and plugins

A custom store theme, plus my own plugins for search, sales reporting, marketing and ad tracking.

eCommerce tracking

Enhanced eCommerce tracking and Google Ads conversion tracking, so every sale could be traced to its source.

Analytics

Sales reports down to each product option, alongside search performance data from Google.

SEO

Landing pages built for search, structured product data and page-by-page tuning, in a highly competitive market.

Brand creation

Built the brand from a blank page: the name, the identity and the store design.

Profit-share accounting

Store software that worked out each partner's share from cost data and produced the invoices.

Skills usedPHPWordPressWooCommerceSEOGoogle AdsGoogle Analytics
Own business2017

Affiliate partner and developer

Gymscriptions Affiliate store for a supplement business, Australian market

Ran an online store as an affiliate of a friend's supplement business. I built the store, brought in the customers and did the numbers.

Key achievements

GymscriptionsAffiliate store

Built the store, the marketing and the software that split the profit

A WordPress and WooCommerce store. I wrote the accounting plugins, did the search engine work, ran the advertising and tracked every sale back to its source.

The store's order processing screen, showing two test orders with buttons to print invoices and shipping labels
Order screen from the store's admin area. Test orders only.
Accounting plugins

Plugins I wrote to work out the cost of every order and split the profit between the partners.

SEO

Set up and tuned the store's pages so shoppers could find it in search results.

Pay-per-click advertising

Planned and ran the paid advertising campaigns that brought shoppers to the store.

Conversion tracking

Tracking that tied each sale to the ad or search that produced it, so the budget went where it paid off.

Skills usedPHPWordPressWooCommerceSEOPPC advertisingConversion tracking
Trading software15+ years, still runningFull-time from 2016 to 2018

Founder and developer

The Forex Guy My own Forex trading site, theforexguy.com

Forex trading has been a passion of mine for more than 15 years. I build trading tools and trading robots, and run the site and its members' area.

Key achievements

The Forex GuyTrading tools and members' area

15+ years building tools and robots for currency traders

My own site, software and members' area. I specialise in MQL5, the programming language of the MetaTrader trading platform.

The Forex Guy home page
theforexguy.com today.
Trading robots

Automated trading strategies and custom market indicators written in MQL5, where speed and careful use of memory matter.

Trading tools

On-screen tools traders use to place and manage orders, with the risk worked out for them. The Trade Panel is my most popular.

Members' area

The War Room, a members' area that has run for more than 15 years, on a membership system I built and maintain.

AI-assisted trading bot

A multi-currency trading bot guided by a machine learning model, trained on my own data with Python and MetaTrader 5.

Skills usedMQL5MQL4C#C++PythonRisk management
Employment2009 to 20156 years

Developer and digital marketer

Bodology Supplement store, Australia

Helped the owner of a supplement store build his website, then tuned it to sell his products online.

Key achievements

BodologyOnline store

Took a supplement store online and made it sell

Built the store's website with the owner, then kept improving it: shipping, advertising and search.

The Bodology home page in 2011
bodology.com.au in 2011, from the Internet Archive.
Online store

Created the website and set it up so customers could order and pay online.

Australia Post labels

Made custom postal labels for the store's Australia Post integration.

Pay-per-click campaigns

Ran the paid advertising campaigns that brought shoppers to the store.

SEO improvements

Improved the site's pages and structure so it ranked better in search results.

Skills usedPHPDrupalMySQLJavaScriptSEOPPC advertising
Show 4 earlier roles, 2000 to 2013
Music2003 to 2013

Night club DJ, Wollongong

Resident DJ at several venues. Good training for staying calm in front of a crowd.

Employment2003

Light vehicle mechanic, Shell Auto Care

Fuel injection diagnostics and full overhauls. Where the habit of finding the real cause comes from.

Employment2002

Mobile computer repair, self-employed

On-site repairs and upgrades for homes and small businesses.

Employment2000

Junior computer technician, Computer Town Australia

Built and repaired desktop computers from parts.

Some of My Side Quests...

Projects I built in my own time.

beach-signalWeb app, live
Beach Signal: a map of Sydney's beaches, each marked with a score. A side panel shows Bondi Beach scoring 9.2 out of 10, a chart of its score over the coming days, and current waves, swell, wind and tide.

Beach Signal

The treasure hunter's forecast.

A forecast map for metal detecting. Storms strip sand off beaches and uncover what was lost in it. Beach Signal shows where and when.

GoPostgreSQLPostGISReactMapLibrePython

Visit beachsignal.com.au

  • Scores every beach from 0 to 10, hour by hour, on a map with a timeline.
  • Each beach has its own forecast: its score over the coming days and the strongest signal ahead.
  • Current conditions for each beach: waves, swell, wind and tide.
  • Scores worked out from wave power, storm length, tides and each beach's history of erosion.
  • Saved beaches and alerts for signed-in users.
lift-my-boxesWebsite, live
Lift My Boxes home page: Know what your move will cost before you call a mover, with a form asking where you are moving

Lift My Boxes

A moving cost calculator: an estimate in about 60 seconds, with no email needed.

  • Covers homes, apartments and specialty items such as pianos and pool tables.
  • Pages built on the server in Go, with React only for the calculator.
GoReactTypeScriptVite

Visit liftmyboxes.com

thunderWeb app, in progress
Thunder: a dark map of eastern Australia with a bright band of storm risk running from Queensland down to Sydney

Thunder

Built out of my passion for extreme weather. Thunder processes weather data to forecast where the severe weather will be.

  • Forecast maps of where severe storms are most likely, worked out from global weather model data.
  • Notifications about upcoming storms.
  • AI that explains the conditions that will create the weather, and helps pick the best place to position for the view.
GoPythonPostgreSQLTimescaleDBReactMapLibre
lost-item-heroesJob marketplace
Lost Item Heroes home page: Lost it? Get a detector on it, beside a drawing of a beach with a search path spiralling out from a pin

Lost Item Heroes

A job marketplace that connects people who have lost something with a recovery specialist and their metal detector. Think of a lost ring at the beach.

  • Works like DoorDash or Upwork: the app is the agent that connects the client with someone who can help.
  • The client compares offers and books one. The payment is held until the job ends.
GoPostgreSQLReactReact NativeStripe
seo-toolkitLibrary and tools
r := &schema.Recipe{}
r.Name = schema.Texts("Lemon herb chicken")
r.Author = schema.Vals(author.Ref())
tag, _ := schema.ScriptTag(graph)

A few lines describe a recipe and its author to a search engine.

SEO toolkit

My own tools for getting websites found in search.

  • go-json-schema: every schema.org type for Go, 923 types and 1,540 properties. Public code.
  • Link graph builder: draws a site's internal links as an interactive map.
  • A WordPress SEO plugin, and a scanner for pages that compete for the same keywords.
GoTypeScriptPHPschema.org

Read go-json-schema on GitHub

tfg-accountsSign-in service
Website Forum Chat room Store One account

TFG Accounts

One account that stays in step across The Forex Guy's website, forum, chat room and other properties.

  • A sign-in service built on Better Auth, using signed tokens (JWT) that each property trusts.
  • Also issues the licence keys for the trading tools.
TypeScriptBetter AuthJWTPostgreSQLDocker
war-room-chatChat app
The War Room chat: world clocks and trading session times above a member's shared price chart. Member names are blurred.

War Room chat

Live chat for the members of The Forex Guy.

  • Image sharing, quotable messages, replies, emoji reactions and GIF search.
  • A Go server that delivers each message the moment it is sent.
GoWebSocketsVue 3MongoDB
the-trade-panelTrading tool
The Trade Panel: a window of trade settings over a price chart, with buy and sell buttons

The Trade Panel

Places and manages trades, with the risk worked out for the trader.

  • Second generation, rebuilt from the ground up.
  • Calculates a pre-determined risk for the user on every trade.
  • Lots of trade management tools, including stops that follow a trend line.
MQL5MetaTrader 5
mcp-serversAI tools
marketing-brainMarketing tactics library
transcribe-youtubeVideo transcripts
thanos-claudeMy AI set-up, as code

Tools for AI assistants

Add-ons that give AI coding assistants new abilities.

  • Marketing Brain: a searchable library of marketing tactics, ranked by evidence.
  • A YouTube transcript reader and my AI coding set-up, both public.
TypeScriptPythonMCP

Read the code on GitHub

wp-pluginsOpen-source plugins
wp-surreal-db-syncContent to a database
wp-s3-bucket-syncImages to cloud storage

WordPress plugins

Plugins that connect WordPress to other systems.

  • Copies a site's content into a SurrealDB database and keeps it in step.
  • Sends images to Amazon S3 for faster delivery, converting them on the way.
PHPWordPressSurrealDBAWS S3

Read the code on GitHub

Dale Woods lore

The person behind the code: personality and education.

Woods, D.

Personnel file Daz007Eyes only: recruiters and hiring managers

Dale Woods

Full-stack developer, fixer of things

Dale Woods, also known as Mr Fix It, is a full-stack developer from Australia. He has spent his life taking things apart and rebuilding them, from cars and custom electronics to large software systems.

Personality psych evaluation

Dale is an ISTJ, one of the sixteen Myers-Briggs personality types. ISTJs are known for being practical, thorough and dependable. In his own words:

Honest and directIf somebody asks me a question, I like to shoot straight with an honest answer based on facts.

Responsible and trustworthyI treat every task given to me seriously. I have a strong drive to deliver on my responsibilities.

Thirst for knowledgeI love to know how everything works, so I can create, innovate and maintain the things around me.

Known Associate my dog

Bruce. Loyal, friendly, and easily bribed with nuggets.

Exhibit A. Bruce at home.Photo 1 of 4

Training training record

  • Certificate IV in Manufacturing TechnologyElectronic circuit theory and design, interfacing software with microcontrollers, robotics, and low-level programming in C and C++.
  • Certificate III, Light Vehicle MechanicThe academic part of the mechanic trade: mechanical principles, hydraulics and electrical systems.
  • High School Certificate1996 to 2000.

Fun Facts field notes

  • Was a resident night club DJ in Wollongong from 2003 to 2013.
  • Chases big storms, and built an app to forecast where they will be.
  • Has been trading Forex for more than 15 years.
  • Built a forecast that tells treasure hunters when storms uncover lost jewellery on beaches.

My life mottos

// thanks for checking out my character profile

Next quest: your team?

I look forward to the opportunity of working with you. Book a call or send me a message.

Open to offers

Contact details