
Full Stack Developer
- Hybrid
- Chennai, Tamil Nādu, India
- Engineering
Job description
As a Software Engineer at FULL, you will build and scale the products that keep our customers connected — cloud telephony and messaging services, and the web experiences on top of them. You will work across the stack: Python services on Google Cloud that handle calls, SMS and scheduled reminders, and React micro-frontends that power our phone and conversation experiences.
This is a hands-on role for someone with 2–3 years of experience who is ready to own features end-to-end — from design discussion to production rollout — with the support of a senior team that will help you ramp up on the domain, the codebase and our engineering practices.
We are an AI-forward engineering team: agentic coding tools are part of how we work every day. We expect you to use them well, and to bring the engineering judgement that decides what to keep.
We are actively modernising our platform: moving services to a container-based, cloud-native runtime, tightening test coverage and improving observability. You will be part of that journey, not just a maintainer of it. If you like real-time systems, third-party integrations and problems where correctness genuinely matters to a customer's business, this is the role for you.
Roles and responsibilities
Design, develop and ship features across backend services and frontend applications, taking ownership from requirement to production release.
Build and maintain REST APIs and event-driven/asynchronous workflows (queues, scheduled jobs, webhooks) that integrate with third-party communication providers.
Contribute to our React + TypeScript micro-frontend applications — reusable components, state management and performance-conscious UI.
Contribute to our ongoing migration of services to a containerised, cloud-native runtime (App Engine → Cloud Run), and help keep live customer traffic healthy through the rollout.
Write clean, testable, reusable code; add unit and integration tests and keep code-quality and coverage gates green.
Debug and resolve production issues using logs, metrics and traces — including time-sensitive incidents in real-time call and messaging flows.
Use AI and agentic coding tools as part of your daily workflow to move faster — while staying fully accountable for the correctness, quality and security of everything you ship.
Participate in design discussions, code reviews and technical documentation; give and take feedback constructively.
Work with product, QA and other engineering teams to break down requirements, flag risks early and deliver committed scope on time with minimal supervision.
Mentor and unblock junior engineers and interns as you grow into the codebase.
Participate in scrum ceremonies — planning, stand-ups, reviews and retrospectives.
Job requirements
Must Have
2–3 years of professional software development experience.
Strong programming fundamentals in Python or JavaScript/TypeScript, with working knowledge of the other.
Experience building and consuming RESTful APIs with a web framework (Flask, FastAPI, Django, Express or equivalent).
Solid grasp of relational databases and SQL; comfortable writing and reasoning about queries.
Working knowledge of NoSQL / document data stores and when to reach for one over a relational database (Datastore, Firestore, MongoDB, DynamoDB or similar).
Hands-on experience with a modern frontend framework — React preferred — including component design, state management and browser debugging tools.
Practical understanding of a public cloud platform (GCP or AWS) — compute, storage, queues, logging.
Comfortable working with containers — building images, running services locally and debugging them (Docker or equivalent).
Comfortable with Git-based workflows, code reviews and CI/CD pipelines.
Habit of writing automated tests and caring about code quality.
Hands-on with AI-assisted and agentic coding tools (Claude Code, Cursor, GitHub Copilot or similar) — able to prompt effectively, scope tasks for an agent, and critically review and test what it produces rather than accepting it blindly.
Effective problem-solving based on research, debugging and logical reasoning.
Ability to establish priorities and meet deadlines across multiple parallel tasks.
English language proficiency, with the ability to communicate ideas clearly and confidently in a distributed, multi-cultural team.
Python 3 with Flask; SQLAlchemy and MySQL.
Google Cloud Platform — Cloud Run, App Engine, Cloud Tasks, Cloud Storage, Datastore, BigQuery, Cloud Logging, Secret/Key management.
Docker and container-based deployments; container-first services on Cloud Run or similar managed runtimes.
Redis for caching, rate limiting and distributed locks.
React with TypeScript, Redux, Webpack, SCSS/Tailwind; micro-frontend or module-federation setups.
Testing tooling — pytest, Jest, React Testing Library, Playwright.
Code-quality and security tooling — SonarQube, pre-commit hooks, linters
Good to Have
Exposure to CPaaS / telephony or messaging platforms — Twilio, Plivo, Vonage or similar — including voice calls, IVR, SMS or webhook-driven call flows. (Domain knowledge is a bonus, not a requirement; we will teach it.)
Understanding of VoIP, SIP, WebRTC or real-time communication concepts.
Experience with asynchronous programming (asyncio/aiohttp) or background job processing.
Experience migrating or re-platforming legacy applications to modern cloud runtimes.
Familiarity with feature flags, A/B rollouts and progressive delivery (e.g. GrowthBook).
Exposure to observability/error-tracking tools (Sentry, Cloud Monitoring) and push notification services (FCM, APNs).
Awareness of secure coding practices — authentication/JWT, secrets management, PII handling.
Experience shaping AI-assisted workflows for a team — writing repo-level agent instructions (e.g. CLAUDE.md), custom commands/subagents, or MCP integrations.
Proactive, inquisitive nature; willingness to learn and adapt to the need of the hour.
What We’re Looking For
A strong individual contributor who can also collaborate effectively within a team.
Someone who takes ownership of features and delivers end-to-end solutions.
A developer who values clean code, testing, and continuous improvement.
A proactive learner who stays updated with modern backend and cloud technologies.
or
All done!
Your application has been successfully submitted!
You've already applied for this job
We appreciate your interest in this position. Unfortunately, you have already applied for this job.
