···
Log in / Register
Hiring – Full-Stack Developer
Negotiable Salary
Indeed
Full-time
Onsite
No experience limit
No degree limit
MG3H+JF Pedreira, Portugal
Favourites
Share
Some content was automatically translatedView Original
Description

Before Applying Please complete the short technical task below at the end of this job post: It helps us assess your coding style and problem\-solving skills and shouldn’t take more than 3 hours maximum. Once done, share your solution link (GitHub or similar) and fill out this short form: https://form.typeform.com/to/TA3DMUja About Us We are a fast\-growing software agency based in Portugal, building AI\-driven SaaS platforms, mobile apps, and custom systems. **Our stack is modern and efficient:** Laravel 12 \+ Inertia \+ React 18 \+ Tailwind \+ TypeScript \+ shadcn/ui \+ React Native. We’re now looking for a reliable, fast\-learning Full\-Stack Developer who wants to grow in a long\-term team and work on high\-impact, well\-architected projects. * ️ Tech Stack Laravel 11 / Inertia.js / React 18 / TailwindCSS TypeScript / shadcn\-ui / Axios Docker / GitHub Actions / CI/CD MySQL / Supabase / Redis Hetzner / Terraform / Ploi Responsibilities Develop and maintain SaaS and mobile projects using our internal boilerplate. Collaborate with other developers via GitHub and Asana. Participate in code reviews, testing, and QA cycles. Ensure clean, modular, and scalable code. Communicate proactively and meet delivery deadlines. Requirements 2–5 years of experience with Laravel \+ React (Inertia/Vite). Strong understanding of backend–frontend integration and REST APIs. Proficiency with GitHub and modern dev workflows. Fluent English and excellent written communication. Ownership mindset — reliable, consistent, and curious. Nice to Have Experience with React Native / Expo. Familiarity with CI/CD pipelines or Docker. Experience in multi\-tenant SaaS or agency projects. Why Join Us Work directly on real\-world SaaS apps. Modern tech stack, structured codebases, and clear reviews. Remote\-first, async\-friendly culture — results over hours. Long\-term projects and opportunities for growth. How to Apply **Please include in your application:** A short introduction about yourself (1–2 paragraphs). Links to 2–3 recent Laravel \+ React projects (GitHub or live). The link to your completed technical task. **Technical Interview Task:** Build a Dockerized Laravel Reminder App Task Overview **Goal:** Implement a minimal reminder web application using Laravel 12, Inertia.js (with React and TypeScript), Docker, and MySQL. Users can authenticate, create/manage reminders with due dates/times, and receive browser notifications when reminders are due (client\-side, assuming the tab is open). Why this task? **Tests full\-stack skills:** setup, auth/CRUD, date handling, frontend reactivity, Docker orchestration, JS notifications, and clean UI design. Success Metrics App runs end\-to\-end via Docker Compose. Auth works; CRUD for reminders functional. Browser notifications trigger on due time (demo with a reminder set 1–2 minutes in the future). Code is clean, commented, and typed (TypeScript). UI features a simple but clean layout using Tailwind CSS (e.g., intuitive navigation, responsive cards/forms, subtle styling for readability — no raw CSS overrides). Assumptions \& Notes Use React with Inertia. **TypeScript:** Enable for all Inertia components/pages. **Tailwind CSS:** Required for all styling — install and configure fully. **Notifications:** Use Web Notifications API (request permission on login/page load). Works on localhost; in prod, needs HTTPS. **Timezones:** Store in UTC; display in browser's local time. Tech Stack **Backend:** Laravel 12 (PHP 8\.3\+), MySQL 8\.0 **Frontend:** Inertia.js \+ React \+ TypeScript \+ Tailwind CSS **Containerization:** Docker \+ Docker Compose High\-Level Implementation Steps 1️⃣ Project Initialization Set up a fresh Laravel 12 project. Integrate Inertia with React and TypeScript. Configure Tailwind CSS for styling. Create a basic Inertia layout in Blade. Init Git and commit initial setup. 2️⃣ Docker Setup Build a Dockerfile for the Laravel app (PHP 8\.3\+ FPM, deps, Composer/NPM builds). Define docker\-compose.yml with app and MySQL services (env vars, volumes, network). Update .env for DB connection. Test build and run (migrate after backend). **3️⃣ Backend:** Database, Auth, and CRUD **Migrations:** Users (default) Reminders table (user\_id FK, title, description nullable, due\_at datetime) **Models:** Reminder with fillable/casts, User relation, formatted due accessor. **Auth Controller:** Manual login/register/logout (validation, hashing, sessions). **Reminder Controller:** Auth\-protected CRUD (index: user's reminders sorted by due\_at; store/update: validate future due\_at, ownership check; destroy: ownership check). **Routes:** Web.php with root redirect, guest/auth groups, reminders resource. **Optional:** Seeder for demo data (test user \+ reminders). **4️⃣ Frontend:** Inertia Pages, TypeScript, and Notifications **TS interfaces:** User, Reminder (include formattedDue). **Tailwind styling:** Responsive, clean (e.g., flex/grid layouts, cards, hovers, grays/blues). **Auth Pages:** Login/Register forms (useForm, validation handling). **Reminder Pages:** Index (list cards/table with actions, create button). Create/Edit (forms with datetime\-local, useForm). **Notifications:** In Index, request permission on mount; interval check for due reminders; trigger Notification if permitted. Handle flashes/errors; build assets. 5️⃣ Testing and Demo Run Docker, migrate/seed. **Flow:** Register/login, CRUD reminders, demo notification. **Check:** Auth guards, validation, persistence, UI responsiveness, edges (overdue, no perm). **Stretch:** Basic sorting or timezone display. ✅ End of Task **Technical Interview Task:** Build a Dockerized Laravel Reminder App

Source:  indeed View original post
João Santos
Indeed · HR

Company

Indeed
Cookie
Cookie Settings
Our Apps
Download
Download on the
APP Store
Download
Get it on
Google Play
© 2025 Servanan International Pte. Ltd.