We are looking for a passionate Senior Software Engineer to develop, test, maintain and document program code in accordance with user requirements and system technical specifications. As a Senior Software Engineer, you will work with other Developers and Product Managers throughout the software development life cycle.
Senior Software Engineer responsibilities include:
- Analysing requirements, define system functionality and writing code in the company's current technology stack. The candidate is expected to be familiar with the software development life cycle (SDLC) process from preliminary system analysis to tests and deployment. Ultimately, the role of the Software Engineer is to build high-quality, innovative and fully performing software that complies with coding standards and technical design. Your goal will be to build efficient programs and systems that serve user needs.
- To be qualified for this role, you should hold a minimum of Bachelor's degree in a relevant field, like Computer Science, IT or Software Engineering. You should be a team player with a keen eye for detailed and problem-solving skills. If you also have experience in SDLC, Agile frameworks and popular coding languages (e.g., Java), strong computer science fundamentals we'd like to meet you.
Roles & Responsibilities
The overview of this position (based in Chennai, India) includes :
- Application Design: Collaborate with stakeholders, such as product managers and designers, to understand business requirements and translate them into technical specifications. Design the architecture, user interface, and components of web applications, ensuring scalability, performance, and security.
- Development: Write clean, efficient, and maintainable code for web applications using appropriate programming languages (e.g., Java, JavaScript) and frameworks (e.g., React, Angular). Implement front-end interfaces, back-end logic, and database integration.
- Technical Leadership: Provide technical leadership and guidance to the development team. Mentor and support junior developers, review code contributions, and ensure adherence to coding standards and best practices. Foster a collaborative and productive development environment.
- Application Testing: Develop and implement comprehensive testing strategies, including unit testing, integration testing, and automated testing. Identify and fix software defects or bugs to ensure the stability and reliability of web applications. Conduct performance testing and optimization.
- Application Deployment and Maintenance: Collaborate with DevOps teams to ensure smooth deployment of web applications to production environments. Monitor application performance, troubleshoot issues, and implement bug fixes or enhancements as necessary. Perform regular maintenance tasks, including software updates and security patches.
- Continuous Improvement: Stay updated with emerging web technologies, frameworks, and best practices. Continuously improve the development process, tools, and workflows to enhance productivity, quality, and efficiency. Explore new approaches and techniques to solve technical challenges.
- Collaboration and Communication: Collaborate with cross-functional teams, including designers, product managers, and stakeholders, to understand requirements and provide technical insights. Communicate effectively, both verbally and in writing, to convey complex technical concepts to non-technical team members.
- Documentation: Document the technical specifications, architectural decisions, and development processes for web applications. Create and maintain technical documentation, including API documentation, to facilitate knowledge sharing and support future development efforts.
- Security and Performance: Implement appropriate security measures to protect web applications from vulnerabilities and unauthorized access. Optimize web application performance by identifying and resolving performance bottlenecks, optimizing database queries, and implementing caching mechanisms.
- Troubleshooting and Support: Provide technical support and troubleshooting assistance to address issues reported by users or support teams. Investigate and resolve production incidents in a timely manner, ensuring minimal disruption to the application's functionality.
Skills And Qualifications
- Hands-on experience in analysis, design, coding, and implementation of complex, custom-built applications.
- Strong programming/development skills (Java, Spring framework, Web Services, Eclipse, UI screens, Microservices, API, Spring boot, React.JS, Node.Js)
- Full stack Development: A strong grasp of both front-end and back-end development is important. You should be comfortable working with HTML, CSS, and JavaScript for front-end development, as well as server-side technologies and frameworks for back-end development
- Proficiency in working with databases is important for web application development. Knowledge of relational databases (e.g., MSSQL) and NoSQL databases (e.g., MongoDB, Redis) is valuable. Understanding of database design, querying, and optimization