Lead Software Engineer (Java) Ho Chi Minh, Vietnam
Lead Software Engineer (Java) Description
Job #: 51700DESCRIPTION
We are looking for an experienced Lead Software Engineer specializing in Java in Ho Chi Minh City. We have many upcoming opportunities with global brand-name clients for high-profile projects that requires someone with excellent technical delivery skills and team leadership.
EPAM Systems, Inc. (EPAM) is a global product development, digital platform engineering, and digital and product design agency headquartered in the US. EPAM has been named 5 times in Forbes’ 25 Fastest Growing Public Tech Companies. Vietnam is the most recent location that EPAM has established office. This is your opportunity to join an organization in start-up mode that plans to (at least) double in size every 2-3 years. We are looking for excellent employees that want to see a similar growth in their careers.
We Value
Value the individuals – We encourage and motivate people to grow. We perceive our people as a source of our success;
Strive for excellence – We strive for the highest standards of excellence and continuously learn. We take pride in our engineering and accomplishments;
Act as a team – We treat one another with respect and encourage the best ideas to come from anywhere within the organization. We value our diversity;
Focus on Customers – We build long term customer relationships, as we strive to always understand our customers' business and needs;
Act with integrity – We operate legally, honestly and ethically. We take responsibility for our actions.
Responsibilities
- Play a multitude of different roles on a project, depending on client needs; development team lead, key developer, software architect roles, project coordinator, reviewer or auditor
- Be a role model for colleagues, e.g. create deliverables and technical documentation at a high level of quality
- Understand, follow, and enhance defined software development process and introduce engineering practices
- Provide input on, follow, and evangelize code quality guidelines and standards
- Review and audit design solutions
- Conduct code reviews and highlight best of breed solutions
- Identify and troubleshoot application code-related issues, review and provide feedback to any required final user documentation
- Communicate directly with architects on client’s side
- Communicate with clients on a regular basis to clarify business requirements
- Participate in workshops and presentation of the proposed solutions to clients
- Run demo and education sessions for client
- Drive full life-cycle of application development using Agile approach:
- Idea generation and high-level vision creation
- Solution design and documenting, proposal
- Development, Testing, and Production launch
- Be a member of cross-functional teams that experiment with new technology and proactively search for the best solutions and ideas in the marketplace
- Coordinate your work with other developers to deliver first-class technology solutions in a positive, fun, yet challenging and deadline driven environment
- Work closely with internal and external product and technology teams to bring technology solutions and perspectives to the product development process
- Proven experience in evaluating theoretical knowledge vs. practical (on-the-job) skills and seniority level of candidates as well as actionable feedback and recommendations on positions/projects matching
Requirements
- Bachelor’s degree or above in Computer Science, Software Engineering or related major
- Minimum 7 years of relevant development experience with expert knowledge of at least one technical area in Java
- UML, Modeling and Design skills
- Advanced knowledge of Core Java, Spring, Hibernate, Webservices, RESTful services
- Understanding of code quality measurements and able to implement efficient Unit Tests
- Expert in designing high quality solutions using OOP, TDD/BDD, Design Patterns and SOLID principles
- Expert in relational database technologies e.g., SQL Server, Oracle
- Expert in Linux, source code control tools (e.g., GIT, SVN)
- Experience of CI/CD tools (e.g., Jenkins, SonarQube)
- Excellent interpersonal skills, analytical mind, conscientious attitude, and passion for engineering excellence
- Ability to analyze several possible decisions of engineering problem and evaluate which one is better suited
- In depth understanding of different phases of software development lifecycle and understanding of Agile Scrum processes
- Willingness to adapt to changing requirements and ability to prioritize accordingly
- Active learner who is passionate about technology and keeps up to date with technology changes
- Good communication skills in international environment
- Upper intermediate (CEFR B2) or higher level of spoken and written English
Nice to have
- Ability to lead or coordinate a small team of 2-3 developers; coaching, reviewing code, informal training, directing tasks
- Experience in the financial industry; banking, payment services, insurance, fintech
- Experience with test automation framework e.g. Selenium
- Experience of Docker and Kubernetes, Spring Cloud, Microservices is preferred
- Expert in debugging Java and optimizing application performance
- Familiar with at least one unit-testing framework, such as Junit or TestNG
- Experience of architecture design and DevOps operation
- Knowledge of frontend technologies (e.g., JavaScript, React)
- Ability to evaluate various development methodologies SCRUM, Kanban, Waterfall based on project requirement
- Working experience in global environment where colleagues, stakeholders and onsite client team are based in different locations, be able to cope with differences in culture, and time zones
- Experienced in mentoring less senior colleagues on the project(s)
- Experienced in conducting training or technical tech talks in the area of expertise
We offer
- Unique opportunity to work for challenging projects in a multinational team
- An extremely international working approach; expect to work with clients, trainers, managers from major cities in Asia, Europe and the US
- There is no typical day; you will have the opportunity to be involved in tech talks, client demos, training, prototyping, pre-sales as well as software development
- The highest levels of technical software delivery; you will be challenged and you will learn new skills and techniques
- Competitive compensation depending on experience and skills
- 10 days paid sick leave
- 19 days paid vacation
- 13th month salary as standard
- Regular assessments and salary reviews
- Free English classes and unlimited self-service trainings
- Opportunities for self-realization
- Friendly team and creative atmosphere
- Flexible working schedule
- Corporate and social events