Job Overview:
At Foundation AI, we are looking for an Associate Software Engineer who has 0-2 years of work experience to develop and maintain high-quality software solutions. The ideal candidate is a problem solver with a good technical background who can contribute to the development and implementation process while continuously improving system performance and scalability. Should have Adaptability and willingness to learn new tools/languages. They should possess good communication skills as well as a positive attitude and a drive to learn .
Key Responsibilities:
- Software Development : Write clean, maintainable, and well-documented code under guidance. Follow coding standards and development best practices..
- Bug Fixing: Investigate and fix simple bugs assigned by senior developers. Participate in triaging and debugging activities
- Unit Testing & Code Reviews: Submit code for review and apply feedback. Observe senior engineers to learn from peer reviews. Write and maintain unit and integration tests for developed features and participate in test case reviews and QA cycles.
- Problem Solving, Accountability, Feedback & Improvement: Apply logical thinking to resolve issues and escalate when needed. Take ownership of assigned tasks and deliver within timelines. Accept constructive feedback and show improvement over time
- Version Control: Use Git tools effectively to manage code commits and branches.
- Agile Participation: Attend daily stand-ups, sprint planning, and retrospectives. Understand and contribute to team velocity and goals.
- Continuous Learning & Mentorship : Stay updated with new tools, technologies, and trends in the software development space. Work closely with a mentor or lead engineer to improve skills and domain knowledge.
- CI/CD & DevOps: Support continuous integration and deployment processes.
- Cross-Functional Communication: Work closely with product managers, designers, and other engineers to understand business requirements and translate them into technical solutions
- Documentation: Create and maintain basic technical documentation for assigned work (e.g., APIs, modules, processes).
Note:
Responsibilities will be tailored based on the candidate s experience and expertise, aligning with Software Engineer I, II, or III levels
Skills and Tools:
- Writes efficient, maintainable, and testable code with some consideration for performance and error handling
- Understands fundamental programming concepts such as variables, loops, conditionals, and functions..
- Familiar with basic development tools such as IDEs and version control (e.g., Git clone, commit, push).
- Understands version control branching strategies and contributes to team repositories (e.g., branching, pull requests, and merges).
- Capable of debugging issues independently using IDE tools, logs, and debugging utilities.
- Supports peer code reviews by offering basic feedback on style, logic, and potential improvements
- Understand requirements and be able to implement features according to provided specifications.
- Interprets functional and non-functional requirements independently for small, well-defined tasks.
- Collaborates with peers and senior developers to refine requirements within the context of a task or feature.
- Documents uncertainties or blockers and escalates issues promptly when requirements seem unclear.
- Evaluates how changes in requirements impact existing code and dependencies.
- Analyzes moderately complex requirements and breaks them down into implementation steps.
- Suggests minor refinements or alternative approaches to optimize task implementation based on understanding of system constraints and best practices
- Basic awareness about the software development lifecycle
- Should be able to follow the software development lifecycle
- Should be able to enhance the processes related to software development. Follow coding standards
- Should have good technical competence in programming languages like Python, javascript
- Should be able to understand key components of the technology stack
- Should be able to work on the key components used in the technology stack
- Should be able to run the Unit /Integration test code
- Should be able to write unit testing for the features owned.
- Should be able to derive the coverage for the unit test written
- Maintain technical documentation for developed software, APIs, and processes
- Write technical documentation for the code written
- Publish technical documentation for the code written
- Should assist the team in problem-solving
- Debugs moderate issues with support
- Proposes solutions for minor technical challenges
- Follows task instructions accurately
- Capability to break down problems into smaller chunk of problems
- Identifies basic issues and reports them
- Suggests minor process improvements