🎉 Jürgen Ulbrich invites you to apply for this position.

Full Stack Developer (TypeScript/React/NestJS) (m/w/d)

Full-time | Wien (Hybrid), Austria

About us

Our mission is clear: we help people achieve their dream jobs. With intuitive software that inspires and the use of cutting-edge technologies like AI and LLMs, we are developing a novel career platform. Sprad is a fast-growing startup with customers worldwide. Our experienced, dedicated team aims to sustainably revolutionize the way people discover fulfilling activities.

We're looking for a Full Stack Developer to join our small, focused team in Vienna. You'll have real ownership over features from specification to deployment, working primarily in our modern TypeScript stack (Next.js, NestJS, LangGraphJS) while helping us migrate away from legacy PHP/Symfony code.

This isn't just a maintenance role. You'll be building new features, shaping our architecture, and directly impacting how we develop software. We value pragmatism over perfection, clean code over clever tricks, and shipping over endless planning.


Tasks

  • Build end-to-end features in our TypeScript monorepo (Next.js frontend + NestJS backend + LangGraphJS agents)

  • Migrate legacy PHP/Symfony code to modern TypeScript, refactoring, not rewriting from scratch

  • Maintain and debug existing systems across the stack

  • Write tests (Vitest, Playwright) and participate in code reviews to maintain quality

  • Collaborate through pair programming and contribute ideas to improve our processes, tooling, and engineering practices

  • Own your work, from database design to API contracts to UI implementation


Qualifications

Frontend

  • Strong experience with React/Next.js OR Vue/Nuxt

  • Solid TypeScript knowledge

  • Familiarity with Tailwind CSS

  • Experience with modern React patterns

Backend

  • Strong Node.js + TypeScript experience

  • Proficiency in NestJS, Express, OR Fastify

  • Experience with RESTful API design

  • Understanding of database design & ORMs (MySQL/PostgreSQL)

Infrastructure & Tools

  • Docker & Docker Compose for local development

  • Git & GitHub workflows, CI/CD (GitHub Actions)

  • Understanding of monorepo architecture (Turborepo/pnpm)

PHP/Symfony (basic familiarity)

  • Ability to read and understand existing PHP/Symfony code

  • Willingness to refactor PHP into TypeScript (we'll support you)

Bonus points for experience with:

  • LangGraphJS / AI agent development (LangChain ecosystem)

  • AWS (SQS, RDS, S3, ECS)

  • TDD mindset (Vitest, Playwright, etc.)

  • Multi-tenant systems

  • FrankenPHP, API Platform, or Symfony Messenger

This describes you:

  • Quality-focused but pragmatic

  • Independent, thoughtful, and long-term oriented

  • Communicative (excellent English or German OR strong knowledge of both)

  • Enthusiastic about learning and tackling new challenges

  • Strong in logic and problem-solving


Benefits

  • Real Ownership: Your ideas and contributions directly shape the product

  • Small Team: Direct impact, no bureaucracy, fast decisions

  • Modern Stack: Work with cutting-edge tools (Next.js 15, LangGraphJS, AI agents)

  • VSOP Option: Share in the company’s success through virtual stock options

  • Modern Equipment: Top-tier gear, including a MacBook Pro

  • Central Office: City-center location with air conditioning and great infrastructure

  • Quality Coffee & Team Events: Portafilter coffee machine, regular team dinners, and events

  • Hybrid Work Model: Flexible mix of remote and in-office work


We’re looking for a talented developer who enjoys building products and taking ownership. You’re a team player who values collaboration over spotlight, and you want to help shape something meaningful.


If that sounds like you, we’d love to hear from you!

Apply now and join us on our exciting startup journey.

The collectively agreed minimum gross salary for this full-time position (38.5 hours per week) is €3,175 per month. The actual salary will, of course, depend on individual experience and qualifications. We look forward to your application!







Jürgen Ulbrich invites you to apply for this position.

Apply in just a few minutes!
Apply now
Company exciting,
only the job does not fit?
Join Talent Pool

Apply

* Required
Upload application documents

max. 5 files | .pdf .doc .docx

I agree that the above data may be processed and used for the purpose of forwarding my data to the company Sprad. I confirm that I agree with the privacy policy.*
Submit application

Privacy Policy

for the Sprad referral program of Sprad

The protection of your personal data is of particular concern to us. We, therefore, process your data exclusively on the basis of the statutory provisions. In this data protection information, we inform you about the most important aspects of data processing within the framework of our website.

Contact with us
If you contact us by form on the website, by support chat, or by e-mail, the data you provide will be stored by us for one year for the purpose of processing the request and in case of follow-up questions. We do not pass on this data without your consent.

Cookies
Our website uses so-called cookies. These small text files are stored on your end device with the help of the browser. They do not cause any damage. We use cookies to make our offer user-friendly. Some cookies remain stored on your end device until you delete them. They enable us to recognize your browser on your next visit. If you do not wish this, you can set up your browser so that it informs you about the setting of cookies, and you only allow this in individual cases. When deactivating cookies, the functionality of our website may be limited.

SSL encryption
This site uses SSL encryption for security reasons and to protect the transmission of confidential content that you send to us as the site operator. You can recognize an encrypted connection by the fact that "https://" is displayed in the browser\'s address line and by the lock symbol in your URL bar. This means that the data you send to us cannot be read by third parties.

YouTube videos
The YouTube videos on our website are set up so that no information about our visitors is stored by YouTube until a visitor watches a video themselves. If the users do not watch a video, there is no exchange of information between you and YouTube.

Sharing buttons
The share buttons of the social networks on our website are just normal links. By clicking on the corresponding link, you will be redirected to the service of the respective network. The share button only establishes direct contact between the social network and our visitors when the visitor actively clicks on the share button. Only then will your data be transmitted to the respective social network. If, on the other hand, the share button is not clicked, no exchange takes place between you and the social networks.

Registration
For users who register on our website, we store the personal information that they or their employer have provided. In addition, we store data about the use of the Sprad tool in order to reward users with points for their activities. Furthermore, registered users can upload their LinkedIn contacts in the tool to receive suggestions for recommending jobs. This data is only available to the user to help them recommend suitable contacts.

Application / Talent Pool
For visitors who apply for a job or the Talent Pool on our website, we additionally store the personal information they provide in the application form. The data is shared only with the company that posted the job posting to which the user applied. In addition, the user through whose personal referral link the applicant applied is continuously informed about the current status of the application process.

Network
We process your personal data, particularly in compliance with the General Data Protection Regulation (GDPR) and all other applicable laws. We process and collect your personal data on the basis of a legitimate interest pursuant to Art. 6 (1) lit. f DSGVO. The purpose pursued is the collection of personal data from public sources for the improved provision of the user network and communication in the form of our own service.

We have collected your personal data from public sources, not directly from you. These are, in particular, the provider of the social business platforms LinkedIn. We only collect the personal data that you have self-determinedly made available to the public. We do not collect any other personal data.

E-Mail communication
If you are in an e-mail exchange with us, data such as your name, e-mail address, company, and e-mail content are stored and processed in our e-mail software. At the end of each year, we check whether further storage is necessary or whether there are retention obligations for the e-mails. Depending on this, e-mails are further stored or deleted. You have the right to information, correction, deletion, restriction, data transferability, revocation, and objection at any time. To do so, please send an email to mail@sprad.io.

No automated decision-making
There is no automated decision-making or profiling.

Duration of data storage
We store your personal data only as long as it is necessary for the fulfillment of our legal obligations or you request a deletion, according to Art. 17 DSGVO. Likewise, when the purpose of our processing expires or is fulfilled, we will delete your personal data immediately.

Your rights
With regard to your data stored by us, you are generally entitled to the rights of information, correction, deletion, restriction, data portability, revocation, and objection. If you believe that the processing of your data violates data protection law or that your data protection rights have otherwise been violated, you can complain to us at mail@sprad.io or the data protection authority.