Roles & Responsibilities
Responsibilities:
- Develop high-quality software design and architecture
- Identify, prioritize and execute tasks in the software development life cycle
- Develop tools and applications by producing clean, efficient code
- Automate tasks through appropriate tools and scripting
- Review and debug code
- Perform validation and verification testing
- Collaborate with internal teams and vendors to fix and improve products
- Document development phases and monitor systems
- Ensure software is up-to-date with latest technologies
- Responsible for software design, development and implementation
- Perform quality assurance check on all products developed
- Assess project progress and performance optimization
- Follow-up with timely software maintenance
- Controlling the work schedule of software development process
Requirements:
- Minimum 10 years of experience in an engineering role
- Minimum Bachelor Degree in Computer Engineering or any relevant field
- Extensive experience in software development, scripting and project management
- Experience using system monitoring tools and automated testing frameworks
- Knowledge of selected programming languages (e.g. Python, C++) and the Java/J2EE platform
- In-depth knowledge of relational databases (e.g. PostgreSQL, MySQL, ODBC, ADO) and NoSQL databases (e.g. MongoDB)
- Familiarity with various operating systems (Linux, Mac OS, Windows)
- Proficiency in design patterns such as MVC, Singleton, Delegate
- Familiar with terms in relation to machine learning and Recommender System Fundamentals
- Analytical mind with problem-solving aptitude
- Ability to work independently
- Excellent organizational and leadership skills