{
    "$schema": "https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json",
    "basics": {
        "name": "Tom Gould",
        "label": "Development Lead at Bright Sites",
        "url": "https://www.dealmobile.co.uk/",
        "summary": "I\u2019m the Development Lead at Bright Sites, whose publishing software is used by more than 200 publishers, including The Independent and the Evening Standard. I joined in October 2015 as a senior developer on those two sites, and since 2021 I\u2019ve led development on Flow and Storycue. Before that I spent eight years building and leading web projects, including as lead developer at Wonga and the sole developer on Turner\u2019s TV channel sites. I plan and estimate, lead teams and still write code. In my own time I build and publish apps and open-source libraries in PHP, TypeScript and Python.",
        "location": {
            "city": "London",
            "countryCode": "GB"
        },
        "profiles": [
            {
                "network": "GitHub",
                "username": "tomgould",
                "url": "https://github.com/tomgould"
            },
            {
                "network": "LinkedIn",
                "username": "tom-gould-14332316",
                "url": "https://www.linkedin.com/in/tom-gould-14332316/"
            }
        ]
    },
    "work": [
        {
            "name": "Bright Sites",
            "position": "Development Lead",
            "url": "https://www.brightsites.co.uk",
            "startDate": "2021",
            "summary": "Bright Sites makes software for newsrooms and publishers: Flow, a CMS, and Storycue, for content recommendations and planning. Its clients include The Independent, the Evening Standard, The Star and The Scotsman. I lead development on Flow and Storycue: planning and estimating the work, leading the team and still writing code."
        },
        {
            "name": "Bright Sites",
            "position": "Senior Developer",
            "url": "https://www.brightsites.co.uk",
            "startDate": "2015-10",
            "endDate": "2021",
            "summary": "I joined as a senior back-end developer on The Independent and Evening Standard websites, about six weeks after they moved to a new platform. I mainly built new features and tuned the existing code, keeping the sites fast under heavy traffic on a news platform that changes all day, in a very agile team."
        },
        {
            "name": "Turner Broadcasting System",
            "position": "Web Developer",
            "startDate": "2014-06",
            "endDate": "2015-10",
            "highlights": [
                "I looked after the sites behind Turner\u2019s TV channels on my own, including Cartoon Network, Boomerang, Cartoonito and Boing, a job a team of six permanent staff had done before.",
                "I built new features, maintained the sites, sped up their slow parts and ran the deployment schedule and process.",
                "I rebuilt the Cartoonito and Boing sites. Cartoonito was a complete rebuild: I imported all the content from the old site and worked closely with a designer so both sites looked and worked well on mobile devices.",
                "I reported to the channels\u2019 product owners and the digital media technology supervisor, interviewed applicants, planned new builds and helped internal and external clients with work beyond the channel sites."
            ]
        },
        {
            "name": "Wonga",
            "position": "Lead Developer",
            "startDate": "2012-08",
            "endDate": "2014-03",
            "highlights": [
                "I was the lead developer on the website\u2019s projects, in a large agile team of mostly C# developers, product owners and business stakeholders. I estimated, planned, built, tested and reviewed the work, and represented the website in quarterly and sprint planning.",
                "I led the web development of PayLater, a new point-of-sale product.",
                "I prepared a new PHP site to replace the old .NET wonga.com, then extended it with new features, including an instalment loan to replace the original single-repayment loan."
            ]
        },
        {
            "name": "Tigerfish",
            "position": "Back-End Developer",
            "url": "https://tiger-fish.com",
            "startDate": "2010",
            "endDate": "2012-08",
            "highlights": [
                "I was a back-end developer in a small team of three developers and two designers, looking after around 100 client sites.",
                "I talked to clients about what they needed, then planned, estimated and delivered new projects, and supported and maintained the existing ones.",
                "Most of the work was client management, planning and custom development."
            ]
        },
        {
            "name": "eCommerce Associates",
            "position": "ASP and Web Developer",
            "startDate": "2007",
            "endDate": "2010",
            "highlights": [
                "I joined on a three-month contract that lasted nearly three years.",
                "I programmed in classic ASP and ran the existing group of affiliate sites, and built new search-friendly sites to earn affiliate revenue.",
                "I handled every part of each site: planning, briefing the designers, finding and managing content, programming, deployment and hosting.",
                "Most of the work was consumer sites built around search engine optimisation, before Google\u2019s Panda updates changed the rules."
            ]
        },
        {
            "name": "Summit Media",
            "position": "Online Marketing Manager",
            "url": "https://www.summit.co.uk",
            "startDate": "2004",
            "endDate": "2007",
            "summary": "I joined Summit Media in 2004, new to online media. There I found my interest in marketing and web strategy and started learning the skills I use today. I worked on the pay-per-click campaigns for Play.com and Gameplay.com, managed affiliates for Gifts.co.uk and worked on the SEO of sites Summit managed."
        }
    ],
    "skills": [
        {
            "name": "Languages",
            "keywords": [
                "PHP",
                "JavaScript",
                "TypeScript",
                "Python",
                "SQL",
                "HTML",
                "CSS"
            ]
        },
        {
            "name": "Back end",
            "keywords": [
                "Composer",
                "PHPUnit",
                "PHPStan",
                "PSR HTTP standards",
                "cURL",
                "Drupal"
            ]
        },
        {
            "name": "Front end",
            "keywords": [
                "Vite",
                "jQuery",
                "Chart.js",
                "Theme development",
                "Responsive design",
                "Progressive web apps",
                "Accessibility (WCAG)"
            ]
        },
        {
            "name": "Data and APIs",
            "keywords": [
                "REST APIs",
                "JSON",
                "XML",
                "MySQL",
                "MariaDB",
                "HMAC request signing"
            ]
        },
        {
            "name": "Testing",
            "keywords": [
                "Playwright",
                "Vitest",
                "Jest",
                "pytest",
                "Selenium",
                "axe-core"
            ]
        },
        {
            "name": "Infrastructure and delivery",
            "keywords": [
                "Linux",
                "Ubuntu",
                "Apache",
                "Nginx",
                "AWS",
                "Cloudflare",
                "Cloudflare Workers",
                "DDEV",
                "Docker",
                "Git",
                "GitHub Actions",
                "Jenkins",
                "Maven",
                "New Relic",
                "Continuous integration",
                "Continuous delivery"
            ]
        },
        {
            "name": "Publishing",
            "keywords": [
                "Apple News",
                "Apple News Format",
                "Google AMP",
                "Facebook Instant Articles",
                "RSS",
                "Atom",
                "iCalendar",
                "tus",
                "Brightcove",
                "Kaltura"
            ]
        },
        {
            "name": "Ways of working",
            "keywords": [
                "Agile",
                "Estimating",
                "Planning",
                "Leadership",
                "Code review",
                "Jira",
                "Confluence",
                "Open source"
            ]
        },
        {
            "name": "Other",
            "keywords": [
                "Affiliate marketing",
                "BeautifulSoup",
                "Classic ASP",
                "Crucible",
                "FFmpeg",
                "OpenCV",
                "Pay-per-click advertising",
                "Scrapling",
                "SEO",
                "SVN",
                "Waterfall"
            ]
        }
    ],
    "projects": [
        {
            "name": "Where Should I Live",
            "description": "Rank cities around the world by what you\u2019d keep after tax, what a month costs, which visas you can get and how each place fits the way you live.",
            "url": "https://www.dealmobile.co.uk/products/where-should-i-live",
            "startDate": "2025",
            "keywords": [
                "JavaScript",
                "Vite",
                "Chart.js",
                "PHP",
                "Drupal",
                "MariaDB",
                "Playwright",
                "PHPUnit",
                "axe-core",
                "DDEV",
                "Cloudflare"
            ],
            "roles": [
                "Author"
            ],
            "type": "app",
            "entity": "Personal project",
            "links": [
                "https://tax.dealmobile.co.uk",
                "https://tax.dealmobile.co.uk/sources.html",
                "https://tax-old.dealmobile.co.uk"
            ]
        },
        {
            "name": "Solar Calendar",
            "description": "A calendar of 13 identical 28-day months, with each year starting on the first Monday on or after the spring equinox.",
            "url": "https://www.dealmobile.co.uk/products/solar-calendar",
            "startDate": "2025",
            "keywords": [
                "TypeScript",
                "Vite",
                "Vitest",
                "Playwright",
                "axe-core",
                "Cloudflare Workers",
                "Progressive web apps",
                "iCalendar"
            ],
            "roles": [
                "Author"
            ],
            "type": "app",
            "entity": "Personal project",
            "links": [
                "https://solar.dealmobile.co.uk",
                "https://github.com/tomgould/solar-calendar"
            ]
        },
        {
            "name": "Apple News API",
            "description": "A PHP client for publishing articles to Apple News, with a document builder for the whole Apple News Format.",
            "url": "https://www.dealmobile.co.uk/products/apple-news-api",
            "startDate": "2025",
            "keywords": [
                "PHP",
                "Composer",
                "PSR HTTP standards",
                "HMAC request signing",
                "PHPUnit",
                "PHPStan",
                "GitHub Actions",
                "Apple News",
                "Apple News Format"
            ],
            "roles": [
                "Author"
            ],
            "type": "library",
            "entity": "Personal project",
            "links": [
                "https://applenews.dealmobile.co.uk",
                "https://github.com/tomgould/Apple-News-API",
                "https://packagist.org/packages/tomgould/apple-news-api"
            ]
        },
        {
            "name": "TurboPush",
            "description": "Upload large files from the browser in chunks that survive dropped connections and page reloads, with a PHP endpoint that checks and reassembles them safely.",
            "url": "https://www.dealmobile.co.uk/products/turbopush",
            "startDate": "2025",
            "keywords": [
                "TypeScript",
                "PHP",
                "Composer",
                "tus",
                "Jest",
                "PHPUnit",
                "Docker",
                "GitHub Actions"
            ],
            "roles": [
                "Author"
            ],
            "type": "library",
            "entity": "Personal project",
            "links": [
                "https://turbopush.dealmobile.co.uk",
                "https://github.com/tomgould/TurboPush",
                "https://packagist.org/packages/tomgould/turbopush"
            ]
        },
        {
            "name": "Puzzler PHP SDK",
            "description": "An unofficial PHP client for the Puzzler Media puzzles API, with signed requests and clear errors.",
            "url": "https://www.dealmobile.co.uk/products/puzzler-php-sdk",
            "startDate": "2025",
            "keywords": [
                "PHP",
                "cURL",
                "Composer",
                "PHPUnit",
                "GitHub Actions",
                "REST APIs"
            ],
            "roles": [
                "Author"
            ],
            "type": "library",
            "entity": "Personal project",
            "links": [
                "https://github.com/tomgould/PuzzlerPHPSDK",
                "https://packagist.org/packages/tomgould/puzzlerphpsdk"
            ]
        },
        {
            "name": "RSS to JSON",
            "description": "A small PHP library and command-line tool that turns RSS, Atom and media feeds into clean JSON, and fetches remote feeds safely.",
            "url": "https://www.dealmobile.co.uk/products/rss-to-json",
            "startDate": "2025",
            "keywords": [
                "PHP",
                "XML",
                "JSON",
                "RSS",
                "Atom",
                "cURL",
                "Composer",
                "PHPUnit",
                "PHPStan",
                "GitHub Actions"
            ],
            "roles": [
                "Author"
            ],
            "type": "library",
            "entity": "Personal project",
            "links": [
                "https://github.com/tomgould/rss-to-json",
                "https://packagist.org/packages/tomgould/rsstojson"
            ]
        },
        {
            "name": "ScrapePy",
            "description": "A Python web scraper that saves whole sites for offline reading and can turn them into Markdown.",
            "url": "https://www.dealmobile.co.uk/products/scrapepy",
            "startDate": "2026",
            "keywords": [
                "Python",
                "Scrapling",
                "BeautifulSoup",
                "pytest"
            ],
            "roles": [
                "Author"
            ],
            "type": "tool",
            "entity": "Personal project",
            "links": [
                "https://github.com/tomgould/ScrapePy"
            ]
        },
        {
            "name": "Scrape",
            "description": "A PHP class that downloads files from web servers with directory listings turned on, and my oldest public repository.",
            "url": "https://www.dealmobile.co.uk/products/scrape",
            "startDate": "2013",
            "keywords": [
                "PHP",
                "cURL"
            ],
            "roles": [
                "Author"
            ],
            "type": "tool",
            "entity": "Personal project",
            "links": [
                "https://github.com/tomgould/Scrape"
            ]
        },
        {
            "name": "Reelify",
            "description": "An experiment that turns long screen recordings into short summary videos, by cutting idle time and speeding up quiet stretches.",
            "url": "https://www.dealmobile.co.uk/products/reelify",
            "startDate": "2026",
            "keywords": [
                "Python",
                "OpenCV",
                "FFmpeg",
                "pytest"
            ],
            "roles": [
                "Author"
            ],
            "type": "experiment",
            "entity": "Personal project",
            "links": [
                "https://github.com/tomgould/Reelify"
            ]
        }
    ],
    "references": [
        {
            "name": "Rob Pestridge",
            "reference": "He has been nothing but a pleasure to deal with and has always been a positive influence on those around him."
        }
    ],
    "meta": {
        "canonical": "https://www.dealmobile.co.uk/cv.json",
        "version": "v1.0.0"
    }
}