Computer Science senior Junyan Guo is passionate about his work. As soon as he sees results, he dives back into the project or begins a new one. His desire for rapid responses prompted him to change both his major and his university.
“When I studied Mechanical Engineering in China,” he said, “it was mainly doing problem sets and that wasn’t very interesting. My favorite part was building models using Autodesk Inventor. But even there, our models usually stayed on paper or in the computer because physically building an inconsequential model is too time-consuming when compared to the value it yields.”
He recognized that Computer Science students were seeing much faster results. “The cost of running a program is much lower than that of building a physical model, and the cheaper it is to build and run, the easier it is to transform ideas into reality. I also like the fact that I get instant feedback as soon as I run my code, although sometimes the results can be hard to interpret.”
Of course, Guo had heard of tech industry giants like Google, Microsoft, and Facebook, but he said working for one those companies seemed a remote possibility to a college student in China.
“I was excited to see representatives from those big-name companies at the Rice career fair. They also hosted on-campus info sessions to provide insights about the exciting work done in the tech industry. It all reaffirmed my decision to change to CS, and the possibility of working for a company like that motivated me to work even harder in school,” said Guo.
He transferred to Rice as a sophomore, but his determination to see results quickly spurred him to declare his major in CS and earn his Rice degree in six semesters. His drive to produce high-quality results is one of the reasons members of the Computer Science Undergraduate Student Committee selected him to receive the Chevron Award for academic excellence.
His first summer in the United States was spent working with the Habanero Extreme Scale Software Research Group led by Dr. Vivek Sarkar at Rice University. His second summer was spent in a Google internship. Guo said, “I worked on the GUTS (Google Unified Ticketing System) team. GUTS is a system to manage tickets, just like Rice’s Helpdesk.
“The most difficult part of that internship was design. Although I was in charge of only a small component of GUTS, the design of that component was still a process of collaboration. I was introduced to a very formal process: I wrote a design doc, people reviewed and commented on it, and I addressed their comments. Only then could I start writing code.”
Guo said writing the design document is a very challenging part of the software development process because colleagues usually don’t agree with the proposed design, or they have conflicting views on the design. “At that point, I need to work with them to get them all agree on one design, whether it’s the design I proposed or their suggestions, so we can move forward with the project,” said Guo.
“Writing tests was also an important component of my job. My Rice professors – Dr. Dan Wallach in particular – always stress the importance of testing, but it is hard to understand that at school. In the industry, writing tests is not only a common practice but also a way to “protect” your code because other engineers may modify your code or related code, and having tests in place can prevent them from breaking your code.”
Guo became engaged in genetics-related research when a side project he worked on with his Rice roommate led to a breakthrough for a lab at Baylor College of Medicine. “My roommate, Kevin Chang, was working in Dr. Marco Sardiello’s lab at BCM when he noticed that the Evolutionarily Constrained Analysis could be automated. Kevin’s expertise lies mainly in Cognitive Sciences and Neuroscience, but he had some CS background and created a brute force prototype he called Aminode.
“When he described it to me, I worked out an algorithm that had much better time complexity and thus made Aminode computationally feasible. In a nutshell, Aminode compares the sequence of one gene across many orthologs (genes in different species that evolved from a common ancestral gene) to identify evolutionarily constrained regions (ECRs). The idea is that if a region of a gene is conserved across species, it is likely to be important. If a region is not important, it should have changed across species during the evolution.”
Guo and Chang scaled up Aminode and ran it on all available genes from Ensembl, a genome database. At Sardiello’s suggestion, they made Aminode publicly available through a website built by Guo, http://www.aminode.org.
“We believe Aminode is a useful tool for both doctors and researchers. Looking at a patient’s gene report, a doctor may use Aminode to predict which mutations may be pathogenic. If a researcher wants to study a gene that has not been annotated before, he may use Aminode to predict which part of the gene may be important so he can focus his efforts on that.”
Although the Aminode research gave Guo the opportunity to use his computer science expertise to collaborate with experts in solving impactful medical problems, he said a role in the technology industry seemed to be a better long-term fit for his interests.
He encourages other CS students to do more interviews. “For me, doing job interviews was the most exciting part of my Rice career. In addition to finding out more about the opportunities out there, job interviews confirmed the usefulness of the CS training that I received at Rice, and confirmed my value as a potential contributor or team member. It is also exciting to see how CS expertise can make an impact in the real world, which in turn motivated me to work harder at school.”
Guo’s hard work led to an offer from Microsoft, where he will begin working as a software engineer one week after he graduates in May.