Full-Stack Developer: Internal Tools
StarTech Networks
Remote (India)
About the role
StarTech Networks runs an internal time-tracking and productivity dashboard used daily by around 200 people across our fiber-optics division. The application is in production and we are hiring a developer to own it.
You would be the primary developer on it, responsible for the full stack: the application code, the database, the containers it runs in, the server environment underneath, and how it is exposed to its users.
The application is self-hosted on our own hardware and exposed through a Cloudflare Tunnel rather than a public IP. You should be comfortable with that tool and with this style of deployment.
Day to day, the work is primarily maintenance: resolving bugs, answering data questions from users, and keeping the system running for the people who depend on it. Secondarily, it is development: new features and extensions requested by management, built to the standard of the code already there and delivered without disturbing what is running.
Your first one to two weeks are onboarding. The documentation is thorough and covers how the system works and why it was built that way. We expect you to work through it quickly, use AI tooling to accelerate that, and ask as many questions as you need. After that you are carrying both halves of the role at once, so we are looking for someone who can learn an unfamiliar codebase fast and then be trusted to change it.
The application
A single-organization time tracker. Users log time against clients, projects and tasks. The system measures output against efficiency targets and produces reports. Administrators manage accounts, discipline groups, and effective-dated pay rates.
Around 80 JSON API endpoints, 11 PostgreSQL tables, and a dozen server-rendered pages. The codebase is documented in detail, including the reasoning behind its design decisions.
Technical environment
- Backend: Python 3.13, Flask, raw SQL (no ORM)
- Database: PostgreSQL 16, psycopg3 with connection pooling
- Frontend: Jinja2 templates with vanilla JavaScript against a JSON API
- Styling: CSS with custom-property theming, light and dark modes
- Application server: gunicorn, worker and thread model
- Infrastructure: Docker Compose, application and database on a private Docker network
- Ingress: Cloudflare Tunnel
- Operations: scheduled PostgreSQL backups with retention; isolated staging environments
Requirements
- Backend development. This is a backend-first role and you would be writing Python from the first week. Flask experience is ideal, and Django or FastAPI transfers directly. Experience with a mature framework in another language is also relevant, provided your Python is solid. What matters is that you have shipped and maintained something real and understand request handling, sessions, middleware, authentication, and how an application behaves under a worker and thread model.
- Strong SQL. You are comfortable reading and writing SQL directly, and you understand joins, indexes, transactions, and query performance. This codebase does not use an ORM, so experience limited to one will leave gaps.
- Practical self-hosting and deployment experience. You should understand how a request reaches a container on a private network, where logs are written, and what a backup and restore involve. General hosting and operations experience counts for a lot here, since you own the environment as well as the code. Kubernetes experience is not required; we do not use it.
- Data modelling and backend design. Given a new requirement, you can reason about the schema changes it implies, the endpoints and queries they affect, and what else in the system has to move with them.
- Working knowledge of HTML, CSS and JavaScript. Frontend does not need to be your specialty, but you will be working in it directly.
- Effective and disciplined use of AI coding tools. This codebase was built with AI assistance under human architectural direction, and we expect the same approach going forward. We are looking for sound judgment about what to delegate: the ability to recognize when generated code is subtly incorrect, to verify rather than assume, and to maintain code quality while working faster than by hand.
- Good engineering instincts. Follow established practice by default, and depart from it deliberately when there is a clear reason. You should be able to explain your reasoning either way.
Desirable
- Sole ownership of a production system at a previous role
- Experience maintaining separate staging and production environments
- PostgreSQL depth: window functions, lateral joins, effective-dated records, explicit transaction control
How we work
- The role is fully remote from India. Our server and office are in the United States (Central Time). Some overlap with US working hours is required; specific hours are negotiable.
- Development and testing are done locally using Docker. Once a change works locally, it goes to staging. Once it holds up in staging, it goes to production.
- Work is submitted on a branch and reviewed before release.
- Documentation is maintained alongside code.
How to apply
Please send:
1. A portfolio or links to projects you have worked on. Personal projects, self-hosted systems, and professional work are all welcome, particularly where they overlap with the environment described above.
2. A short summary of your development experience: the projects you have taken on, why you started them, what you enjoy working on, and what you learned along the way.
3. Your CV.
Pay: ₹800,000.00 - ₹1,500,000.00 per year
Benefits:
Work Location: Remote