Hi, we are Storyteq
Storyteq helps marketing and creative teams in top brands scale their creative production and gain control over their marketing campaigns. Through our platform, clients streamline campaign workflows, automate creative production through templates and AI, and activate engaging campaigns that go to market faster. We believe creativity takes time, but creative production shouldn’t. Since 2016 our mission has been to revolutionize the way creative assets are produced and activated. Magic happens when we let technology empower creativity. Our endless curiosity and relentless commitment to our customers lies at the heart of our problem-solving approach, and this shared mission is woven into our values: we dream big, think differently, and are stronger together.
About the job
This is a graphics and systems role that happens to live on the web platform. It is not a typical frontend job, and here’s why. We’ve built a professional ad builder for video, image, and banner creative that runs entirely in the browser, and many clients already use it to automate and scale their creative at volume. Now we’re taking it to the next level with AI, and the rendering and playback engine is what makes that leap possible. It’s the core that turns generated and edited creative into polished, high-quality output in real time. The hard problems here are rendering, performance, and real-time media, not UI plumbing. As a senior engineer, your impact goes beyond shipping features. You’ll shape the architecture of that engine, raise the bar for real-time rendering quality across the team, and help other engineers grow while staying hands-on in the code yourself.
What you’ll own
You’ll own the system that turns a composition of layers, media, and effects into correct pixels, whether that’s a static banner, an image, or a video playing back in real time while the user edits. Concretely, that means:
Canvas and GPU compositing: Canvas 2D for layout, text, shapes, and vector work, together with WebGL and WebGPU shaders for blending, transitions, color grading, and effects
A frame-accurate playback pipeline: decode via WebCodecs, keep audio and video in sync, and keep it smooth under real compositions
The multi-threaded architecture (Web Workers, OffscreenCanvas, transferable buffers) that keeps rendering off the main thread
Ruthless performance and memory discipline: texture pooling, allocation-free hot loops, and profiling to hunt down every stall
Using AI as part of how you build, with coding assistants and agents in your daily workflow, and helping shape how we bring AI-powered capabilities into the product itself
Raising the bar across the team through thoughtful code reviews, mentorship, and shared ownership, and collaborating across teams to deliver end-to-end value
The hard part isn’t any single API. It’s that the browser is a hostile environment for real-time media: one main thread, an unpredictable garbage collector, no direct hardware access, and video frames measured in tens of megabytes. Your job is to win that fight, defending the frame budget frame after frame without a stutter. There’s no framework that does this for you. This is engine-level code, closer to a game engine than to a web app. If that description makes you excited rather than nervous, we should talk.
Requirements
What we’re looking for
Core:
Graphics programming on the web: SVG and Canvas at a minimum
Serious JavaScript/TypeScript performance engineering: workers, OffscreenCanvas, memory profiling, and the discipline to allocate nothing in a hot loop
Genuine understanding of video fundamentals: frames, color, decode and encode, and audio/video synchronization
5+ years of hands-on experience delivering graphics, systems, or front-end software in production
South African citizenship or residency
What makes you senior for this role:
You make the people around you better through reviews, mentoring, and the standards you set, so the team’s output improves because…