Software Engineer Intern

ROKA Technology

ROKA Technology is working on modern machine learning and artificial intelligence algorithms to build next generation multi-channel commerce platform. We are also building community of innovators and makers to tackle modern challenges faced by humanity with technology. We are based in Singapore at NUS BLK71/

Job Description and Requirements:

Requirements:

Write design/development/implementation proposal document using restructured text (rst format) template following guidelines (similar to Python enhancement proposals).
Divide the proposal into implementation tasks in lightweight project management system called Taiga (https://taiga.io/)
Write code or do setup as required in the tasks with relevant Python language framework or other tools necessary.
Use mercurial (hg) distributed version control system to manage all the source code with every commit linked to tasks in taiga.
Use Kallithea Source Code Management for code reviews.
Use python pytest framework to write automated tests.
Write necessary build scripts or continuous integration scripts as required.
Update tasks in trac as completed.
Work on other tools if necessary to help other team member, may involve helping with testing, writing code, debugging, design user interface etc.
Frontend UI/UX design using Polymer Web Starter Kit from google.
Designing a frontend application for backend REST API's.
Manage dependencies and composable components using modern javascript tooling on node like npm, bower, grunt.
Generate front-end deployable code using vulcanize and crisper using Polymer Web Components.

Desired Skills:

Knowledge of english language to write effective enhancement for platform.
Python language programming with emphasis on data structures, decorators and meta programming.
PostgreSQL database server with SQLAlchemy ORM framework (especially use of JSONB, UUID datatype).
Python WSGI and related framework like flask, falcon, django.
Knowledge of REST API and http protocol version 1.1 and 2.0
Asynchronous and synchronous task management using celery framework.
Writing tests using python pytest framework.
Writing scripts for continuous integration.
Working knowledge of continuous integration using buildbot or jenkins.
Desirable to have knowledge of asyncio in python 3.
Knowledge of UI/UX design principle, especially in line with the book "Don't make me think".
Able to work with modern javascript tooling like node, npm, bower, grunt.
Very good understanding of w3c standards especially:
HTML5 - Web Components, Web Workers
CSS3
ES5 (ES6 optional)
Understanding of HTTP REST API status codes like 200, 314, 400, 401, 410, 411 etc and how to handle them in Javascript and integrate them into web components.
Knowledge of token based authentication especially using JSON Web Tokens (JWT).
Working knowledge of Polymer Web Components (http://www.polymer-project.org/) is desirable
Writing tests using javascript framework.
Knowledge of distributed version control like git or mercurial.
Knowledge of code reviews, pull requests.
Knowledge of ecommerce and retail commerce desirable.