[团队简介] 全部团队成员均毕业自美国、日本以及中国名校,包括但不限于哥大,纽大, Art Center College of Design ,东大,早稻田,同志社,清华,交大等。技术团队负责人在纽约 Bloomberg 任高级工程师。项目创始人毕业于哥大,曾在北京新东方和纽约高盛工作,参与过 Unicareer 以及 TFT 口语训练营的创立。
[开发流程简介] Requirement Gathering: The requirement of the project is gathered from both meeting and offline discussions, which will be captured in the form of user stories, and entered into our issue tracking system.
Designing: From each user story, we derive the necessary APIs and assign people to complete the details of the APIs. We have a standard markdown document structure to document backend API. It covers URL, HTTP Method, URL Params, Data Params, Success/Error Response and Sample call in jQuery syntax. The API design document needs to go through the code review process. Once the team agrees on the design, we will create development task for it and assign team member to work on it.
Coding: Each developer works on his/her own feature branch. Once a development task is completed, he submits the code review and follow-up with reviewers to get it reviewed timely. The code review is done in our issue tracking system. Each commit is expected to have reasonable unit tests. Once the code review is passed, he merges his change to develop branch (the master branch is used for release purpose).
Coding-style is enforced as part of the build process. Our script will run a linter before running any tests.
We have a weekly developer meeting where we review the development work in the past week and assign new tasks.
Issue Tracking: We host our own instance of Phabricator to track development tasks / user stories / bugs, etc.
Technology Stack: The project is under control of npm.
sailsjs is our main framework for building our API services.
We use PostgreSQL as our data store.
Our testing framework is mocha.
We use lodash as our main utility library.
Release and Deployment: We are working on setting up Jenkins for the continious build / continious delivery. It is likely that docker will be used to manage the release dependencies.