Senior Software Engineer (Java) Chengdu, China
Senior Software Engineer (Java) Description
Job #: 65565DESCRIPTION
We are looking for an experienced Senior Software Engineer specializing in Java in Chengdu to make the team stronger.
Responsibilities
- Fulfil the roles of key developer and software architect. Sometimes may fill development team lead and project coordinator roles as well
- Write high quality and testable code following clean code and SOLID design principles
- Conduct code reviews
- Create and design, technical and project documentation
- Plan and schedule own work for tasks and projects, also implement functionality without direct supervision
- Perform profiling and troubleshooting of existing solutions
- Coordinate application deployment
- Follow and understand defined software development process
- Participate in workshops and presentations of proposed solutions to clients
- Communicate with clients on a regular basis to clarify business requirements
- Assist team members with providing with technical solutions
- Work independently while in close collaboration with others in the team and across projects
Requirements
- Bachelor's degree or above in Computer Science, Software Engineering or related majors
- Minimum 5 years of experience in software engineering and development using Java, including UML, Modeling and Design skills
- Advanced knowledge of Core Java, Spring
- Good knowledge of Hibernate, Webservices, Restful services
- Experienced in designing high quality solutions using OOP, TDD/BDD, Design Patterns and SOLID principles
- Experience of Linux, source code control tools (e.g., GIT, SVN)
- Experience of CI/CD tools (e.g., Jenkins, SonarQube)
- Understanding of code quality measurements and able to implement efficient Unit Tests
- Experience of relational database technologies e.g., SQL Server, Oracle
- In depth understanding of different phases of software development lifecycle and understanding of Agile Scrum processes
- Good interpersonal skills, analytical mind, get things done attitude, and passion for engineering excellence
- Ability to evaluate various development methodologies SCRUM, Kanban, Waterfall based on project requirement
- Willingness and ability to adapt to changes in priorities and requirements
- Active learner who is passionate about technology and keeps up to date with changes in technology
- Good communication skills
- Intermediate (CEFR B1) or higher level of spoken and written English
Nice to have
- Experience with programming in Go language
- 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 in frontend technologies (e.g., JavaScript, React)
- Experience of DevOps operation
- Experienced in improving project's process
- Ability to evaluate various development methodologies SCRUM, Kanban, Waterfall based on project requirement
- Experience in working with clients and stakeholders from different locations, cultures, and able to deal with the global business environment
- Experienced in mentoring juniors or colleagues with less related experience on the project(s)
- Experienced in conducting trainings or tech talks in the areas 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
- Flexible working schedule
- Compensation for sick leave and paid time off
- Tech talks and hackathons
- Referral bonuses