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.