Software Engineer @
Google
Ph.D. /
PLUM /
CS /
UMD
(e-mail : jsjeon at (cs dot)? umd dot edu)
What excite me are programs that input and/or output programs. In particular, I am interested in developing tools and techniques that complete partial programs; analyze programs' behaviors; enhance the security of programs; and improve the performance of programs. My research has spanned:
Researched and developed scalable synthesis of models for object-oriented, event-driven frameworks, such as Java Swing and Android, that enable symbolic execution tools to analyze real-world apps effectively and efficiently
Designed, implemented, and thoroughly evaluated a hybrid program synthesis algorithm that adaptively combines the best of symbolic and explicit search and can be naturally run in parallel
Developed a Java front-end for Sketch synthesis tool, which inputs partial Java program, along with specification and/or input-output samples, then outputs a compilable, complete Java program that complies with the given specification
Developed a general-purpose bytecode rewriting framework for Android, which is composed of a rich set of utilities that let programmers parse, manipulate, and generate Dalvik bytecode from scratch
Designed and implemented a static analysis that extracts program execution paths from app’s entry points to method calls of interest, e.g., authorization APIs in Facebook SDK, which are in turn used to steer apps so as to test security properties of third-party components in a large scale