Key Responsibilities
A. Existing Application Handover
- Understand the existing application architecture, codebase, and business logic.
- Set up and run the frontend, backend, and database in a local development environment.
- Understand the interaction between React components, FastAPI endpoints, and database operations.
- Identify bugs, incomplete functionality, technical debt, and areas for improvement.
- Maintain existing functionality while implementing new requirements.
B. Frontend Development React
- Develop and maintain user interfaces using React and JavaScript or TypeScript.
- Work with React components, hooks, props, state, and routing.
- Integrate frontend components with backend REST APIs.
- Implement forms, tables, search, filtering, validation, and other UI features.
- Debug frontend issues using browser developer tools.
- Ensure responsive layouts and a consistent user experience.
C. Backend Development – Python & FastAPI
- Develop, maintain, and debug backend services using Python and FastAPI.
- Create and modify REST API endpoints.
- Implement request validation, response models, and exception handling.
- Understand existing business logic and modify it without breaking dependent functionality.
- Implement authentication and authorization as required.
- Write modular, maintainable, and reusable code.
- Investigate API failures, performance issues, and integration problems.
D. Database Management
- Write SQL queries and understand database schemas and relationships.
- Integrate backend services with databases such as PostgreSQL or MySQL.
- Understand existing ORM implementations, such as SQLAlchemy, where applicable.
- Debug data inconsistencies and database-related errors.
- Support database schema changes and migrations.
- Write queries that are reliable and reasonably efficient.
E. AI-Assisted Development
- Use AI coding assistants to understand unfamiliar codebases and accelerate development.
- Generate, review, and improve code using AI tools.
- Use AI to troubleshoot errors, write tests, and document existing functionality.
- Verify AI-generated code for correctness, security, and maintainability.
- Identify hallucinations, incorrect assumptions, and potentially unsafe code.
- Explain the implementation and reasoning behind code generated with AI assistance.
F. Testing & Quality Assurance
- Write unit tests and API tests.
- Debug existing functionality and resolve reported defects.
- Perform regression testing after code changes.
- Validate API requests, responses, and error scenarios.
- Ensure new changes do not adversely affect existing functionality.
- Participate in code reviews and follow engineering best practices.
G. Deployment & Maintenance
- Use Git and GitHub or equivalent version control systems.
- Understand environment variables, dependency management, and application configuration.
- Support application deployment and troubleshooting.
- Work with Docker and cloud environments where applicable.
- Review application logs and investigate runtime errors.
- Maintain technical documentation and setup instructions.
3. Required Technical Skills
Must-Have Skills
- Good programming knowledge in Python.
- Practical understanding of React and JavaScript.
- Understanding of HTML, CSS, and frontend development fundamentals.
- Experience or project exposure to FastAPI or another Python backend framework.
- Understanding of REST APIs and frontend-backend integration.
- Basic SQL and relational database knowledge.
- Familiarity with Git and version control.
- Ability to read, understand, and debug existing code.
- Strong problem-solving and analytical skills.
- Willingness to use AI coding tools and validate their outputs.
Good-to-Have Skills
- TypeScript.
- PostgreSQL and SQLAlchemy.
- Docker and containerization.
- AWS or other cloud platforms.
- CI/CD pipelines.
- Automated testing using Pytest or equivalent frameworks.
- Integration with LLM APIs or AI-powered application features.
- Familiarity with RAG, vector databases, or AI agents, if relevant to the application.