Careers
Build with us
TNL Media is an independent esports match-review platform: live match data for CS2 and Dota 2, editorial coverage across seven games, and an honest data layer — every number sourced, every page attributed. Two open roles, both remote and full-time.
The product
What you would be building
The stack is small and fast: an Astro 5 site (TypeScript, server-side rendering with lightweight framework-free JS islands) on top of a Payload CMS 3 core (Next.js + Postgres). Pullers ingest match and tournament data (Liquipedia, GRID) with throttling and idempotent upserts; a logo cache keeps assets local; Caddy handles the edge (redirect map, www→apex, static media). Publishing is gated — a red-zone lint step in the build fails the release if a banned betting phrase slips into the copy.
Open role
JavaScript Developer (Frontend + Data)
You would own both halves of the product: the rendered site — match pages, entity hubs, the editorial section — and the data core that feeds it. The bar: a page reflects the database state on F5, without a rebuild and without layout shift.
You will work on
- The SSR site on Astro 5 (TypeScript): match pages, team / player / tournament hubs, schedule and results tables, the editorial news section — live data from Postgres, no rebuilds.
- Lightweight JS islands without a framework: countdowns, live badges, tabs, filters — SSR placeholders of equal width, JS updates only textContent, CLS = 0.
- Data core on Payload CMS 3 (Next.js + Postgres): collections, migrations, the API the site builds against.
- Pullers: Liquipedia (Wikipedia Cargo HTML) and GRID (CS2 / Dota 2 match data) — parsers, throttling, idempotent upserts, statuses always derived from dates.
- Logo cache: download, dedupe, serve via Caddy static routes; fallback rendering for missing assets.
- SEO layer: per-page JSON-LD (sports events, teams, people, articles), dynamic sitemaps with lastmod, hreflang for EN / pt-BR, Core Web Vitals.
- Delivery: Caddy (301/410 redirect map, www→apex), systemd services, releases from a bare repo, red-zone lint as build gate.
Required
- 3+ years of professional JavaScript/TypeScript; solid command of the DOM, the event loop and web performance.
- Astro (or a comparable SSR/SSG framework) and experience writing small framework-free JS islands.
- Node.js + Postgres: SQL, migrations, idempotent data scripts.
- Parser experience: HTML (Wikipedia/Cargo), APIs, retries and throttling — you have shipped scrapers or ingesters.
- SEO fundamentals: schema.org, XML sitemaps, hreflang, Core Web Vitals (CLS, INP).
- Git and Linux (systemd, Caddy or nginx).
- English B2+ — code, docs and reviews are in English.
Nice to have
- Payload CMS or a comparable headless CMS in production.
- Experience with ad slots / ad ops and keeping them from breaking layouts.
- Esports or sports-data domain; i18n / localization work.
Apply: [email protected] — subject “TNL Careers: JavaScript Developer”
Open role
Product Designer
You would design the system a data-dense product lives in: dense tables that stay readable, live elements that move without shifting the layout, and a compliance layer (18+, responsible-gambling blocks, ad slots) that never competes with the content.
You will work on
- The design system: dark esports aesthetic built on our reference template (AEON/Space) — tokens, components, variants; match tables, standings, rosters, odds panels.
- Live elements: countdowns, live badges, the tournament cascade (ongoing → upcoming → concluded) — states and motion under a hard zero-layout-shift constraint.
- Editorial layouts: news and guide pages (rich-text body, sources and provenance blocks), hub pages for seven games.
- Compliance layer: 18+ badge, responsible-gambling block, ad slots with fixed heights — designed so ads and compliance never break the page.
- i18n: EN + pt-BR layouts (text expansion, line breaks, typography per locale).
- Brand assets: logo kit, favicons, og:image, per-game accents.
- Design QA: mobile 375px checks, before/after comparisons, screenshot audits on every release.
Required
- 3+ years of product design for web; at least 2 of them on data-dense interfaces (tables, dashboards, schedules, scores).
- Figma at system level: components, variants, auto layout, design tokens.
- Deep grasp of typography, grids and dark UI; contrast and accessibility to WCAG AA.
- Motion design for live states (badges, countdowns) that never shift layout.
- Experience designing for localization (two or more locales).
- A portfolio with 2–3 case studies: what changed, and what the numbers did after.
Nice to have
- Esports, gaming or sports products in the portfolio.
- CSS fluency for handoff (you read the markup, not just the mockup).
- Experience with ad placements and keeping the design intact around them.
Apply: [email protected] — subject “TNL Careers: Product Designer”
Apply
How to apply
One email to [email protected] with the role name in the subject: your CV, links (GitHub for developers, Figma portfolio / personal site for designers) and a short note on what you would improve on tnl.media in your first month. We read every application and reply within a week.