Lead Software Engineer (Java) Shenzhen, China
Lead Software Engineer (Java) Description
Job #: 45460DESCRIPTION
We are looking for an experienced Lead Software Engineer specialized in Java in Shenzhen to make the team stronger.
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 key Developer and Software Architect roles, and usually also the roles of a Development Team Lead, Project Coordinator, Reviewer or Auditor
- Be a role model for colleagues, e.g. create deliverables and technical documentation in high 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 regular basis to clarify business requirements
- Participate in workshops and presentation of the proposed solutions to clients
- Run demo and education sessions for clients
- Drive full-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
Requirements
- Bachelor's degree or above in Computer Science, Software Engineering or related majors
- Minimum 7 years of relevant development experience, including UML, Modeling and Design skills, and expert knowledge of at least one technical area
- Advanced knowledge of Core Java, Spring, Hibernate, Web services, 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
- Experert in Linux, source code control tools (e.g., Git, SVN)
- Experience with 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
- 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
- Deep understanding of different phases of software development lifecycle and 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
- Upper-Intermediate (CEFR B2) or higher level of spoken and written English
Nice to have
- Experience of Spring Cloud, Microservices is preferred
- Experience of Docker and Kubernetes
- 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
- Knowledge of front-end technologies (e.g., JavaScript, React)
- Experience of DevOps operation
- Experience in improving project's process
- Ability to evaluate various development methodologies Scrum, Kanban, Waterfall based on project requirement
- Work 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
- Experience in mentoring less senior colleagues on the project(s)
- Experience in conducting training or technical tech talks in the area of expertise
We offer
- Experience exchange with colleagues all around the world
- International projects
- Opportunities for self-realization
- Friendly team and enjoyable working environment
- Engineering, corporate and social events
- Professional & soft skills trainings, medical & family care programs, and forums to explore beyond work passion (CSR, photography, painting, sports, etc.)
- Free English classes
- Online training course library, mentoring, career development and potential partial grant of certification
- Unlimited access to LinkedIn learning solutions
- Flexible working schedule
- Compensation for sick leave and paid time off
- Tech talks and hackathons
- Referral bonuses