{"id":3743443,"url":"https://alion.io/job/tilla-full-stack-engineer","title":"Full Stack Engineer","company":{"id":688653,"name":"Tilla","domain":"tilla.tech","url":"https://alion.io/company/tilla","size_band":"11-50","is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":"Ashby","truth_index":null},"role":"Backend","role_family":"Backend","seniority":null,"employment_type":"full_time","work_mode":"hybrid","remote_scope":null,"remote_scope_basis":null,"remote_working_hours":null,"hiring_geo_confidence":"explicit","locations":["Berlin, Germany"],"countries":["DE"],"hiring_countries":[],"hiring_countries_total":0,"salary":null,"salary_estimate":null,"experience_years_min":null,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"Amazon ECS","optional":false},{"name":"Apollo Client","optional":false},{"name":"AWS","optional":false},{"name":"AWS Lambda","optional":false},{"name":"GraphQL","optional":false},{"name":"Jest","optional":false},{"name":"Nest.JS","optional":false},{"name":"Next.js","optional":false},{"name":"Node JS","optional":false},{"name":"Playwright","optional":false},{"name":"Prisma","optional":false},{"name":"React Query","optional":false},{"name":"React.js","optional":false},{"name":"shadcn/ui","optional":false},{"name":"TypeScript","optional":false},{"name":"JavaScript","optional":true},{"name":"Radix UI","optional":true},{"name":"Tailwind CSS","optional":true}],"status":"live","first_seen_at":"2026-11-04T11:36:57Z","employer_posted_date":"2026-11-04","last_verified_at":"2026-11-06T17:14:42Z","board_verified":true,"closed_at":null,"days_open":2,"trust":{"level":"ok","repost_count":null,"flags":[],"days_open":2},"description":"We are a growing SaaS start-up with an international team, operating on the intersection between two of the world's most fascinating industries - global shipping and global travel.\nOver 90% of global trade depends on ships, and the shipping industry depends on the 2 million seafarers who operate them. What most people don't know is there's a complex, mission-critical travel operation going on 24/7 to bring seafarers to the ships where they're needed, when they're needed. That's called crew logistics, and without it, global trade wouldn't function.\nBut it's an operation often built on manual processes and legacy systems, meaning high-stress for operators, an unreliable experience for seafarers, and poor outcomes for the industry. That is until Tilla enters the scene.\nBacked by strong investor support, with more than 10,000 crew changes executed in the platform each year across over 600 vessels globally, our platform is a game changer in crew logistics, streamlining collaboration between operators and seafarers, making crew operations more humane, efficient, and cost-effective.\nJoin us on the next chapter of our growth journey and tackle this overlooked yet critical global challenge: every crew change, optimized and digital.\nYour mission\nBuild and maintain the Travel services that get seafarers onto the right flights, shipping well-tested features across our TypeScript stack as part of the Travel team. You'll start by taking pressure off the team by solving bugs, serving customer requests and leading investigations, and progress into owning Travel services of your own.\nKeeping travel operations dependable / by resolving bugs and customer requests quickly and properly\nInvestigating and fixing bugs across the Travel services, reproducing each scenario before changing any code\n\nHandling day-to-day technical requests from customers and colleagues, and explaining what went wrong in plain terms\n\nAdding logging and metrics to what you build, and following runbooks when alerts fire\n\nUnlocking the product roadmap / by shipping well-defined features end to end\nBuilding features across the frontend (React, Next.js) and backend (NestJS, GraphQL, Prisma) in Linear sprints\n\nBreaking work into clear steps, surfacing assumptions early, getting feedback on technical decisions and keeping progress and blockers visible\n\nWriting unit and integration tests, and acting on code review feedback\n\nBuilding depth in a sensitive domain / by growing into ownership of Travel services\nLearning how flight bookings, fares and travel aggregation work, and how they connect to crew changes\n\nTaking ownership of a Travel service module over time, including its uptime, bug rates and resolution times\n\nSharing what you learn through clear pull request descriptions and team documentation\n\nYou should have\nExperience: early-career professional experience as a software engineer, building web applications across both frontend and backend.\n\nExperience: working knowledge of TypeScript and React, and some exposure to Node.js backends. Familiarity with any of Next.js, NestJS, GraphQL, Prisma, Apollo Client, React Query, ShadCN, AWS (Lambda, SQS, RDS, ECS), Jest or Playwright is useful; we don't expect all of it.\n\nExperience: exposure to GDS systems (like Amadeus) or travel aggregator platforms is a plus.\n\nA high degree of ownership: you take a task from ticket to production and see it through.\n\nSound engineering fundamentals: readable code, sensible tests, and systematic debugging.\n\nTechnical depth and curiosity: you want to understand how the wider system works, not only the part in front of you.\n\nA genuine interest in travel and flight booking, and a willingness to learn the industry in depth.\n\nThe ability to explain technical issues simply to customers and non-technical colleagues.\n\nClear, proactive communication about progress, risks and blockers.\n\nA collaborative approach: you work well with other engineers, ask for help when it's the quicker route, and act on feedback.\n\nExperience or interest in early-stage or growth-stage startups.\n\nFluency in English. Other languages are a plus.\n\nBased in EMEA or LATAM, with good working-hours overlap with the rest of the Travel team.\n\nWhy Join Us?\nTackle a unique industry challenge with global impact\n\nBe part of an international, mission-oriented, supportive and fun team\n\nDo your best work, with leading-edge AI tools for all team members\n\nBenefit from support and budget for your learning and development\n\nWe believe that employing a diverse workforce is central to our success at Tilla. We make hiring decisions based on your experience and skills. Therefore, we welcome applications from all members of society, regardless of age, gender, disability, sexual orientation, race, religion or belief.","description_format":"text","description_chars":4771,"description_truncated":false,"requirements":{"experience_years_min":null,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":null,"security_clearance":false,"languages":[{"language":"English","level":"Advanced (C1)","optional":false}]},"benefits":[],"hiring_locations":[{"name":"Germany","iso":"DE","kind":"region"},{"name":"France","iso":"FR","kind":"region"},{"name":"United Arab Emirates","iso":"AE","kind":"region"},{"name":"United Kingdom","iso":"GB","kind":"region"},{"name":"Argentina","iso":"AR","kind":"region"},{"name":"Austria","iso":"AT","kind":"region"},{"name":"Belgium","iso":"BE","kind":"region"},{"name":"Bosnia and Herzegovina","iso":"BA","kind":"region"},{"name":"Brazil","iso":"BR","kind":"region"},{"name":"Bulgaria","iso":"BG","kind":"region"},{"name":"Colombia","iso":"CO","kind":"region"},{"name":"Croatia","iso":"HR","kind":"region"},{"name":"Cyprus","iso":"CY","kind":"region"},{"name":"Czech Republic","iso":"CZ","kind":"region"},{"name":"Denmark","iso":"DK","kind":"region"},{"name":"Finland","iso":"FI","kind":"region"},{"name":"Hungary","iso":"HU","kind":"region"},{"name":"Ireland","iso":"IE","kind":"region"},{"name":"Israel","iso":"IL","kind":"region"},{"name":"Italy","iso":"IT","kind":"region"},{"name":"Kenya","iso":"KE","kind":"region"},{"name":"Mexico","iso":"MX","kind":"region"},{"name":"Montenegro","iso":"ME","kind":"region"},{"name":"Netherlands","iso":"NL","kind":"region"},{"name":"Nigeria","iso":"NG","kind":"region"},{"name":"Norway","iso":"NO","kind":"region"},{"name":"Poland","iso":"PL","kind":"region"},{"name":"Romania","iso":"RO","kind":"region"},{"name":"Saudi Arabia","iso":"SA","kind":"region"},{"name":"Serbia","iso":"RS","kind":"region"},{"name":"South Africa","iso":"ZA","kind":"region"},{"name":"Spain","iso":"ES","kind":"region"},{"name":"Sweden","iso":"SE","kind":"region"},{"name":"Switzerland","iso":"CH","kind":"region"},{"name":"Turkey","iso":"TR","kind":"region"},{"name":"Ukraine","iso":"UA","kind":"region"},{"name":"Albania","iso":"AL","kind":"region"},{"name":"Algeria","iso":"DZ","kind":"region"},{"name":"Andorra","iso":"AD","kind":"region"},{"name":"Angola","iso":"AO","kind":"region"},{"name":"Anguilla","iso":"AI","kind":"region"},{"name":"Antigua and Barbuda","iso":"AG","kind":"region"},{"name":"Aruba","iso":"AW","kind":"region"},{"name":"Bahamas","iso":"BS","kind":"region"},{"name":"Bahrain","iso":"BH","kind":"region"},{"name":"Barbados","iso":"BB","kind":"region"},{"name":"Belize","iso":"BZ","kind":"region"},{"name":"Benin","iso":"BJ","kind":"region"},{"name":"Bermuda","iso":"BM","kind":"region"},{"name":"Bolivia","iso":"BO","kind":"region"},{"name":"Botswana","iso":"BW","kind":"region"},{"name":"British Virgin Islands","iso":"VG","kind":"region"},{"name":"Burkina Faso","iso":"BF","kind":"region"},{"name":"Burundi","iso":"BI","kind":"region"},{"name":"Cameroon","iso":"CM","kind":"region"},{"name":"Cape Verde","iso":"CV","kind":"region"},{"name":"Bonaire, Sint Eustatius and Saba","iso":"BQ","kind":"region"},{"name":"Cayman Islands","iso":"KY","kind":"region"},{"name":"Chad","iso":"TD","kind":"region"},{"name":"Chile","iso":"CL","kind":"region"},{"name":"Central African Republic","iso":"CF","kind":"region"},{"name":"Comoros","iso":"KM","kind":"region"},{"name":"Costa Rica","iso":"CR","kind":"region"},{"name":"Curaçao","iso":"CW","kind":"region"},{"name":"Democratic Republic of the Congo","iso":"CD","kind":"region"},{"name":"Djibouti","iso":"DJ","kind":"region"},{"name":"Dominica","iso":"DM","kind":"region"},{"name":"Dominican Republic","iso":"DO","kind":"region"},{"name":"Ecuador","iso":"EC","kind":"region"},{"name":"El Salvador","iso":"SV","kind":"region"},{"name":"Equatorial Guinea","iso":"GQ","kind":"region"},{"name":"Eritrea","iso":"ER","kind":"region"},{"name":"Estonia","iso":"EE","kind":"region"},{"name":"Eswatini","iso":"SZ","kind":"region"},{"name":"Ethiopia","iso":"ET","kind":"region"},{"name":"Falkland Islands","iso":"FK","kind":"region"},{"name":"Faroe Islands","iso":"FO","kind":"region"},{"name":"French Guiana","iso":"GF","kind":"region"},{"name":"Gabon","iso":"GA","kind":"region"},{"name":"Gambia","iso":"GM","kind":"region"},{"name":"Georgia","iso":"GE","kind":"region"},{"name":"Ghana","iso":"GH","kind":"region"},{"name":"Greece","iso":"GR","kind":"region"},{"name":"Grenada","iso":"GD","kind":"region"},{"name":"Guadeloupe","iso":"GP","kind":"region"},{"name":"Guatemala","iso":"GT","kind":"region"},{"name":"Guinea","iso":"GN","kind":"region"},{"name":"Guinea-Bissau","iso":"GW","kind":"region"},{"name":"Guyana","iso":"GY","kind":"region"},{"name":"Haiti","iso":"HT","kind":"region"},{"name":"Honduras","iso":"HN","kind":"region"},{"name":"Iceland","iso":"IS","kind":"region"},{"name":"Iraq","iso":"IQ","kind":"region"},{"name":"Isle of Man","iso":"IM","kind":"region"},{"name":"Ivory Coast","iso":"CI","kind":"region"},{"name":"Jamaica","iso":"JM","kind":"region"},{"name":"Jordan","iso":"JO","kind":"region"},{"name":"Kosovo","iso":"XK","kind":"region"},{"name":"Kuwait","iso":"KW","kind":"region"},{"name":"Latvia","iso":"LV","kind":"region"},{"name":"Lebanon","iso":"LB","kind":"region"},{"name":"Lesotho","iso":"LS","kind":"region"},{"name":"Liberia","iso":"LR","kind":"region"},{"name":"Liechtenstein","iso":"LI","kind":"region"},{"name":"Lithuania","iso":"LT","kind":"region"},{"name":"Luxembourg","iso":"LU","kind":"region"},{"name":"Madagascar","iso":"MG","kind":"region"},{"name":"Malawi","iso":"MW","kind":"region"},{"name":"Mali","iso":"ML","kind":"region"},{"name":"Malta","iso":"MT","kind":"region"},{"name":"Martinique","iso":"MQ","kind":"region"},{"name":"Mauritania","iso":"MR","kind":"region"},{"name":"Mauritius","iso":"MU","kind":"region"},{"name":"Mayotte","iso":"YT","kind":"region"},{"name":"Moldova","iso":"MD","kind":"region"},{"name":"Monaco","iso":"MC","kind":"region"},{"name":"Montserrat","iso":"MS","kind":"region"},{"name":"Morocco","iso":"MA","kind":"region"},{"name":"Mozambique","iso":"MZ","kind":"region"},{"name":"Namibia","iso":"NA","kind":"region"},{"name":"Nicaragua","iso":"NI","kind":"region"},{"name":"Niger","iso":"NE","kind":"region"},{"name":"North Macedonia","iso":"MK","kind":"region"},{"name":"Oman","iso":"OM","kind":"region"},{"name":"Palestine","iso":"PS","kind":"region"},{"name":"Panama","iso":"PA","kind":"region"},{"name":"Paraguay","iso":"PY","kind":"region"},{"name":"Peru","iso":"PE","kind":"region"},{"name":"Portugal","iso":"PT","kind":"region"},{"name":"Puerto Rico","iso":"PR","kind":"region"},{"name":"Qatar","iso":"QA","kind":"region"},{"name":"Republic of the Congo","iso":"CG","kind":"region"},{"name":"Réunion","iso":"RE","kind":"region"},{"name":"Rwanda","iso":"RW","kind":"region"},{"name":"Saint Helena and Ascension","iso":"SH","kind":"region"},{"name":"Saint Kitts and Nevis","iso":"KN","kind":"region"},{"name":"Saint Lucia","iso":"LC","kind":"region"},{"name":"Saint Vincent and the Grenadines","iso":"VC","kind":"region"},{"name":"Saint-Pierre and Miquelon","iso":"PM","kind":"region"},{"name":"San Marino","iso":"SM","kind":"region"},{"name":"São Tomé and Príncipe","iso":"ST","kind":"region"},{"name":"Senegal","iso":"SN","kind":"region"},{"name":"Seychelles","iso":"SC","kind":"region"},{"name":"Sierra Leone","iso":"SL","kind":"region"},{"name":"Sint Maarten","iso":"SX","kind":"region"},{"name":"Slovakia","iso":"SK","kind":"region"},{"name":"Slovenia","iso":"SI","kind":"region"},{"name":"Somalia","iso":"SO","kind":"region"},{"name":"South Sudan","iso":"SS","kind":"region"},{"name":"Suriname","iso":"SR","kind":"region"},{"name":"Svalbard","iso":"SJ","kind":"region"},{"name":"Tanzania","iso":"TZ","kind":"region"},{"name":"Togo","iso":"TG","kind":"region"},{"name":"Trinidad and Tobago","iso":"TT","kind":"region"},{"name":"Tunisia","iso":"TN","kind":"region"},{"name":"Turks and Caicos Islands","iso":"TC","kind":"region"},{"name":"Uganda","iso":"UG","kind":"region"},{"name":"Uruguay","iso":"UY","kind":"region"},{"name":"United States Virgin Islands","iso":"VI","kind":"region"},{"name":"Western Sahara","iso":"EH","kind":"region"},{"name":"Zambia","iso":"ZM","kind":"region"},{"name":"Zimbabwe","iso":"ZW","kind":"region"},{"name":"Gibraltar","iso":"GI","kind":"region"},{"name":"Vatican","iso":"VA","kind":"region"},{"name":"Venezuela","iso":"VE","kind":"region"}],"hiring_excludes":[],"relocation_offered":false,"industries":["Custom Software Development","Supply Chain & Logistics Software"],"lifecycle":[{"event":"open","at":"2026-11-04T12:26:27Z"}],"visa":[],"liveness":{"score":86,"band":"hot","label":"Hiring now","p_open":1,"p_active":0.86,"p_room":1,"age_days":1,"expected_fill_days":35,"reasons":["conf:1","win:early"],"computed_at":"2026-11-06T05:58:05Z"},"pay":null,"html_url":"https://alion.io/job/tilla-full-stack-engineer","json_url":"https://alion.io/job/tilla-full-stack-engineer.json","meta":{"generated_at":"2026-11-06T21:15:13Z","cache_seconds":300,"methodology":"https://alion.io/methodology","terms":"https://alion.io/terms","contact":"https://alion.io/contact","api":"https://alion.io/developers","about":"Alion is a live layer of people, companies and AI agents: who they are, whether they are real and active right now, what they do and how to work with them, readable by people and by agents and paid per call.","catalog":"https://alion.io/catalog.json","usage":{"tier":"crawler_verified","counted_by":"address","units_charged":1,"used_today":1380,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-11-07T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.02,"usd":0.002,"plus_per_slice":{"credits":0.05,"usd":0.005}},"unit":"per company, plus each slice with data","note":"the employer in depth","call":{"mcp_tool":"get_company","arguments":{"id":688653},"rest":"https://alion.io/mcp/rest/get_company?id=688653"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Ftilla-full-stack-engineer"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"live","price":{"credits":1,"usd":0.1},"unit":"per slice","note":"pay, demand and time to fill for this role and place","call":{"mcp_tool":"market_stats"},"human":"https://alion.io/catalog?offer=market.stats&for=job%2Ftilla-full-stack-engineer"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.02,"usd":0.002},"unit":"per posting in a list","note":"similar open postings","call":{"mcp_tool":"search_jobs"},"human":"https://alion.io/catalog?offer=job.search&for=job%2Ftilla-full-stack-engineer"},{"id":"company.verify","title":"Is this company real and active right now","status":"pilot","price":null,"unit":"per company","request":{"url":"https://alion.io/catalog/request","method":"POST","body":"{\"offer\": \"company.verify\", \"for\": \"job/tilla-full-stack-engineer\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Ftilla-full-stack-engineer"}],"agent":{"mcp":"https://alion.io/mcp/jobs","mcp_open":"https://alion.io/mcp/open","next":[{"tool":"get_job","arguments":{"id":3743443}},{"tool":"search_jobs","arguments":{"company":"tilla.tech","detail":"compact"}},{"tool":"match_people","arguments":{"job_id":3743443},"note":"people open to offers who fit this vacancy"}],"note":"The same data through MCP tools: https://alion.io/mcp/open needs no sign-in (compact searches, postings, people); https://alion.io/mcp with an Alion account has everything. Docs: https://alion.io/developers"}}