Senior Software Engineer (Java)

Shenzhen, China

Striving for excellence is in our DNA. Since 1993, we have been helping the world’s leading companies imagine, design, engineer, and deliver software and digital experiences that change the world. We are more than just specialists, we are experts.

DESCRIPTION


Currently we are looking for an experienced Senior Software Engineer specialized in Java for our Shenzhen Delivery Center 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. Sometimes may play Development Team Lead and Project Coordinator role as well;
  • Write high quality, testable code following clean code and SOLID design principles;
  • Conduct code reviews;
  • Create 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 presentation of proposed solution to customers;
  • Communicate with the customer on a regular basis to clarify business requirements;
  • Provide coaching to the team members with technical solutions;
  • Work independently while in close collaboration with others in the team and across projects.

Requirements

  • At least 3 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, Web services, Restful services;
  • Understanding of code quality measurements and able to implement efficient Unit Tests;
  • Experienced in designing high quality solutions using OOP, TDD/BDD, Design Patterns and SOLID principles;
  • Experienced in relational database technologies e.g., SQL Server, Oracle;
  • Experienced in Linux, source code control tools (e.g., Git, SVN);
  • Experienced in CI/CD tools (e.g., Jenkins, SonarQube);
  • Good interpersonal skills, analytical mind, get things done 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 and ability to adapt to changes in priorities and requirements;
  • Active learner who is passionate about technology and keeps up to date with technology changes;
  • Good communication skills;
  • Intermediate (CEFR B1) or higher level of spoken and written English;
  • Bachelor’s degree or above in Computer Science, Software Engineering or related disciplines.

Nice to have

  • Experience in Spring Cloud, Microservices is preferred;
  • Experience in 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 in architecture design;
  • Knowledge of front-end technologies (e.g., JavaScript, React);
  • Experience in DevOps operation;
  • Experience in improving project's process;
  • 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 locate in different locations, be able to cope with culture and time zone differences;
  • Experience mentoring juniors or less senior colleagues on the project(s);
  • Experience conducting Trainings or Technical Tech Talks in the area of expertise.

We offer

  • Unique opportunity to work for challenging projects in a multinational team;
  • Competitive compensation depending on experience and skills;
  • Regular assessments and salary reviews;
  • Free English classes;
  • Opportunities for self-realization;
  • Friendly team and creative atmosphere;
  • Flexible working schedule;
  • Corporate and social events.