About the position
Our client is looking for a Senior Product / Full Stack Developer to join their small, tight-knit team. You will
work closely with their 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 will have significant autonomy, real impact on product direction, and the satisfaction of seeing your
work used by clients and colleagues every day.
What is the company building
The companies 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, Metabases for analytics, self-hosted on Digital Ocean VPSs orchestrated with Docker and Docker Compose
- Operations: Minimal overhead, maximum reliability; the company favor stability over speed
Our client uses AI strategically to accelerate development, but the code is their own, understand, and
trust. The company automate what makes sense and avoid complexity that doesn't fit in their heads.
Your responsibilities
- Develop features in the company’s 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 [URL Removed] if appropriate)
- Own technical decisions within the companies’ 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 the companies Docker-based infrastructure
- Collaborate closely with the CTO on prioritization, architecture, and problem-solving
What our client is looking for
You're a pragmatic thinker who enjoys writing software to solve real business problems. You value simplicity and stability over perfect architecture and can make autonomous decisions while staying aligned with team direction and business needs.
Hard requirements
- 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.
- 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 handholding.
- You are comfortable writing SQL by hand. You can design queries, reason about performance, and debug issues directly in SQL. The company does not use ORMs; the company embrace SQL as our client’s primary interface to the data.
Nice to have
- Experience with Go or a strong willingness to learn it quickly
- Familiarity with [URL Removed] 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 the company offers
- 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
Desired Skills:
- Beartype in Python
- Sorbet in Ruby
- TypeScript for JavaScript
- design queries
- writing SQL