Call for Participation: we have an ongoing research study to understand how developers change code inside the IDE. If you develop Java code, please participate in our study.
Notice: On Aug 5th 2015 I had a severe bike accident; during my recovery I will not be able to pick up new service, including reviewing for journals and conferences during the second half of 2015 and beginning of 2016. I encourage you to appreciate the gift of life.
In 2007 I got a PhD from the CS
department at UIUC. After a postdoct at MIT CSAIL, I
moved back to my Alma Mater, where I was a Research Professor. Now I am an Assistant Professor at OSU, surrounded by the beautiful Pacific NW.
Successful software undergoes constant change. My research addresses two important questions:
Over the years I have successfully automated program transformations to (i) retrofit parallelism into sequential code, (ii) improve responsiveness of mobile apps, (iii) upgrade component-based applications, (iv) update obsolete tests, (v) make end-user programs easier to change.
- What changes occur most often in practice?
- How can we automate them to improve programmers' productivity and software quality?
General interests:- automated refactoring, interactive program analysis and transformation,
design & architectural patterns, and broadly interested in concurrency and parallelism, mobile computing, software development processes, program analysis, software testing, and software evolution
- my ICSM'05 paper wins the Most Influential Paper Award (N-10 years) at ICSME'15. The citation reads "The ICSM'05 paper has had the most impact and has stood the test of time best, it has had a profound influence on the upcoming field of API analysis."
- our latest refactorings that empower Java programmers to use lambda expressions are shipping with the official release of the NetBeans IDE.
- PhD research on record-and-replay of API-level refactoring ships with the official release of the Eclipse IDE and are used by millions of Java developers.
- the automatic inference of refactorings has been used at large companies like Google and IBM, and dozens of research labs.
- our ASTGen test generation framework is used in the testing infrastructure at Oracle.
- empirical studies (one and two) on usage of concurrent libraries have influenced the development of the official libraries in .NET and Java.
- our resource on learning parallelism in .NET receives more than 150,000 visitors.
- many years ago I developed the world's first open-source refactoring engine for Java, and was downloaded over 17,000 times.
- 2015 Google Faculty Research Awards
- Most Influential Paper Award (N-10 years) at ICSME'15 for this paper
- ACM SIGSOFT Distinguished Paper Award at ICSE'14 for this paper
- ACM SIGSOFT Distinguished Paper Award at ISSTA'13 for this paper
- Best Paper Award at ICST'13 for this paper
- Google Faculty Research Award
- Microsoft Software Engineering Innovation Foundation award, twice: in
- Best PhD Thesis Award from the CS department at UIUC (and also department-nominated for ACM Doctoral Dissertation Award)
- 1st Prize at inter-disciplinary Grand Finals of ACM Student
Research Competition, 2006
- 1st Prize at ACM SIGPLAN Student Research Competition, held at
LEADERSHIP and SERVICE:
- Program Committee: ECOOP'15, ICSE'15 (NIER track), ASE'14, OOPSLA'13, ECOOP'13, ASE'13, IPDPS'13, ICSM'13, ICSE'13 (NIER track), FSE'12, OOPSLA'12 (ERC), ECOOP'12 (ERC), ICSM'12, MSEPT'12, WRT'12, CSMR'12, ISSTA'11, PPoPP'11 (ERC), ACM Student Research Competition at ICSE'11, Research Demos @ FSE'10, IWPSE'10, OOPSLA'09, IWMSE'09, IWPSE'09, WRT'09, HotSWUp'09
- Proceedings Chair: OOPSLA'13
- Co-Chair: MobileSoft'15, HotSWUp'12, WRT'11, WRT'08, HotSWUp'08
- Publicity Chair: ICSM'10.
- Chair: Doctoral Symposium @ ECOOP'07, WRT'07, PLoP'04
MOTTO "Success is not for the chosen few, but
for the few who choose" - John