China’s Pride at RailsConf 2010: IT168 Interviews Idapted System Architect Guo Lei

BEIJING, P.R.C, Jul.1st, 2010 - RailsConf in 2010 is the most important conference within the Ruby on Rails Community. Held this year on June 8th in Baltimore, Maryland, USA; the highlight for the developers in China, is neither the unveiling of Rails 3 nor the attendance of Ruby heroes at the event. It belongs to a young Chinese man who took the stage at RailsConf2010 by storm.

So who is this young man? How did he manage to pass all of the selection process and make it to RailsConf 2010? IT168 managed to speak to Guo Lei, System Architect at Idapted Ltd., a promising young man born in the 1980s.

Guo Lei, Idapted System Architect, at RailsConf2010
Guo Lei, Idapted System Architect, at RailsConf2010

IT168: Can you briefly describe what you do and a little bit background of yourself?

Guo Lei: I started writing codes when I was in university, where I majored in Environmental Engineering. Personally I’ve always been interested in computing technology, so when I was studying for my masters in Beijing Aeronautical University, I decided to major in Information Technology. In the early beginning, I used VB for my projects for a year, and later in 2004 I started applying Java into my work. My first job was at Yongyou, where I applied .net in web developments. I joined Idapted in 2007 and am currently attached to the company.

IT168: Can you briefly introduce RailsConf, how to participate in it and its topics?

Guo Lei : RailsConf is the most important conference for the Ruby on Rails community. Since 2006, RailsConf is an annual event held in the United States which is organized by O’Reilly Media. During the conference, the Rails Core Team will introduce the latest developments in the field as the conference is a platform where new releases are announced, such as Rails 3 Beta being the highlight of this year’s conference.

Since 2008, RailsConf started to include “Ruby Heroes” as part of the awards presentation ceremony, which is a way to honor outstanding contributors to the Rails community. RailsConf started out in a much smaller scale, and the discussions were rather focused. Idapted’s CTO, Jonathan Palley, participated in the 2007 conference and according to him, RailsConf back then was about what Rails can do and that last contributions to the open source code. Over the years it has significantly grown to a much larger scale. This year alone, there are more than 1,000 participants from around the world, where keynote speakers come from ten different countries. Discussion topics vary from compilers to JRuby and so on, which has subsequently attracted big companies like Google to participate.

RailsConf also took this opportunity to announce next year’s event details. You can submit proposals for talks 8months before the event until three months before the event and the organizers will then begin selecting from a host of thousands of papers and narrow it down to 60 as keynote presentations. Selected participants will be notified to prepare, finalize and present their keynotes. Any can attend RailsConf for a registration fee of around USD800.

IT168: What’s the selection criteria to become a keynote speaker? Why do you think you guys were selected? Or perhaps you can share a bit about what is it about your presentation that interests others?

Guo Lei : They have a special committee that is responsible for the selection process. I believe their selection criterion covers the perceived interest level of a talk, and how much attention will it draw from the audience. Two years ago, Idapted was rapidly growing and our coding became more and more complicated. So we decided to revamp our entire system. Two months go, we finalized our two-year journey and experience, and we were honored to be chosen by RailsConf to speak.

I think what was interesting from our presentation was how we refactored one monolithic application into various independently maintainable applications. Currently, standard Ruby on Rails projects use one application, but what we did was that we break that down into various parts and turn one very complicated application into a multiple application-system which ismuch smaller and independent. We thought of ways so that these applications can be more in sync with one another. We also shared how one can break down a much larger system into multiple, smaller applications.

IT168: How did you first think of the idea on re-factoring a monolithic application into many independently maintainable applications?

Guo Lei : We did take quite some time to figure this out. At the early stages, we segregated into three applications but the results were not satisfactory. Later we thought, “Hey, why don’t we segregate these applications based on various needs so that they can function well with each other?”

IT168: Would that create unnecessary stress for the database?

Guo Lei : This was actually one of the problems we were facing. Right now each application has its own database, and when they need to interact with each other, for example when Database A needs to read data from Database B, Database A is only allowed to read it, but not write to it. This will guarantee that databases will run smoothly, since one can only be written to by one application at a time; hence each programmer’s role is much clearer. If you need to write something, you must do it from Database B. This was our solution to solving the database issue.

IT168: Can you share on why Idapted decided to restructure the system, and what was the experience like?

Guo Lei : Idapted was founded in 2006 and I joined them in July 2007. At the beginning we only used one application to manage the logistics, but in early 2008 our customer base started to grow and eventually more demands began flowing in. Add that to our already busy schedule in terms of improving the study center, adding new features and so on, the system began to seem more complicated and harder to maintain. So we ended-up taking a longer time to add those new features, and in order to fully solve all those problems and to provide end-users with a holistic experience, we decided to undergo a full restructuring exercise in September 2008, and build a whole new Idapted study center.

However, we did face multiple hurdles along the process because this restructuring project was a 360 degree approach to the entire system database and codebase. First we locked down the old system, fixed bugs and did not do other new things on it. While working on the new system, apart from migrating the previous logic, we also added a whole bunch of new applications. These were all necessary in order to ensure a higher quality code, so that when you restructure the system will perform smoothly. Our next step is to do a restructuring project based on Rails 3. However, before we do so we will first need to complete all of our existing code tests so that the next restructuring project won’t ‘welcome’ any bugs or affect the end-user.

IT168: Why did Idapted choose to run on Ruby on Rails, instead of PHP, since it’s a very common LAMP platform in China?

Guo Lei : The reason behind our decision to use Rails has very much to do with DHH, who’s the founder of Rails. In the early stages DHH was a programmer. When he moved to 37Signal to work on “basecamp” (a 37signals project), he thought of using PHP but soon he realized that PHP didn’t seem to comply well with applications. Certain programming situations under PHP caused poor programmer performance, so DHH gave up using PHP and decided to use Ruby instead. DHH found out that he could code much faster in Ruby than inPHP – it took him a week to write what would have taken a month in PHP. Eventually he extracted from Basecamp a framework for Ruby to create web applications and decided to call his creation Ruby on Rails.

The concept of “convention over configuration” is a big part of Ruby on Rails as well as the packaged “active record” have since made web development easier. Our Idapted study center strives to stand-out from a sea of competitors, so we need to be efficient in terms of adhering to consumer needs and feedbacks. We chose Ruby on Rails to develop our system and results have proven that our decision was not only right but also the best. Right now we manage at least 4-5 system deployments and improve at least ten other applications per day, and this is definitely not possible in systems built on other languages.

IT168: What are the advantages of Ruby compared to other languages?

Guo Lei : Since the structure (Ruby) is already here, all you need to do is keep improving your skills. Compared to Java, Ruby is more dynamic, and easier to write. It’s also very close to common spoken language; hence it’s easier to understand as well.

IT168: Based on your blog entries, it seems that many international attendees were curious about whether you guys would open source what you talked about. What do you think of this? Will you be doing so?

Guo Lei : Open Source is a very good tool for helping to improve the growth of technology. Every company and individual has their own capacity and limit, but when brought together the results can be invincible. Imagine if DHH never opened-up Ruby on Rails, there wouldn’t be such a rich community and Rails won’t be as active as it is today. We will open up part of our system architecture and I have already started working on it as we speak. Hopefully this project will be completed soon enough so that we can gather feedback and improve it.

IT168: Your business card states that you are a system architect – what are the qualities should one possess in order to achieve success?

Guo Lei : A qualified system architect needs to be a good programmer. It is impossible to become one before qualifying as a certified or experienced programmer. Before I applied to join Idapted, I was a programmer for nearly four years. Upon joining, I started off writing codes, and even now most of my time is spent on writing main codes for Idapted’s learning system, as well as other departments involving the logistics side of the business. One needs to know what it’s like to write codes in order to know what sort of architectural architecture is suitable, and is most efficient when used by other programmers.

System Architects need to have a good knowledge of technical skills as well as a high level of common sense. As a system architect, I may not be exceptionally skilled at every department, but my knowledge on these (departments) are wide enough to know how everything should be. One also needs to be aware of the industry’s latest news and happenings, and be knowledgeable on the community’s progress. With that, you are then able to take what you read and learn from others and apply it to your work. Participating at RailsConf was indeed a brilliant opportunity, as I managed to meet and exchange various topics with other people and absorb new ideas.

System architects also need to be open-minded, helpful and they must maintain constant engagements with programmers. Programmers can be understood as a systems architect’s main customer, because you need to be in touch consistently with them, understand their needs, listen to their feedback so that the architecture built is worth it.

Note: The original article can be found here (clicking on this link will bring you to IT168’s website).

Guo Lei (right) with Qin Li, journalist from IT168
Guo Lei (right) with Qin Li, journalist from IT168



About Idapted Ltd:
Idapted builds the next generation of scalable live language learning technologies and services. Each month, thousands of teachers and students from around the world learn and teach English and Mandarin through Idapted’s global system.

Idapted is backed by Gobi Partners and Ambient Sound Investments as well as experienced Angel Investors. The Company’s Board of Advisors includes well known mentors Bill Trenchard, President of LiveOps; Russ Siegelman formerly of VC firm Kleiner Perkins Caufield and Byers and Xu Xiao Ping, co-founder for New Oriental School (EDU). More information is available at http://www.idapted.com

Contact Us
We’d love to hear from you

Idapted Ltd.

US: +1 888 887 9913
CN: +86 10-82601612
Email: info@idapted.com