About Me

I am a post-doctoral researcher in the RISE lab and Prof. Ken Goldberg’s AUTOLAB at the University of California at Berkeley. I hold a Ph.D. in Computer Science from the University of North Carolina at Chapel Hill, where I was advised by Prof. Ron Alterovitz and Prof. Jan Prins; and I hold a B.A. in Computer Science and Asian Studies with Honors from University of California at Berkeley. Between my B.A. and Ph.D., I founded numerous startups and was the principal architect at SuccessFactors, Inc., one of the world's leading cloud-based software-as-a-service companies. My research interests are in robot grasp and motion planning in dynamic environments using cloud-based high-performance computing, optimization, and deep learning.


Under Review

Peer Reviewed



  • Jeffrey Ichnowski, “Streaming insertion of tokens into content to protect against CSRF”, US Patent 8,438,649, filed Apr 16, 2010, and issued May 7, 2013
  • James Wei-Ching Kao, Mark Hill, Jeffrey Ichnowski, and David Tze-Si Wu, “Database forms with attached audit history”, US Patent 6,070,177, filed Mar 6, 1998, and issued May 30, 2000
  • David Tze-Si Wu and Jeffrey Ichnowski, “Scripting language for distributed database programming”, US Patent 6,243,711, filed Mar 6, 1998, and issued Jun 5, 2001


COMP 781, Guest Lecture, Mar 5, 2019: This is a graduate level robotics course lecture on scaling motion planning computation to multi-core processors and the cloud. It presents the computational potential of multi-core processors and parallel algorithms that can scale to use that potential.

COMP 581, Guest Lecture, Oct 2, 2018: This is an advanced-undergraduate/graduate-student robotics course lecture on highly parallelised motion planning and the data structures that enable them.

COMP 110, Summer Session I, 2016: COMP 110 begins with the fundamentals of programming a modern computer. This runs the gamut from small embedded devices, to smart phones, robots, web servers, and super computers. Students get the tools needed for programming installed and running on their computers. The course covers programming basics, such as expression, input/output, and flow control. It introduces program design, structuring, and reuse concepts, including object oriented programming. The course also covers introductory data-structures and algorithms, along with their design and implementation.