
Software Engineer (Fullstack)
- Hyderabad, Telangana
- Permanent
- Full-time
Location: Hyderabad, India
Work Mode: Office
Reporting to: Engineering ManagerAbout Us:Foundation AI automatically ingests incoming documents, emails, and attachments from across your firm. It profile-matches, classifies, and saves each to your DMS, and then automates document-dependent workflows according to your rules.
Read more about us atJob Overview:At Foundation AI, we are looking for a Software Engineer to help design, develop, and optimize high-quality software solutions. You will be a key contributor to our product teams, working across the full stack to deliver impactful features. This role demands strong coding fundamentals, a problem-solving mindset, and a willingness to learn and adapt. You’ll collaborate with engineers, product managers, and designers to build scalable, secure, and maintainable software.Key Responsibilities:
- Software Development: Write clean, maintainable, and scalable code using the company’s technology stack.
- Feature Implementation: Work closely with peers and cross-functional teams to build and deliver features end-to-end.
- Code Quality: Participate in code reviews, write unit and integration tests, and follow clean code and best practices.
- Collaboration: Work with designers, product managers, and QA to understand requirements and deliver solutions.
- Agile Execution: Participate in agile ceremonies like sprint planning, grooming, and retrospectives.
- CI/CD & DevOps: Contribute to deployment pipelines and help maintain a reliable delivery process.
- Debugging & Troubleshooting: Investigate and resolve issues and bugs in production and staging environments.
- Documentation: Maintain documentation for features, services, and key technical decisions.
- Programming Languages:
- Develop, test, and deploy software in at least one core backend and one frontend language from our tech stack.
- Follow clean code principles and use common design patterns.
- Participate in technical decision-making around frameworks and libraries.
- Write efficient and readable code that supports scalability and maintainability.
- Participate in peer code reviews and incorporate feedback effectively.
- Debug code and assist in performance tuning and optimization.
- Show willingness to learn and adapt to new tools and technologies.
- Requirements Analysis:
- Understand technical requirements from product specifications.
- Break down user stories into development tasks with guidance.
- Identify dependencies and raise risks or blockers early.
- Provide input on implementation feasibility and suggest alternatives.
- Participate in requirement clarification discussions.
- SDLC:
- Deliver individual tasks/features with guidance from senior engineers.
- Follow SDLC practices including testing, code reviews, and version control.
- Contribute to improving development processes.
- Participate actively in sprint ceremonies and discussions.
- Ensure timely delivery with attention to quality.
- Technical Competency:
- Build end-to-end features and components across frontend and backend.
- Write modular, reusable code with good structure and documentation.
- Troubleshoot and fix bugs in existing codebases.
- Contribute to system design discussions with guidance from senior team members.
- Follow coding conventions and architectural guidelines.
- Unit Testing:
- Write and maintain unit and integration tests.
- Ensure code coverage for owned features.
- Learn and adopt test-driven development practices.
- Use testing tools and frameworks recommended by the team.
- Estimation:
- Provide time estimates for tasks with guidance.
- Contribute to sprint planning and estimation discussions.
- Learn to balance effort vs. complexity for assigned work.
- Problem-Solving:
- Solve moderately complex problems with clear approaches.
- Ask the right questions to unblock yourself and improve solutions.
- Learn from code reviews and retrospectives to improve problem-solving.
- Log and document bugs/issues systematically.
- Critical Thinking:
- Understand the trade-offs between performance, maintainability, and complexity.
- Raise questions about unclear assumptions or edge cases.
- Consider scalability while implementing features.
- Stay curious and open to exploring new tools, techniques, or frameworks.
- Effective Communication:
- Communicate task status, blockers, and risks clearly to the team.
- Document decisions, endpoints, or processes as needed.
- Collaborate effectively across engineering, product, and design teams.
- Participate in knowledge-sharing discussions and demos.
- Ownership:
- Own development of assigned tasks and features.
- Take accountability for the quality and completeness of your work.
- Follow through on tasks from implementation to testing to deployment.
- Be proactive in identifying and fixing bugs, inefficiencies, or gaps.
- A B.Tech degree in Computer Science or equivalent experience relevant to the functional area.
- 2–4 years of experience as a Software Engineer, preferably in full-stack development.
🌐 Learn more about us:Powered by JazzHR