Return to site

EIC Education Techtalk Notes

EIC Education at Coderbunker.

Saturday September 6th 2016 we had the pleasure to host EIC Education at Coderbunker. EIC Education, China's largest international education company, was represented by Gabriel Paquin (VP of Engineering) and William Hund (Director of Product Design).

Gabriel talked at length about their business and how it relates to the work the technology team does. How he came to join EIC is in itself interesting, as he came through an acquisition of New Pathway, a company founded in China by Sam Hwang a Korean-American in 2009. Gabriel worked there as a CTO creating Prepmith (prepsmith.com), a big part of the motivation behind the acquisition of New Pathway by EIC Education in 2014.

Originally a 5 person engineering team, it has now grown inside EIC to 25, including product management with a total of 10 nationalities. 15 members of that team are specifically developers.

EIC Education which has been running for 20 years, is primarily a sales organization. EIC has five business lines, supported by multiple legacy systems. These systems support EIC through the three phases of hte sales process: pre-sales, contracts, after-sales service. EIC  began by providing university counselling services to students going to study abroad. Over the years it has expanded its counselling service to 24 cities in China while expanding into new lines of business like Test Preparation and Study Tours. At the end of 2014 EIC acquired New Pathway Education & Technology Group. New Pathway Which included a children’s English business called Scholartree, a premium counselling service and the test preparation business including a blended learning system called Prepsmith (www.prepsmith.com).

EIC’s mission is to provide lifelong learning for its customers through a wide range of educational products and services tailored to different ages and stages of life. The goal of EIC’s CRM project is to encourage collaboration and sales across business lines. A student hoping to study at university in the US will require a good TOEFL score. This sale requires collaboration and separate contracts signed in counselling and test-prep business. Taking advantage of this opportunity depends on an ambitious Customer Relationship Management (CRM) system, one of the hardest system to implement properly due to the complex business logic it requires. Sales engineering CRM is the front of the business and it wouldn't have been possible to implement the vision by relying on the many legacy systems and the multiple shared Microsoft Excel spreadsheets used to manage the business until then.

Key to negotiating the expensive fees for a CRM system is to sell a vision to the provider. To come up with that vision, engineering leadership must understand very well the pros and cons of the platform and be able to show that understanding to the provider.

CRM projects are really difficult; a  2013 survey by Merkle showed that two thirds of the CRM projects fail.

Successfully migrating decades of heterogeneous data from multiple legacy systems is "the hardest thing that I have done in my entire life" according to Gabriel Paquin. It requires faith that it's possible to turn a complicated mess into "gold".

There are a handful of large CRM providers globally, with Sales force and Microsoft Dynamics well suited to EIC’s needs in China. After discussions with both, it became clear to Gabriel that although Microsoft had a clear understanding from a system perspective, Salesforce was in the end much more suitable to their heavy focus on sales and business.

Implementation was originally led by an outsourced vendor with a large number of consultants but that team soon came under the direct leadership of Gabriel and a set of hand-picked freelancers and internal team developers (many who are also members of Coderbunker). Gabriel said: "If you want to own the future of your company, you need to own the technology". An additional benefit of this hands on approach facilitated the hand off of the finalized project to the internal team. Finally, Gabriel's approach made it also possible to be even more ambitious and offer a cloud based implementation, rare in China.

Unified identity management across EIC’s many systems was the key initial challenge CRM project. EIC’s technology is made up of several legacy systems used by several business lines and creating a Single Sign-On benefits system integration and user-experience dramatically. To do this, Gabriel investigated a number of vendors such as OKTA and Azure Active Directory before settling on Sales force Identify. This was a core technology to the Launchpad, one of the many front end and micro services combos that have been built inside EIC.

There's a consistency to the projects at EIC: new apps have a rich Javascript frontend and a REST backend. All are stored as separate repositories on Github. All run through Codeship.io for continuous build, testing and deployment to staging systems. Rollbar is used to capture and track exceptions across all systems. A design framework of HTML, CSS, JS & images are developed and maintained globally which all  applications utilize.

This allows the streamlining of product development across EIC’s applications, which improves quality, and speeds up design, development and on boarding of new team members. By focusing on creating standalone API, the team is creating corporate-wide shared reusable and centralized API.

Despite some of the cloud services being hosted outside China, they bring enough of a quality and speed advantage that they are worth the sacrifice. The reality is that anything networked is always going to be a challenge in China due to poor quality infrastructure (such as problematic Internet) but that the requirements for global collaboration make overcoming these challenges essential.

Prepsmith, under development for 3 years, is built on Ruby-on-Rail and EmberJS. In contrast with the new stack which is AngularJS as the frontend framework and the use of Ruby with Sinatra to build the micro-services to support those frontend.  

Another upcoming challenge is role-based access control (RBAC) to complement authentication and have centrally managed role. Although roles are still saved at the app layer, Gabriel wants to implement a centralized way to manage these roles and permissions.

For hiring, Gabriel doesn't look for a specific background. Although their developers eventually turn mostly into Ruby developers for the backend and Javascript for the frontend, Gabriel has hired all kinds of background; his first hire at New Pathway was nuclear power engineer. He chose him specifically because he was passionate about learning. Now, employees such as Sacha, who was away from programming after graduating 13 years ago, just now got back into development and are quickly turning into superstars.

Everyone in the team is valuable and what is the most important is to find a cultural fit with a personality that is curious, humble, interested - even with no experience - that want to figure out stuff and don't have to wait for guidance. Gabriel has been impressed by his Chinese employees; even those that never left China are internationally minded and have a very logical approach to problem solving.

Workshop Notes: WeChat Enterprise

After the talk, Gabriel and William presented a technology they used for an external project based on WeChat Enterprise.

A WeChat Enterprise account is similar to a service account with regards to it’s API & JS SDK. Enterprise enables customized menus, posts notifications, bot interactions and many kinds of control through the SDK. Enterprise however is focussed on tools to help a company function and it’s employees to communicate. An enterprise account is like a company’s own private wechat where sub-groups can be setup to support different teams and functions within a company.

As it is private, the operator invites users to join the account (enterprise accounts cannot be searched for). WeChat Enterprise also has its own group chat application that has groups reflecting the organizational structure defined in the administrative panel and ability to upload any type of files.

Getting a WeChat Enterprise account is a complex bureaucratic process that requires a chinese company to provide many official documents, a chinese national nominated as the account operator, a domain website with an Internet Content Provider (ICP) license, 300RMB to pay for verification. Only the operator has full access to the administrative site, which requires 2nd factor authentication. While Tencent is very responsive to customer service requests, the entire setup setup and verification process takes 2 weeks.

Once setup, the system can integrate with an ICP enabled website running on the stack of the developer's choice. In the case of the sample project created by William and Gabriel, this was running a Refinery CMS (Content Management System in Ruby-on-Rails) site to require OAuth authentication (open.qq.weixin.com) to the WeChat Enterprise account at the site-level instead of individual pages. An important thing to note is that OAuth authentication only works in the WeChat integrated browser; there's no use trying to get it working on any other browser.

Ruby Gems used

https://github.com/Eric-Guo/wechat

  • Enables Command-line interface settings

  • Could build an entire management backend here

https://github.com/skinnyworm/omniauth-wechat-oauth2

  • Entreprise and personal account

  • Need to set priority to wechat_qiye.rb

Key URLs of WeChat Enterprise:

All Posts
×

Almost done…

We just sent you an email. Please click the link in the email to confirm your subscription!

OKSubscriptions powered by Strikingly