eBay

Advertising platform, evolved page by page

Senior Full Stack Engineer / Technical Lead

Apr 2017 – Mar 2019, Feb 2015 – Sep 2016

Admarkt was eBay's self-service platform where businesses create and manage paid ads on its classifieds sites in the Netherlands, Belgium, Canada and Denmark. One codebase served every site, each with its own features, styling, languages and formatting, and with backend APIs that fetched data from different systems per site. Belgium alone needed a Dutch and a French version, and Canada an English and a French one. Keeping one codebase simple while every site could differ was the core challenge.

The frontend needed a turnaround, and the business wanted to see results. Instead of changing the technology first, I focused on delivering value: a first working version with the features the business needed. I built authentication with OAuth, the layer that talks to the backend APIs, the configuration per site and environment, and the flows for placing, managing and reporting on ads. That rebuilt trust, and the trust created room to change the architecture.

The architecture evolved instead of being rebuilt. Admarkt had started as a Java Spring application and had become a server-rendered Node.js application on Kraken.js, a framework on top of Express with a predefined set of plugins. Moving to client-side rendering, I chose Knockout because it could be added to existing pages, so every page moved to the browser on its own schedule while the platform kept running. Modern tooling came with it: ES6 modules, a build with Rollup, linting and automated tests, until Kraken.js could be removed altogether. The new architecture made room for richer features, such as bidding and budgets per ad, bulk editing, feed imports and reports, and for rolling out the next generation of the platform per market. I wrote the technical roadmap for that next step: bringing the separate advertiser tools together on one client-side architecture.

I guided the frontend developers in a team that grew to three frontend and three backend developers, a product owner and a UX designer. I wrote the API specifications together with the backend team, and interviewed and selected new frontend developers. After two years I left, and eBay asked me back for a second period six months later.

As a Senior Full Stack Engineer and Technical Lead, my responsibilities included:

  • Turning around the frontend by delivering a working product first
  • Migrating the architecture from server-side to client-side rendering without stopping the platform
  • Building multi-tenant and multilingual features for four countries in four languages
  • Building OAuth authentication, the API layer and the configuration per site and environment
  • Designing API specifications together with the backend team
  • Introducing ES6 modules, Rollup, linting and automated tests, and removing Kraken.js
  • Writing the technical roadmap for the platform
  • Interviewing and selecting frontend developers, and guiding the frontend team
JavaScript (ES6)Node.jsExpressKraken.jsKnockoutDust.jsPugSassFoundationRESTOAuthRollupBubléGulpKarmaESLintNginxJenkinsGerritGit

Related work

← Newer projectOlder project →

LET'S BUILD SOMETHING

Whether you're migrating to headless, rescuing a legacy system, or need senior engineering capacity—let's start the conversation.

$start_conversation

info@crafity.com · Randstad, Netherlands