Senior Web Developer
Build sophisticated web applications for a global karaoke platform using modern TypeScript and Vue. You’ll work on Nuxt 3 applications serving 2 million+ users across 34 countries and managing a catalog of 100,000+ songs.
What You’ll Do
You’ll work on Singa’s web applications built with Nuxt 3, handling everything from user-facing experiences to content management workflows. You’ll maintain and enhance TypeScript-based applications with SSR/SSG, state management, real-time karaoke features, and sophisticated content workflows. You’ll optimize performance for media-heavy features while integrating payment systems, analytics platforms, content management systems, and third-party music APIs.
Your responsibilities:
– Maintain and evolve production Nuxt 3 applications with third-party integrations such as Stripe payments, Storyblok CMS, and analytics platforms
– Design and build new features using Vue 3 Composition API with both Pinia stores and composable-based state patterns
– Implement UI components with various frameworks (Reka UI, Vuetify)
– Collaborate with backend engineers to design clean, versioned API contracts
– Build server-side API proxies
– Refactor legacy Options API code to modern Composition API patterns
– Optimize performance for media playback, audio/lyrics synchronization, and content automation workflows
– Debug production issues using Sentry crash reports and analytics data
– Navigate technical debt decisions while maintaining feature velocity
– Implement features ranging from multi-market i18n to content automation workflows
– Maintain strict type safety with TypeScript across all applications
– Leverage AI coding assistants to accelerate development while maintaining code quality
Our Tech Stack
– Frontend Framework: Vue 3 with Composition API, Nuxt 3.12+ (SSR/SSG)
– Languages: TypeScript 5.9+ (strict mode), Pug templates
– State Management: Pinia with Composition API, composable-based patterns
– UI Components: Reka UI (headless), Vuetify 3 (Material Design), custom components
– Styling: Sass/SCSS with custom design systems, design token system, scoped component styles
– API Integration: Custom fetch clients, ofetch HTTP client, server-side proxying, multi-tier architecture
– Authentication: OAuth 2.0 with JWT, SSR-safe token refresh, HTTP-only cookies
– Internationalization: @nuxtjs/i18n with 10+ locales, prefix-based routing
– Real-time Features: Second-screen mode with postMessage, audio/lyrics synchronization
– Analytics: Segment, FullStory session replay, Sentry (error tracking + performance monitoring)
– Payment Processing: Stripe with server-side session management
– CMS: Storyblok with visual editor integration
– Testing: Vitest with Nuxt test utils, Happy DOM, Vue Test Utils
– Code Quality: OXLint (Rust-based), Prettier, vue-tsc
– Build/Deploy: Docker builds, Nitro server engine, Vite bundling
– Infrastructure: Node, Yarn 4, containerized deployments, GitHub Actions CI/CD
What We’re Looking For
Must have:
– 6+ years frontend development experience with TypeScript
– Production experience with Vue 3 and Nuxt 3 (SSR/SSG patterns)
– Deep expertise in TypeScript (strict mode, type narrowing, generics)
– Strong grasp of Vue Composition API and modern reactive patterns
– Experience with state management (Pinia, composable patterns, or similar)
– Sass/SCSS experience with component-scoped styling
– OAuth 2.0 and JWT authentication implementation
– Production debugging skills with monitoring tools (Sentry, analytics platforms)
Nice to have:
– Headless UI component libraries (Reka UI, Radix Vue, or similar)
– Vuetify or Material Design component frameworks
– Pug templating language experience
– Multi-language i18n implementation with @nuxtjs/i18n (10+ locales)
– Audio/video playback implementation with Web Audio API
– Real-time multi-window communication patterns (postMessage)
– Stripe payment integration and checkout flows
– CMS integration (Storyblok, Contentful, or similar)
– Analytics integration (Segment, Mixpanel, FullStory)
– Composable-based state management (no store pattern)
– Server-side API proxying for third-party integrations
– Content management system architecture
– Performance optimization with Lighthouse/Web Vitals
– Modern linting tools (OXLint, Biome, or Rust-based tooling)
– Docker and containerized deployment workflows
– Large-scale refactoring (Options API → Composition API migrations)
– GitHub Actions CI/CD pipelines
– Experience with AI coding assistants (Claude Code preferred) or eagerness to adopt AI-enhanced workflows
About Singa
Singa is transforming the global karaoke industry with a modern streaming platform that serves 2 million+ users and 1,600+ venues across 34 countries. With 100,000+ songs including original artist recordings through partnerships with major labels like Warner Music Group, we’re building the digital future of karaoke.
Our Finland-based engineering team maintains production Nuxt 3 web applications serving millions of users globally. We prioritize thoughtful architecture, type safety, and testing practices that enable sustainable growth while solving real operational problems with elegant technical solutions.
Work Model
Hybrid: In the Helsinki Capital Region, we aim a hybrid setup with 2–3 remote days per week. For those living outside the capital region, we typically aim for around five office days per month.
Fully Remote Option: Accommodate full remote if candidate is able to show a proven capability working effectively while fully remote with a larger team that’s in the office.
Our Commitment to Diversity
We’re building a team that reflects the diversity of the European developer community. We evaluate candidates on technical skills and architectural thinking, not academic pedigree or career path.
We provide interview accommodations for candidates who need them. Our collaborative approach ensures technical decisions are inclusive and transparent.
Don’t meet every requirement? Research shows underrepresented groups apply only when they meet 100% of qualifications. If you’re excited about sophisticated web architecture and modern TypeScript patterns, we encourage you to apply.
How to Apply
If this sounds like you, come join us in spreading the joy of singing! Please send your resume and GitHub profile (or code samples) and answer the questions in the application form.
We review applications weekly already during the application period and will fill the position as soon as we find the right person, so we encourage you to apply quickly. Our recruitment process includes interviews as well as a take-home assignment.
Interview Process:
– Initial Call (30 min): Experience review, role expectations, answer your questions
– Technical Screen (60 min): Problem-solving with AI tools allowed – we evaluate how you work with modern development tools
– System Design (60 min): Real-world architecture scenario, discuss trade-offs and scalability considerations
– Pair Programming (60 min): Collaborative coding session on realistic problems using your preferred IDE and AI tools
– Founder / Leadership chat (~30 min): Final conversation
Our Philosophy: We encourage using AI coding assistants (Claude Code, Copilot, etc.) during technical interviews – they’re part of modern development. We’re interested in how you think, collaborate, and deliver quality code, not memorized algorithms.
For more information or questions please contact us at jenni.vaisanen@singa.com







