Senior Product / Full Stack Developer

Salary Competitive

The Role

We're looking for a Senior Product / Full Stack Developer to join our small, tight-knit team. You'll work closely with our CTO, building features that directly solve real business problems. This is hands-on development where you'll own decisions, ship code regularly, and take pride in pragmatic solutions.

You'll have significant autonomy, real impact on product direction, and the satisfaction of seeing your work used by clients and colleagues every day.

What We're Building

Our platform uses a modern, pragmatic stack:

  • Backend: Go monolith with server-side rendering and Turbo (Hotwired) for HTML-over-the-wire interactions

  • Legacy systems: Ruby on Rails app with two Vue frontends (Client and Backoffice) being thoughtfully retired

  • Infrastructure: PostgreSQL for all data, Metabase for analytics, self-hosted on DigitalOcean VPSs orchestrated with Docker and Docker Compose

  • Operations: Minimal overhead, maximum reliability; we favor stability over speed

We use AI strategically to accelerate development, but the code is ours to own, understand, and trust. We automate what makes sense and avoid complexity that doesn't fit in our heads.

Your Responsibilities
  • Develop features in our Go backend and contribute to the gradual migration away from Rails

  • Write clear, efficient SQL queries and collaborate on data modelling without relying on ORMs.

  • Write frontend code that's simple, maintainable, and effective (Turbo and Stimulus, or Vue.js if appropriate)

  • Own technical decisions within our pragmatic constraints, and be willing to revisit them as a team

  • Think deeply about data models and business problems, not just technical purity

  • Help maintain and improve our Docker-based infrastructure

  • Collaborate closely with the CTO on prioritization, architecture, and problem-solving

What We're Looking For

You're a pragmatic thinker who enjoys writing software to solve real business problems. You value simplicity and stability over perfect architectures and can make autonomous decisions while staying aligned with team direction and business needs.

Hard requirements
  1. You genuinely enjoy typed languages. You understand the value of type safety and actively choose it, even in languages that don't enforce it (using tools like Beartype in Python, Sorbet in Ruby, TypeScript for JavaScript). Types aren't a constraint you tolerate; they're a tool you appreciate.

  2. You understand Docker. You don't need to be an expert, but you appreciate its benefits (reproducibility, consistency, isolation) and understand its trade-offs. You can reason about containers, images, and Compose setups without excessive hand-holding.

  3. You are comfortable writing SQL by hand. You can design queries, reason about performance, and debug issues directly in SQL. We do not use ORMs; we embrace SQL as our primary interface to the data.

Nice to have
  • Experience with Go or a strong willingness to learn it quickly

  • Familiarity with Vue.js, React, Angular, or any other frontend reactivity framework

  • Understanding of server-side rendering or Turbo Wire / HTMX patterns

  • Experience with PostgreSQL or other relational databases

  • Comfort with command-line tools and Linux

  • Experience in small teams where you wear multiple hats

What We Offer
  • Real autonomy on a small team with meaningful impact

  • Focused work on business-critical systems without unnecessary complexity

  • Stability through pragmatic decision-making and deliberate tech choices

  • Growth opportunities to influence product strategy and architecture

  • The chance to build something lasting that clients and colleagues rely on every day

The Interview Process

We keep the process straightforward and focused on how you think:

  1. Initial conversation about your background and what excites you

    • Including a technical discussion about how you approach problems (no trick questions)

  2. Working session or take-home exercise aligned with real work

  3. Final interview

  4. Offer

How to Apply

Send us:

  • Your CV or LinkedIn profile

  • A brief note on why you're interested in this role

    • Include links to any work you're proud of (GitHub, portfolio, etc.), or a short description of a recent project

We're hiring now and will move quickly for the right fit.

Why join Klingit?

At Klingit, good quality design and development is seen as a key driver of success in any business, and we are driven by creating more equal opportunities for creatives all over the world. By joining Klingit, you will be part of the journey to create something new in the agency world and have the chance to make a real impact.

Perks and benefits

This job comes with several perks and benefits

Flexible working hours
Flexible working hours

Free coffee / tea
Free coffee / tea

Near public transit
Near public transit

Social gatherings
Social gatherings

Skill development
Skill development

Remote work allowed
Remote work allowed

See all 11 benefits

Working at
Klingit

The All-in-One Solution for Brand and Marketing Needs Unlike traditional agencies, we have built our offering as a plug-and-play solution for all brand and marketing needs. We promise fast turnarounds, transparent prices without surprises, and top-talent creatives that will boost your brand. Klingit acquired Norwegian startup Graphiq in july 2024 and all services are merged under the Klingit name.

Read more about Klingit

company gallery image