Est.1978No. 47 · Dec

Front-end developer · Phoenix, AZ

We are Foshe!

Front-end developer in Phoenix. 15 years building online promotions for brands you've heard of.

Open
to work!

Why "we"?

One guy, two sides

The developer who's shipped brand promotions for 15 years, and the collector with two sleeves of comic-book ink. Both of us show up to work.

Side A · 15 years of promotions

Built for launch day

For 15 years I built online promotions: instant wins, code entries, sweepstakes and games for brands like MillerCoors, Disney, Pepsi, McDonald's, Mars and Takis. Promo sites live fast. They launch on a date that doesn't move, take a traffic spike, follow the legal rules to the letter, and disappear when the campaign ends. None of them are online anymore, so here's what went into them instead.

Launch dates don't move

Promotions go live when the campaign says so. I've spent 15 years shipping to a fixed date.

Pixel-level CSS on real stacks

Most recently I styled .NET MVC builds: Razor views, CSS architecture, image and font assets, and JS-driven flows wired through config.

Rules are part of the build

Age gates for alcohol brands, official rules, eligibility checks: compliance is a feature, not an afterthought.

Case files

The sites are gone. The work isn't. Here's what I built, for whom, and what it had to survive.

  • MillerCoors
  • Disney
  • Pepsi
  • McDonald's
  • Mars
  • Takis
Case file 01

[Brand] · [Year]

Instant win · Age gate 21+

[What it was, what you built, and the constraint it had to survive.]

Razor · CSS · JS config flows

Case file 02

[Brand] · [Year]

Code entry · Sweepstakes

[What it was, what you built, and the constraint it had to survive.]

Razor · CSS · JS config flows

Case file 03

[Brand] · [Year]

Game · Launch-day spike

[What it was, what you built, and the constraint it had to survive.]

Razor · CSS · JS config flows

Side A · after hours

Built on my own time

When I'm not on client work, I build my own products end to end: design, front-end, server and hosting. Three of them share one deliberately small stack, because a stack you know cold is a stack you can ship on.

coachbattle.app
[Screenshot]

Coach Battle

My gym's five-week coach challenge, now a platform any gym can run.

React · Express · SQLite · Railway

roastorreview.com
[Screenshot]

RoastOrReview

Paste your fantasy league. Get roasted. AI-written, no account needed.

Next.js · Claude API · Redis · Tailwind

yourwelco.me
[Screenshot]

YourWelco.me

A receipt for doing someone a favor, with an optional tip jar.

React · Express · SQLite · Stripe

[Domain]
[Screenshot]

Mycipe

[One line on what it does.]

React · Express · SQLite

Side B · the other half of "we"

Comics, ink & code!

I collect comics, mostly Venom and Spider-Man, plus the figures that go with them. My favorites are the December 1978 issues, my birth month, and nearly every one of those covers is loud, flat yellow. That's where this site's yellow comes from.

Two full sleeves. The first session was a line on the inside of my forearms that most comic fans will recognize. It took a lot more sessions to finish the rest.

[Tattoo photo · decision pending]

Current pull list

[What you're reading]

Grail

[The one you'd never sell]

The résumé

Front-end developer with 15 years in brand promotions and digital campaigns. Strongest in CSS, Razor/.NET MVC front ends and getting things live on a fixed date. Comfortable across the stack on my own products.

Let's build something with a launch date

I'm looking for my next front-end role. Online only.