
Software Engineer
- Chennai, Tamil Nadu
- Permanent
- Full-time
- Set up and integrate HPC job scheduling capabilities. Implement features to submit, queue, and track simulation jobs on HPC resources, interfacing with job schedulers like Slurm for managing workloads.
- Build monitoring dashboards for job status and results. Develop front-end components that display real-time status of simulation runs and provide data visualization of simulation outputs (e.g. charts, graphs) for analysis and decision-making.
- Design and develop the simulation platform’s web application, including both client-side interfaces and server-side logic, ensuring a user-friendly UI and scalable back-end
- Implement inter-service communication and service-oriented architecture for the platform’s backend components. This includes designing RESTful APIs for efficient communication between services
- Ensure code quality and reliability through unit testing, integration testing, and code reviews.
- Collaborate with cross-functional teams throughout the development cycle to gather requirements, refine the platform’s features, and ensure the solution meets user needs and performance goals.
- Optimize performance and scalability of the application. Profile and improve system performance to handle computationally intensive simulation data and concurrent users, leveraging best practices for high-throughput and low-latency systems.
- Stay updated with emerging technologies and industry best practices. Bring new ideas to the team by exploring modern frameworks or tools that could enhance the platform’s capabilities.
- Education: Master’s degree in Computer Science or a related field, or Bachelor’s degree in Computer Science (or related) with at least 3 years of hands-on web application development experience
- Experience: Minimum 3+ years of professional software development experience, including building web applications or services. Proven track record of delivering software projects from design to deployment.
- Programming Skills: Proficiency in React, Fast-API, Python and JavaScript programming languages, with the ability to write clean, efficient, and well-documented code.
- Team Collaboration: Strong communication skills and ability to work effectively in a cross-functional team setting. Comfortable collaborating with diverse team members (developers, testers, domain experts) and conveying technical ideas clearly.
- Adaptability: A willingness to learn new technologies and adapt to evolving project requirements. Enthusiasm for working in a dynamic, fast-changing environment where priorities may shift as the project grows
- Full-Stack Experience: Demonstrated experience as a Full Stack Developer, comfortable with both front-end UI development and back-end server development. Ability to switch between building intuitive user interfaces and optimizing server logic is highly valued
- HPC/Simulation Background: Experience working on projects involving scientific computing, simulations, or HPC applications. Familiarity with parallel computing concepts or engineering simulations (CFD, FEA, etc.) can help in understanding the platform’s context
- DevOps & CI/CD: Hands-on experience with DevOps tools and workflows. Knowledge of setting up CI/CD pipelines using platforms like Azure DevOps, Jenkins, or GitHub Actions to automate build and deployment processes