Back to all jobs
E

Senior Software Engineer, Full-Stack — Content Tools

Epic Kids Inc.

WorldwideRemote1w ago
Seniority
Senior

About the role

<div class="" data-turn-id-container="d67b3fd5-9db4-41c0-aa4a-1b6b21eb0e36" data-is-intersecting="true"> <section class="text-token-text-primary w-full focus:outline-none has-data-writing-block:pointer-events-none [&amp;:has([data-writing-block])>*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-(--header-height)" data-turn-id="d67b3fd5-9db4-41c0-aa4a-1b6b21eb0e36" data-turn-id-container="d67b3fd5-9db4-41c0-aa4a-1b6b21eb0e36" data-testid="conversation-turn-27" data-scroll-anchor="false" data-turn="user"> <div class="text-base my-auto mx-auto pt-12 [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)"> <div class="[--thread-content-max-width:40rem] @w-lg/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col"> <div class="flex max-w-full flex-col gap-4 grow"> <div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&amp;]:mt-1" data-message-author-role="user" data-message-id="d67b3fd5-9db4-41c0-aa4a-1b6b21eb0e36"> <div class="flex w-full flex-col gap-1 empty:hidden items-end rtl:items-start"> <div class="user-message-bubble-color corner-superellipse/0.98 relative min-w-0 overflow-hidden rounded-[22px] px-4 py-2.5 leading-6 rounded-se-lg max-w-(--user-chat-width,70%)">&nbsp;</div> </div> </div> </div> </div> </div> </section> </div> <div class="" data-turn-id-container="request-WEB:4c357df0-b11f-497d-99a3-3b605e265321-13" data-is-intersecting="true"> <section class="text-token-text-primary w-full focus:outline-none has-data-writing-block:pointer-events-none [&amp;:has([data-writing-block])>*]:pointer-events-auto R6Vx5W_threadScrollVars scroll-mb-[calc(var(--scroll-root-safe-area-inset-bottom,0px)+var(--thread-response-height))] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]" data-turn-id="request-WEB:4c357df0-b11f-497d-99a3-3b605e265321-13" data-turn-id-container="request-WEB:4c357df0-b11f-497d-99a3-3b605e265321-13" data-testid="conversation-turn-28" data-scroll-anchor="false" data-turn="assistant"> <div class="text-base my-auto mx-auto [--thread-content-margin:var(--thread-content-margin-xs,calc(var(--spacing)*4))] @w-sm/main:[--thread-content-margin:var(--thread-content-margin-sm,calc(var(--spacing)*6))] @w-lg/main:[--thread-content-margin:var(--thread-content-margin-lg,calc(var(--spacing)*16))] px-(--thread-content-margin)"> <div class="[--thread-content-max-width:40rem] @w-lg/main:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn"> <div class="flex max-w-full flex-col gap-4 grow"> <div class="min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal outline-none keyboard-focused:focus-ring [.text-message+&amp;]:mt-1" data-message-author-role="assistant" data-message-id="b1d40399-0784-49b6-bd07-5152e61367b1" data-message-model-slug="gpt-5-5"> <div class="flex w-full flex-col gap-1 empty:hidden"> <div class="markdown prose dark:prose-invert wrap-break-word w-full light markdown-new-styling"> <h2 data-section-id="16kvosu" data-start="0" data-end="11">About Us</h2> <p data-start="13" data-end="465">Epic Kids is the leading digital reading platform built for kids 12 and under, trusted by millions of children, educators, and families around the world. Our mission is to inspire a lifelong love of reading by providing unlimited access to thousands of high-quality books, videos, and educational content through a safe and engaging experience. We combine technology, storytelling, and learning innovation to help every child become a confident reader.</p> <p data-start="467" data-end="638">At Epic, you’ll join a collaborative and fast-paced global team passionate about building meaningful products that make a real impact on children’s education and literacy.</p> <h2 data-section-id="115i9ww" data-start="640" data-end="659">Position Summary</h2> <p data-start="661" data-end="1214">The<span class="Apple-converted-space">&nbsp;</span><strong data-start="665" data-end="721">Senior Software Engineer, Full-Stack — Content Tools</strong><span class="Apple-converted-space">&nbsp;</span>owns the internal tools and pipelines that bring Epic's library of books, audio, and learning content from raw assets through to production-ready, app-consumable formats. You will design, build, and operate the Angular-based content workbench and the PHP/Go services behind it—turning long, manual content-prep workflows into automated, high-throughput pipelines, and partnering with our content, editorial, and platform teams to make the tools more capable and the operators more productive.</p> <p data-start="1216" data-end="1637">You are an experienced engineer who works independently on complex problems, makes sound technical decisions, and pulls in the right people when a decision touches another team. Our back-end is multi-language: PHP/Symfony powers our long-standing application code, and we are actively investing in Go for newer services—senior engineers help drive that evolution thoughtfully rather than reflexively rewriting what works.</p> <p data-start="1639" data-end="1751">This role works in close partnership with Epic's global engineering team across the US, China, Spain, and India.</p> <h2 data-section-id="18w7bso" data-start="1753" data-end="1776">Key Responsibilities</h2> <ul data-start="1778" data-end="3954"> <li data-section-id="1c523za" data-start="2483" data-end="2716">Ship features end-to-end across the content workbench, from the Angular front-end through the PHP/Symfony and Go back-end services against MySQL, owning each from spec to production.</li> <li data-section-id="1c523za" data-start="2483" data-end="2716">Build and maintain the ingestion and conversion pipelines that turn the content formats Epic relies on (ePUB, PDF, XML, ONIX) into application-ready output.</li> <li data-section-id="1c523za" data-start="2483" data-end="2716">Build and operate the operator review and correction surfaces for pre-aligned audio and text assets, where operators verify, edit, and export synchronized multi-format content.</li> <li data-section-id="1c523za" data-start="2483" data-end="2716">Optimize the PHP 8.x API and supporting services to handle high-volume file transfers and background processing of large media assets.</li> <li data-section-id="1c523za" data-start="2483" data-end="2716">Lead development of the interactive Angular UI, including coordinate-based interactions over media (such as word boxes over book pages) and reactive state management with RxJS and NgRx.</li> <li data-section-id="1c523za" data-start="2483" data-end="2716">Design and document the architecture, data-modeling, and API-design decisions, and align the affected teams before significant choices land in code.</li> <li data-section-id="1c523za" data-start="2483" data-end="2716">Use AI-assisted development tools where they speed delivery, and hold generated code to the same review bar as anything else.</li> <li data-section-id="1c523za" data-start="2483" data-end="2716">Run production support for the content tooling, lead investigations, and follow through on the systemic fixes from post-mortems.</li> </ul> <h2 data-section-id="1cpo032" data-start="3956" data-end="3982">Required Qualifications</h2> <ul data-start="3984" data-end="5970"> <li data-section-id="1hsk1er" data-start="3984" data-end="4075">5+ years of professional software engineering experience, including significant time shipping production full-stack features end-to-end.</li> <li data-section-id="1hsk1er" data-start="3984" data-end="4075">Strong Angular experience (v14+), including component architecture, RxJS reactive patterns, and a state-management library such as NgRx, backed by strong TypeScript and modern front-end fundamentals (HTML, CSS/SCSS, performance).</li> <li data-section-id="1hsk1er" data-start="3984" data-end="4075">Strong PHP experience on a modern framework (Symfony preferred, Laravel acceptable), including an ORM such as Doctrine.</li> <li data-section-id="1hsk1er" data-start="3984" data-end="4075">Ability to design schemas, write performant queries, and reason about indexing in a relational database such as MySQL.</li> <li data-section-id="1hsk1er" data-start="3984" data-end="4075">Solid engineering fundamentals: you write tests across unit, integration, and end-to-end levels by default, and you work in Git with pull-request-based reviews and CI/CD.</li> <li data-section-id="1hsk1er" data-start="3984" data-end="4075">Fluent written and verbal English: you can write a design doc, run a review, and explain trade-offs to non-engineering partners on a globally distributed team.</li> </ul> <h2 data-section-id="1bdyt7m" data-start="5972" data-end="5991">Preferred Skills</h2> <ul data-start="5993" data-end="7072" data-is-last-node="" data-is-only-node=""> <li data-section-id="1a7s6ds" data-start="5993" data-end="6131">Experience with Go for back-end services.</li> <li data-section-id="1a7s6ds" data-start="5993" data-end="6131">Experience building or operating media or document processing pipelines (PDF, ePUB, or XML parsing and transformation, or image or audio asset processing) that handle large file payloads at scale.</li> <li data-section-id="1a7s6ds" data-start="5993" data-end="6131">Familiarity with digital publishing standards and the internal structure of publishing-industry file formats such as ePUB and ONIX.</li> <li data-section-id="1a7s6ds" data-start="5993" data-end="6131">Experience with media-processing tooling such as FFmpeg or ImageMagick for transcoding, resizing, and format conversion.</li> <li data-section-id="1a7s6ds" data-start="5993" data-end="6131">Experience with canvas-based UI for drawing, cropping, or annotating over media, using libraries such as cropperjs or wavesurfer.js.</li> <li data-section-id="1a7s6ds" data-start="5993" data-end="6131">Experience leading the migration of a production service from one language or runtime to another, such as PHP to Go.</li> <li data-section-id="1a7s6ds" data-start="5993" data-end="6131">Experience with Docker and Kubernetes (GKE) at the application-developer level: building images, debugging running pods, and reading logs and metrics.</li> <li data-section-id="1a7s6ds" data-start="5993" data-end="6131">Experience on a cloud platform, GCP preferred (GCS, Cloud SQL, Pub/Sub, Cloud Run, or GKE), with AWS or Azure acceptable.</li> <li data-section-id="1a7s6ds" data-start="5993" data-end="6131">Experience with consumer-scale concerns such as caching strategies, CDN behavior, and mobile-web performance.</li> </ul> </div> </div> </div> </div> </div> </div> </section> </div>

Perks & benefits

  • Distributed Team

731,000+ hidden jobs like this

Epic Kids Inc. and thousands of companies post here first — often days before LinkedIn or Indeed. Your first 5 applications are free; go Pro to apply without limits.

Everything Pro unlocks:

  • Unlimited applications — free stops at 5
  • Track every application in one place
  • Apply straight to the source, one click
  • Save & organize roles you love
  • Roles pulled from company boards before the big sites

Weekly

$9.99
$4.99/week

For an active search. Cancel anytime.

Most popular

Monthly

$24.99
$12.99/month

The smart pick. Save 35% vs weekly.

Lifetime

$99
$49.99once

Pay once. Every future feature, forever.