Curriculum Vitae

(Last updated on Dec. 2019)

Huascar Sanchez

Research Interests
Software engineering, data-driven software introspection, code search engines,
open source software security and trustability, and productivity tools for
software developers
Current Position
2018 – now
SRI International · Menlo Park, CA
Advanced Computer Scientist I
Applying machine intelligence to open source software security and introspection.
Education
2015
UC Santa Cruz · Ph.D. in Computer Science
Thesis title: Source code Curation Tooling for the Code Forager
Advisor: Prof. Jim Whitehead
2006
San Jose State University · M.S. in Software Engineering
Thesis title: Building Systems Using Patterns: Creating Knowledge Maps
Advisor: Prof. M.E. Fayad
Employment
2016 – 2018
SRI International · Menlo Park, CA
Computer Scientist
Worked on a comprehensive range of capabilities for doing large scale
software introspection; including machine learning models for API call-sequence prediction, source code ranking, and automated library curation.
2015 – 2016
SRI International · Menlo Park, CA
Postdoctoral Fellow — Host: Hassen Saidi
Worked on the development of new ranking models for source code search and new source code summarization techniques based on two new concepts: source code membership and source code multistaging.
2014 – 2015
SRI International · Menlo Park, CA
Visiting Research Fellow — Host: John Murray
Researched new crowdsourced-AI formal verification methods.
2013 – 2015
UC Santa Cruz · Santa Cruz, CA
Research Assistant — Software Introspection Lab
Worked on understanding the technical issues concerning crowdsourced-AI gaming for formal verification by helping create and validate two crowdsourced-AI video games.
Worked on the development of code foraging tools for efficient evaluation and integration of online source code.
2012 – 2013
UC Santa Cruz · Santa Cruz, CA
Research Assistant — Information Retrieval Lab
Worked on the development of machine learning models for Cyberbullying detection in social network platforms.
2011 – 2012
UC Santa Cruz · Santa Cruz, CA
Research Assistant — Augmented Design Lab
Investigated how to build mixed-initiative content creation tools for robot design.
2010 – 2011
UC Santa Cruz · Santa Cruz, CA
Research Assistant — Database Group
Developed new algorithms for index tuning, focusing on easier and effective semi-automatic index tuning.
2010 – 2012
Infomotor, Inc. · San Francisco, CA
Software Engineer/Consultant
Developed Web applications for streamlining both reporting and presentation of key performance metrics, and delivering understandable and actionable data.
2006 – 2009
Pearson VUE · Bloomington, MN
Software Engineer
Developed tools that support a set of distributed applications responsible for delivering over four million computer-based tests a year across the globe for clients in diverse markets, such as licensure, certification, etc.
2004 – 2006
San Jose State University · Santa Cruz, CA
Research Assistant
Masters research on tools for building systems using patterns.
Peer-Reviewed Publications
Conference and Workshop Publications
Visualizing the Failure Landscape of Arbitrary Open-source Software
Under review.
A Vision of Hyper Collaborative Open Source Software Development
In preparation.
2016
JayHorn: A Framework for Verifying Java programs
T. Kahsai, P. Rümmer, H. Sanchez, and M. Schäf
CAV: 28th International Conference on Computer Aided Verification
Design Lessons From Binary Fission: A Crowd Sourced Game for Precondition Discovery.
K. Compton, H. Logas, J. Osborn, C. Chakrabortti, K. Coffman, D. Fava, D. Lederle–Ensign, Z. Lin, J. Mazeika, A. Mobramaein, J. Pagnutti, H. Sanchez, J. Whitehead, J. Murray, and Laurel, B.
FDG: 1st International Joint Conference of DiGRA and FDG
Detecting Similar Programs via the Weisfeiler-Lehman Graph Kernel
W. Li, H. Saidi, H. Sanchez, M. Schäf, and P. Schweitzer
ICSR: 15th International Conference on Software Reuse
Multistaging to Understand: Distilling the Essence of Java Code Examples
H. Sanchez, J. Whitehead, and M. Schäf
ICPC: 24th IEEE International Conference on Program Comprehension
Putting Your Passwords on Self Destruct Mode: Beating Password Fatigue
H. Sanchez, J. Murray, and D. Sanchez
SOUPS: 12th Symposium on Usable Privacy and Security
2015
Source Code Curation on StackOverflow: The Vesperin System
H. Sanchez and J. Whitehead
ICSE: 37th IEEE/ACM International Conference on Software Engineering
BotPrint: Casual Robotic Evolution
K. Compton, D. Lederle-Ensign, Z. Lin, J. Mazeika, A. Mobramaein, J. Pagnutti, H. Sanchez, and J. Whitehead
WCCG: 1st Workshop on Computational Creativity and Games
2014
Software Verification Games: Designing Xylem, The Code of Plants
H. Logas, J. Whitehead, M. Mateas, R. Vallejos, L. Scott, D. Shapiro, J. Murray, K. Compton, J. Osborn, O. Salvatore, Z. Lin, H. Sanchez, M. Shavlovsky, D. Cetina, S. Clementi, and C. Lewis
FDG: 9th International Conference on the Foundations of Digital Games
Xylem: The Code of Plants
H. Logas, J. Whitehead, M. Mateas, R. Vallejos, L. Scott, D. Shapiro, J. Murray, K. Compton, J. Osborn, O. Salvatore, Z. Lin, H. Sanchez, M. Shavlovsky, C. Lewis, D. Cetina, and S. Clementi
FDG: 9th International Conference on the Foundations of Digital Games
2013
SNIPR: Complementing Code Search with Code Retargeting Capabilities
H. Sanchez
ICSE: 35th International Conference on Software Engineering
2012
Kaizen: A Semi-Automatic Index Advisor
I. Jimenez, H. Sanchez, Q.T. Tran, and N. Polyzotis
SIGMOD: The 2012 ACM International Conference on Management of Data
Twitter Bullying Detection
H. Sanchez and S. Kumar
NSDI: Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation
2010
Knowledge Maps - Fundamentally Modular Approach to Software Architecture, Design, Development and Deployment
M. E. Fayad, H.A. Sanchez, and S.K. Singh
SEDE: 19th International Conference on Software Engineering and Data Engineering
2006
The Branding Analysis Pattern
M. E. Fayad, H.A. Sanchez, and S.K. Singh
AICCSA: Proceedings of the IEEE International Conference on Computer Systems and Applications
2005
Towards Scalable and Adaptable Software Architectures
M.E. Fayad, H.S. Hamza, and H.A. Sanchez
IRI: The 2005 IEEE International Conference on Information Reuse and Integration
The Dynamic Mapping Design Pattern
J. Gresh, J. McKim, and H. Sanchez
PLOP: 12th Pattern Language of Programs Conference
2004
A Pattern Language for CRC Cards
M. Fayad, H. Sanchez, and H. Hamza
PLOP: 11th Conference on Pattern Languages of Programs
2003
A Pattern for an Effective Class Responsibility Collaborator (CRC) Cards
M.E. Fayad, H.S. Hamza, and H.A. Sanchez
IRI: IEEE International Conference on Information Reuse and Integration
The Sampling Analysis Pattern
H.A. Sanchez, B. Lai, and M.E. Fayad
IRI: IEEE International Conference on Information Reuse and Integration
Las Vegas, NV
Journals
2011
Benchmarking Online Index-Tuning Algorithms
I. Jimenez, J. LeFevre, N. Polyzotis, H. Sanchez, and K. Schnaitter
IEEE Data Engineering Bulletin
Theses
2015
Source Code Curation for the Code Forager
Ph.D Thesis, University of California Santa Cruz
2006
Building Systems Using Patterns: Creating Knowledge Maps
Masters Thesis, San Jose State University
Books
2014
Software Patterns, Knowledge Maps, and Domain Analysis
M.E. Fayad, H.A. Sanchez, S.G.K. Hegde, A. Basia, and A. Vakil
CRC Press, 2014. ISBN 9781466571433
Teaching
Assistant
2015
UC Santa Cruz CMPM 178 · Human-Centered Design Research
Teaching Assistant
2012
UC Santa Cruz CMPS 121 · Mobile Applications
Teaching Assistant
2011
UC Santa Cruz TIM 50 · Business Information Systems
Teaching Assistant (and Temporary Instructor)
2005
San Jose State CMPE 296G · Software Architectures
Teaching Assistant
2004
San Jose State CMPE 195G · Software Patterns
Teaching Assistant
2004
San Jose State CMPE 133 · Software Engineering II
Teaching Assistant
Talks
2019
Applying Machine Learning to Open Source Code Retrieval and Verification
Digital Foundations and Mathematics
Sandia National Laboratories, Livermore, CA
2018
API Workflow Recommendations for Codebase Exploration
DARPA: Mining and Understanding Software Enclaves
University of Texas at Austin, Austin, TX
2017
Cross-Project Software Analysis
DARPA: Mining and Understanding Software Enclaves
Massachusetts Institute of Technology, Cambridge, MA
2016
Multistaging to Understand: Distilling the Essence of Java Code Examples
ICPC: 24th IEEE International Conference on Program Comprehension
Austin, TX
Putting Your Passwords on Self-Destruct Mode: Beating Password Fatigue
SOUPS: 12th Symposium on Usable Privacy and Security
Denver, CO
2015
Source Code Curation for the Code Forager
Computer Science Laboratory (CSL) Seminars
Menlo Park, CA
Source Code Curation on StackOverflow: The Vesperin System
ICSE: 37th International Conference on Software Engineering
Florence, Italy
2013
SNIPR: Complementing Code Search with Code Retargeting Capabilities
ICSE: 35th International Conference on Software Engineering
San Francisco, CA
2006
The Branding Analysis Pattern
AICCSA: Proceedings of the IEEE International Conference on Computer Systems and Applications
Dubai/Sharjah, UAE
2004
A Pattern Language for CRC Cards
PLOP: 11th Conference on Pattern Languages of Programs
Monticello, IL
2003
A Pattern for an Effective Class Responsibility Collaborator (CRC) Cards
IRI: IEEE International Conference on Information Reuse and Integration
Las Vegas, NV
The Sampling Analysis Pattern
IRI: IEEE International Conference on Information Reuse and Integration
Las Vegas, NV
Mentorship and Collaboration
Interns Supervised
2017
Di Yang, PhD Student
University of California Irvine
Students Mentored
2015
Xu Zhang, PhD Student
University of California Santa Cruz
Collaborators
Daniel Sanchez (SRI), Jim Whitehead (UCSC), John Murray (SRI), Michael D. Ernst (UW), Werner Dietl (Waterloo), Wenchao Li (BU), Martin M. Schäf (SRI/Amazon), Di Yang (UCI), Zhongpeng Lin (UCSC/Uber), Hassen Saidi (SRI), Howard Shrobe (MIT CSAIL), Xiaoyue Wang (BU), M.E. Fayad (SJSU), Temesghen Kahsai (NASA Ames), Philipp Rümmer (Uppsala University), Joseph Osborn (UCSC/Pomona College), Natarajan Shankar (SRI), Boris Katz (MIT CSAIL)
Academic Service
Artifact Evaluation Committee
2020
ISSTA: The ACM SIGSOFT International Symposium on Software Testing and Analysis
Paper reviewer
2017
NFM: NASA Formal Methods Symposium
2016
ICTAC: 13th International Colloquium on Theoretical Aspects of Computing
2014
MSR: The 11th Working Conference on Mining Software Repositories
Selected Coursework
Software Engineering, Human Computer Interaction, Information Retrieval, Data Mining, Machine Learning, Design and Implementation of Database Systems, Programming languages, Topics in Database Systems (Cloud Computing), Computational Models and Complexity, and Advanced Computer Graphics (Procedural Content Generation)
Open Source
Author
SMAC · https://github.com/SRI-CSL/smac/
Dependency resolution and API call-sequence prediction
Vesperin · https://github.com/vesperin/
ource code curation tool-kit
Kōfu · https://github.com/hsanchez/kofu
Travis CI miner
Committer
PASCALI · https://github.com/SRI-CSL/pascali
Big-code analytics
JayHorn · https://github.com/jayhorn/
Model checking for Java programs
JSCheck · https://github.com/hsanchez/jscheck
A limited static type checker for Javascript written in Haskell
CHEKOFV · https://github.com/SoftwareIntrospectionLab/chekofv
Crowd-Sourced Help with Emergent Knowledge for Optimized Formal Verification
References
Available upon request