Professional

Merchant Image Proxy

· Pricesearcher

Mountain image tiles passing through resize brackets into landscape and portrait images.

Problem

Pricesearcher displayed product images hosted by merchants, with differing URL formats and image-serving behaviour. The site needed a common endpoint for image requests, resizing and caching.

Architecture

The service was the company’s fork of willnorris/imageproxy, exposed as a signed company-domain endpoint and deployed on AWS Lambda behind API Gateway. Terraform managed separate staging and production environments.

What I built

  • Maintained and customised the existing Go fork.
  • Added options to pass through the original image or return no image when processing failed, instead of always using the default placeholder.
  • Fixed decoding and encoding behaviour that corrupted proxied URLs containing special characters.
  • Aligned the Terraform version with the deployments’ remote state.

Engineering decisions

  • The implementation extended the upstream proxy rather than replacing its existing resizing and caching behaviour.
  • Fallback behaviour was configurable between the original image, no image and the upstream default placeholder.

Technologies

Go, AWS Lambda, API Gateway, Terraform, Docker, Jenkins.

Results

The customisations addressed malformed image URLs and gave the site more control over fallback behaviour within its existing image service. The company-domain endpoint standardised how the site requested images, while still depending on the merchant’s source URL remaining available.

Have a Python, AI or automation problem?

Tell me what is slowing the business down, what you have tried, and what a successful outcome looks like. I'll help you identify the most sensible next step.