This time, we have the honor of interviewing VASILY, operating company of "iQON", a smartphone application where users can freely mix and match fashion items from a variety of EC sites. "iQON" allows users free mix and matching of items from over 12,000 brands, and delivers fashion trends from more than 2.5 million outfit posts.
You can also collaborate it with an EC site and check inventory and sale information of the products. Receiving strong support from users, "iQON" was awarded as "best application" from both Apple and Google.
VASILY deals with fashion, a field that seems far from IT at first glance, but working under the thought to make the world more convenient by technical innovation, they continue their development, aiming to provide services that can solve users' issues about fashion. VASILY received high evaluations from Google, and was certified as "Top Developer" in Google Play Store in 2015.
We asked the company, having "Ruby"'s Yukihiro Matsumoto as technical advisor, about their education of engineers.
― We have heard that there are many members from new graduate recruitment at VASILY
Mr.Imamura: Currently, the number of employees are at about 40, and I think there aren't many places that hire new graduates every year at this scale. Basically, we mainly hire science graduate students, via internships. It is getting tough though, since major companies are recruiting graduate students very eagerly these days.
New graduate engineers having specialties become a valuable work force for the team in about one year. Everyone is very talented, each being responsible for core features of the service.
One of the new graduate engineers we hired this year is responsible for developing the recommendation engine for fashion items. This is a function that calculates large-scale data from all action histories of users, and recommends items that suit a user's taste.
Also, a new graduate engineer we hired last year is working on renewing the crawling part where iQON collects item information. iQON crawls through over 500 EC sites, more than 12,000 when we talk about the number of brands. This requires a complex process, crawling for information on these EC sites more than once a day, and keeping the product information fresh.
― What are the secrets in training new graduates?
We have tried many things, but I think there are three important points.
The first one is thoroughly reviewing codes. By having seniors reviewing their codes, we have them teach good practice in writing codes and ways of thinking.
The second is to check engineers' products and culture fits in internships. It is only a short period, but we always have them submit a product. We can hire capable engineers by checking these products. Also, we check if the culture of our company, focusing on results, fit them, through the internships.
The third one is to give them tasks that require higher skills than they currently have. We keep in mind each person's skill and experience, and give them tasks that can only be accomplished by using knowledge they don't have yet.
Mr.Mitsuno: Mr.Imamura teaches the new engineers in person. We all also look after the new engineers, because there is a sense to train them up as a team in our company.
― What did you think of SideCI's code reviews when you actually started using it?
Mr.Imamura: It felt as if we gained an extra really capable engineer who makes indications in place of us.
Mr.Mitsuno: There are sometimes cases where there are different opinions on which coding styles are good. I take care when I review codes to indicate points based on the community's best practices, and not by my personal preferences. SideCI really comes in handy because indications like this can be made automatically.
Added to that, we tend to feel a sense of resistance when we have something pointed out by a human, but by letting a machine point them out, we can calmly discuss which rules to apply as a team.
Mr.Imamura: I doubt there any engineers who already know all the things that SideCI points out, but the things actually indicated are all pieces of knowledge we should take note about.
Mr.Mitsuno: We asked this year's new engineer what he thought about the indications from SideCI. He commented that he really appreciates the indications. It seems that not having the inconsistency that humans have lead to have good effects on learning and growth.
New engineers can actively propose revising code rules. Anyone can submit opinions on GitHub, like "Maybe we shouldn't apply this rule for now", or "Isn't this a bit too strict?". The proposals are basically discussed and considered as a team. We have a rule stating you can apply the changes if there are no comments on the issue for 2 days.
Mr.Imamura: I like where we can explicitly build up our ideal code rule with everyone. You can truly consider what is good, compared to building on some indications made by someone.
We uphold "maintaining quality as a pro" as a mindset in our company's engineer manifest. I think discussing about SideCI's comments is making possible for us to raise consciousness about "quality" and making the mindset sink in. Additionally, having engineers with this engineering mindset is one of the reasons why code rules are discussed actively in our company.
― Please tell us about the introduction of SideCI
Mr.Imamura: We chose SideCI considering which tool can be trusted in handing all of our source codes, and because we wanted to check coding styles in detail.
As for giving access to source codes, we feel a bit awkward about using Japanese services. If it were a overseas service, we'd feel more at ease thinking "well, they won't give much interest to a source code from Japan, will they?" (laughs) But, we judged we can trust SideCI, knowing the people who built it.
Mr.Mitsuno: The number of usage examples are rising, and being able to collaborate with GitHub was also a big reason.
As for the motives of introducing, we were interested in what "good codes" are, and we thought having people check things like indents having tabs and spaces mixed is a waste of time.
We experienced writing by only our own styles and suffering from that later on quite often, so being able to know about other theories and best practices was very important too.
At VASILY, they told us about the usage of SideCI in educating new graduate engineers. Discussing the commented points, added to the indication itself, helping share a common understanding and raising consciousness about quality, may be effects that can be only be found out by actually starting to use it.
In addition to the two interviewees, we also took photos of the new graduate engineers. Joking around on where to stand, the team looked very close, obviously working together enjoyably every day.