Software Engineer (Backend)
Job Purpose
The Software Engineer will be part of the team to develop operation & maintenance decision-support tools to enhance train reliability and maintenance efficiency. This position involves designing, developing, and maintaining data pipelines, APIs, and cloud infrastructure for various rail-oriented applications. The ideal candidate will have expertise in data analysis, transformation, ingestion, database design, API development, and preferably, cloud infrastructure setup. Collaborating closely with cross-functional teams, the Software Engineer will contribute to building efficient, scalable, and reliable systems.
Responsibilities
The duties and responsibilities for Software Engineer, are as listed below. The list is not comprehensive and related duties and responsibilities may be assigned from time to time.
- Collaborate with cross-functional teams to gather requirements, design solutions, and deliver high-quality software.
- Design and develop services & APIs for data pipelining, access and application integration.
- Translate UI wireframes and Figma design into responsive and maintainable web applications using HTML, Javascript/Typescript, and CSS.
- Build and maintain complex web applicaiton interfaces with validation, dynamic states, and strong usability.
- Troubleshoot and resolve technical issues across application layers.
- Work with relational database such as MySQL, ensuring efficient queries and data modelling.
- Implement CI/CD pipelines for automated testing, deployment and monitoring.
- Develop, test, and document all implementation work rigorously and accurately.
- Implement data security and compliance best practices.
- Implement authentication, authorization, and API security best practices.
- Proactively propose improvement ideas to reduce technical debt and increase the business impact of your team.
Qualifications & Work Experience
Qualifications and work experience include:
- Degree in Science, Technology, Engineering or Mathematics (STEM)
- Previous experience as a software engineer or in a similar role
- Knowledge of security best practices in cloud and database management is a plus
Skills
Technical skills include:
- Programming and Data processing: MATLAB, Python, SQL, or similar languages.
- Databases: MySQL, Microsoft SQL Server, or similar.
- Cloud Platforms: Azure
- DevOps & CI/CD: GitLab CI/CD, Docker
Generic skills include:
- Strong inclination and eager for continual learning and development
- Strong team player
- Critical thinking and problem-solving skills
- Ability to understand and explain complex data and effective interactions with the stakeholders
- Ability to think independently and actively propose solutions to the team.