Senior engineering inside a marketplace search stack
I joined Candy.io as a Senior Software Engineer for a focused engagement on marketplace search and related admin functionality. The product surface was familiar to users, but the implementation crossed several layers: OpenSearch for retrieval, GraphQL for the public API contract, and a Next.js frontend for the marketplace experience.
My role was hands-on implementation with enough architectural care to keep the search work aligned across those layers. A search change was only useful if it could be represented cleanly in the API and consumed predictably by the frontend.
Extending search without treating it as an isolated service
The core technical work was extending marketplace search on top of OpenSearch, the AWS-led fork of Elasticsearch and Kibana. That meant working with search indexes and query behavior while also respecting the product model exposed through GraphQL.
I approached the work from the marketplace outward: what users needed to discover, how that translated into searchable data, what the API needed to expose, and how the frontend would consume the result. That kept the search implementation tied to product behavior instead of becoming a detached backend concern.
Connecting OpenSearch, GraphQL, and Next.js
The search API was exposed through GraphQL and consumed by a Next.js frontend, so the integration work mattered as much as the search engine configuration. I worked on the API surface and the surrounding implementation so the frontend could use the extended search functionality without taking on unnecessary knowledge of the search backend.
That boundary was important. OpenSearch is powerful, but marketplace code should not leak search-engine details into every consuming layer. Keeping the GraphQL contract clear made the feature easier to evolve and easier for the frontend to depend on.
Supporting internal operations through RPC
Alongside the marketplace search work, I also worked with RPC to extend functionality in the admin site. That work supported the operational side of the product: internal tooling needed to move with the marketplace without becoming a separate source of friction.
The engagement was a practical mix of search engineering, API design, frontend integration support, and admin tooling. The common thread was keeping product behavior, implementation details, and internal workflows aligned across a short delivery window.
