Nahom Endale
F

Internal Tools / API

File Automation API

Campaign automation at Gap Inc.

6x

Faster campaign setup

20+

Developers unblocked

SMB2

Reverse-engineered protocol

Node

REST API replacement

The Challenge

Gap's campaign teams pushed brand files to multiple servers through a slow, manual desktop Electron workflow, a bottleneck that ate developer time and blocked producers from moving on their own.

The Solution

I built a Node REST API that reverse-engineered the SMB2 file-handling logic so campaign files could be generated from templates and deployed across brand servers automatically. A simple React form let 20+ producers and developers self-serve, cutting campaign setup time roughly sixfold.

Features

Workflow replacement

Replaced a slow, manual desktop Electron workflow with a self-serve REST API.

SMB2 file handling

Reverse-engineered the SMB2 protocol to read and write files programmatically.

Multi-brand deploy

Deploys campaign files across multiple brand servers from one request.

Template generation

Generates brand-specific campaign files from evergreen templates.

Self-serve forms

Producers create placements and upload assets by submitting a form, no server access needed.

6x faster setup

Accelerated campaign setup roughly sixfold and cut developer workload across teams.

System Architecture

User

Producer

UI

React Form

API

Node REST API

SMB2

Brand Servers

Technology Stack

Backend

Node.jsExpressSMB2

Frontend

React

Infrastructure

AzureWindows Server

Key Learnings

  • Reverse-engineering the SMB2 file-handling logic was the unlock that let a web API drive what used to be a desktop-only workflow.
  • A simple form-to-API interface meant producers could self-serve without touching servers.
  • Centralizing multi-brand deploys behind one endpoint removed a major bottleneck for 20+ developers.
Professional headshot

Available for work

Let's build something.

Always interested in new opportunities, technical challenges, or collaborations. Reach out through any of the channels.También hablo Español!

Typically respond within 24 hours