Software Engineer (EN&CH)
Summary
Builds middle- and back-end services through the full product lifecycle at VTech in Phnom Penh: developing REST/SOAP APIs, scalable services, unit and performance tests, and documentation. Core stack is Java with SQL/NoSQL databases; TypeScript/NodeJS, cloud, and mobile experience are pluses.
Job brief
We are seeking a Software Engineer to execute the full lifecycle of the product development, by programming well-designed, efficient, and testable code that meets specifications.
Responsibilities
- Develop new capabilities and re-architect parts of an existing system.
- Take part in test-driven, iterative development, prototyping, and reviews with a team of developers.
- Design and code middle and back-end in a clean and efficient way.
- Implement scalable and robust services.
- Develop external and internal APIs.
- Develop and run unit and performance tests to ensure scalability and reliability.
- Review and debug code.
- Develops documentation, flowcharts, layouts, diagrams, charts, code comments, and clean code to explain and show solutions.
- Determines and designs system specifications, standards, and programming to prepare and install solutions.
Requirements
- Bachelors degree in Software Engineering, Information Technology or related field
- Between 1 and 3 years of experience in software engineering
- Experience developing server-side web applications in Java
- Experience developing Java Web Services with public API (e.g. REST, SOAP)
- Experience with relational (e.g. MySQL, PostgreSQL) and NoSQL databases (e.g. MongoDB)
- Proficient in object-oriented development
- Able to effectively and quickly adopt new technology
- Knowledge of Java frameworks, architecture, and design patterns
- Good communication skills
Good to have
- 1+ years of work related industry experience; Typescript/NodeJS experience is highly regarded
- Strong understanding of how browsers work (e.g. DOM, events, rendering lifecycle)
- Experience with cross-platform mobile app development (React Native, Flutter, etc)
- Experience deploying and operating services in a Cloud environment (AWS, GCP, etc)
- Experience in test-driven development (TDD); Experience in using Docker