Senior Full Stack Developer
Описание от работодателя
On behalf of our client, we are looking for a Senior Full Stack Developer to join their team in Zagreb.
Our client develops intelligent AI solutions that help businesses automate processes, improve customer interactions, and apply artificial intelligence to practical business challenges.
About the role
Tightline is recruiting a Senior Full Stack Developer, which develops an AI-powered platform for customer communication and business process automation.
This is a backend-focused role: approximately 90% backend and 10% frontend. You will develop features in an existing production application, integrate internal and external services, and implement reliable asynchronous workflows.
A separate frontend team works with a UX designer. Your React knowledge should allow you to make small fixes and resolve frontend issues that block your own work.
What you will do
- Develop backend features using Node.js, NestJS and TypeScript within the existing architecture.
- Design and implement REST APIs and integrations with internal and external services.
- Design relational data models, write and optimize SQL queries, and maintain data consistency using PostgreSQL and TypeORM.
- Implement asynchronous jobs and their lifecycle using Redis and BullMQ, including retries, failure handling and safe repeated processing.
- Write readable, maintainable and extensible code, supported by unit, integration and end-to-end tests.
- Own assigned features from understanding requirements through implementation, documentation, testing and delivery within agreed timelines.
- Identify unclear requirements, edge cases and potential effects on the wider system, and communicate them early.
- Participate in code reviews and technical discussions, using AI development tools alongside your own engineering judgment.
- Make targeted React fixes when needed.
What we are looking for
- Practical Node.js, TypeScript and NestJS skills that allow you to contribute to backend development from the start.
- Strong experience implementing backend business logic and REST APIs.
- Solid relational database skills, including schema design, SQL query analysis and optimization.
- Understanding of object-oriented programming, microservice architecture and maintainable software design.
- The ability to work with TypeORM, Redis and BullMQ and reason about asynchronous processing and data consistency.
- The ability to independently deliver well-tested backend features and explain your technical decisions.
- Working knowledge of React sufficient for small changes, debugging and resolving blockers.
- Familiarity with AI-assisted development tools, particularly Claude Code, and the ability to review, test and take responsibility for generated code.
- The ability to collaborate and communicate effectively in Croatian.
Seniority is assessed through independence, ownership and implementation quality rather than a fixed number of years of experience.
Useful additional experience
- Building AI-powered applications or integrating LLM-based functionality.
- Working with LangChain and LangGraph.
- Experience with GitLab development workflows and Azure environments.
- Mentoring less experienced developers.
Commercial AI product experience and mentoring are welcome, but are not prerequisites.
Our technology stack
- Backend: Node.js, NestJS, TypeScript
- Data and asynchronous processing: PostgreSQL, TypeORM, Redis, BullMQ
- AI application tooling: LangChain, LangGraph
- Frontend: React
- Platform and development tools: GitLab, Azure, Claude Code
The stack and application architecture are already established.
Team and development process
You will join a team comprising a team lead, three senior developers, one junior developer and a QA colleague. You will collaborate daily with the team, QA and the product architect, and report to the team lead.
You will contribute to technical discussions and decisions. Final architectural decisions sit with the product architect.
The development process includes peer and AI-assisted code reviews, QA checks, unit tests on every merge request, and integration and end-to-end testing. Automated pipelines and review environments support delivery; production deployment is manual and requires approval.
The role focuses on feature delivery and does not include an on-call requirement.