Job Description
As a Senior Software Engineer, you will be an integral part of a Scrum team consisting of developers and testers, taking ownership of the entire software development lifecycle from concept to deployment. You will play a key role in ensuring software quality, security, and performance while troubleshooting and resolving issues, including those in production environments. Your responsibilities will include designing, developing, testing, building, and automating deployments for software applications, libraries, APIs, and services, while ensuring seamless integration with other systems.
You will mentor less experienced developers, conduct knowledge transfer sessions, engage in pair and mob programming, and lead code reviews. By following development best practices and team coding standards, you will help cultivate a culture of continuous improvement. Your ability to communicate effectively, collaborate within a team, and demonstrate leadership will be critical in maintaining adherence to Scrum methodology.
Your role will involve engaging in backlog refinement, sprint planning, stand-ups, and retrospectives while fostering Agile and DevOps practices, including eXtreme Programming, CI/CD, and BDD. You will also be responsible for breaking down user and technical stories into actionable tasks, ensuring clear implementation guidelines and helping the team execute them efficiently. Staying up to date with emerging technologies and industry trends, you will contribute to innovation and process improvements within the development team.
Additionally, you will provide regular updates to the Team Manager, quickly acquire a working knowledge of the company’s systems, and develop professional relationships with IT and non-IT stakeholders to ensure smooth collaboration.
Qualifications
To succeed in this role, you should have at least seven years of experience in software development, with prior roles such as Senior Software Developer or Senior Software Engineer. A bachelor’s degree in Computer Science, Engineering, or a related field, or equivalent practical experience, is required. Strong backend development experience with C# and .NET, combined with proficiency in JavaScript or TypeScript using UI frameworks such as Angular, React, or Vue.js, is essential.
A solid understanding of data structures, algorithms, and object-oriented design principles is necessary, along with familiarity with software architectural patterns like Client-Server and Layered architecture. You should have in-depth knowledge of relational databases such as SQL Server, PostgreSQL, or Oracle, as well as experience with Clean Code principles and code refactoring.
Your background should include working with software testing frameworks and automated testing tools, ideally with a test-first approach such as Test-Driven Development (TDD) and Behavior-Driven Development (BDD). Knowledge of version control systems like Git and collaboration tools such as Azure DevOps or JIRA is also important. A strong analytical mindset, attention to detail, problem-solving skills, and a proactive approach to learning are required to thrive in this role.
Strong communication skills and the ability to work collaboratively in a team environment are crucial. You should be fluent in English, with excellent verbal and written communication skills, including technical documentation. A conversational level of Vietnamese will be beneficial for local communication. An Agile mindset, along with experience working in Agile or DevOps environments using Scrum or Kanban methodologies, is also necessary. The ability to work independently, along with strong organizational and leadership skills, will further contribute to your success.