Software Development Engineer II (SDE II) - Full Stack - India
About Us
Are you ready to build the future of the supply chain? At Gather AI, we’re not just creating software; we’re pioneering a new era of warehouse intelligence. We’ve developed a groundbreaking, vision-powered platform that uses autonomous drones and existing equipment to capture real-time data, completely digitizing workflows that have historically been manual and error-prone. This means facilities operate smarter, safer, and more efficiently, ultimately redefining “on-time, in full” delivery.
If you’re looking for an opportunity to contribute to truly transformative technology and make a significant impact in a vital industry, Gather AI is the place for you. We’re leading the charge in the rapidly evolving robotics industry, and we invite you to join us in reshaping the global supply chain, one intelligent warehouse at a time.
About the Team
You’ll be part of our Engineering organization, working closely with our Full Stack and WMS integration teams. The group builds and operates the production systems behind Gather AI’s warehouse intelligence platform, including APIs, integrations, data pipelines, databases, and application services used by our customers and internal teams every day.
This is a small, distributed engineering team where engineers work across a broad technical surface area and have the opportunity to see their work through the full software development lifecycle, from design and development through deployment, production monitoring, troubleshooting, and improvement.
About the Role
We are hiring an SDE II, Full Stack, for our India-based team. You'll build and run the web platforms behind Gather AI's products - Drone Vision, MHE Vision and SAGE, from the customer-facing dashboards down to the APIs, Integration layers and data pipelines that serve them.
This is a fully remote, hands-on engineering role for someone early in their career who already has experience building production software and wants broader ownership. You’ll work alongside senior engineers, taking on well-scoped features, integrations, and platform improvements while developing deeper expertise across APIs, backend services, databases, distributed systems, infrastructure, and production reliability.
You won’t be limited to writing code against someone else’s design. You’ll contribute to technical decisions, troubleshoot systems in production, work through failures and performance issues, and gradually take ownership of components from development through deployment and ongoing support.
Because our team is distributed across multiple time zones, clear written communication, initiative, and the ability to make progress independently are especially important.
What You’ll Do
Build and maintain production backend services using Python and Node.js/NestJS
Design, build, and maintain REST APIs and integrations with internal and external systems
Work with PostgreSQL in production, including schema design, complex queries, indexing, connection management, and performance tuning
Build and support asynchronous workflows using message queues and distributed system patterns
Apply caching strategies across application and data layers, including understanding cache invalidation and performance tradeoffs
Take features and integrations through the full software development lifecycle, including development, testing, deployment, monitoring, troubleshooting, and iteration
Containerize and deploy services using Docker, Kubernetes, and CI/CD pipelines
Monitor production systems using logs, dashboards, metrics, and other observability tools to understand reliability, throughput, and performance
Diagnose and resolve production issues, including failures across APIs, integrations, queues, databases, and multi-service workflows
Contribute to secure development practices including authentication, authorization, secrets handling, and protection against common application vulnerabilities
Work closely with senior engineers on technical design and architecture decisions while progressively taking greater ownership
Identify opportunities to improve code, reliability, performance, engineering processes, and system design rather than only executing assigned work
Collaborate with Engineering, Security, Customer Success, Product, and other teams as our platform continues to scale
What You’ll Need
2–5 years of professional software engineering experience building and operating production software
An engineering degree in Computer Science or equivalent practical experience
Production experience with Python and Node.js/NestJS, with strong production depth in at least one and working experience with the other
Experience building production-grade APIs, microservices, or backend systems and seeing them through deployment and ongoing operation
Strong SQL fundamentals and hands-on relational database experience, including complex queries, indexing, schema design, and production performance troubleshooting
Experience designing and maintaining REST APIs, not only consuming them
Experience integrating with external systems and understanding real-world concerns such as retries, duplicate processing, failure handling, and unreliable dependencies
Working knowledge of distributed systems concepts including asynchronous processing, message queues, retries, consistency, and failure recovery
Understanding of caching, including what to cache, where caching should occur, and how invalidation is handled
Experience with message queues or asynchronous processing technologies such as Kafka, RabbitMQ, SQS, or equivalent
Experience with Redis or another caching technology
Experience with Azure or another major cloud provider, deploying and debugging, using Docker, Kubernetes, and CI/CD pipelines
Familiarity with Git and modern code review workflows
Understanding of secure coding fundamentals including authentication and authorization, secrets handling, injection risks, and data exposure
Experience working with production systems beyond simply writing code, including monitoring metrics, investigating performance, responding to failures, and improving systems after issues occur
Strong written and verbal communication skills in English, with the ability to document decisions, explain tradeoffs, write clear PRs and design notes, and raise blockers early
A collaborative and curious approach, with the willingness to contribute ideas, ask questions, accept feedback, and work across component boundaries when needed
Nice to Have
Experience building or operating data pipelines, including handling failures, backfills, and data-quality issues
Familiarity with data engineering concepts such as warehouse or lakehouse modeling, dbt or equivalent, and ETL/ELT design
Experience with orchestration or streaming technologies such as Airflow, Flink, or similar
Familiarity with BI and visualization tools such as Metabase, Apache Superset, or equivalent
Experience with multi-region or geo-distributed systems
Experience in logistics, warehouse management systems, robotics, or another physical-world technology environment
Experience incorporating AI-assisted development into the software development lifecycle
Exposure to GenAI code-validation practices or engineering guardrails