SENIOR SOFTWARE ENGINEER (Consultant)

SENIOR SOFTWARE ENGINEER (Consultant)

Kevin Yau

Monterey Park, CA

-818-2795329

Work Experience

SENIOR SOFTWARE ENGINEER (Consultant)

Monterey Park, CA

2012 to Present

● Developed Python 3D games and models utilizing Blender’s game engine for real time projects, from architectural visualizations and simulations to games; in addition to developing games using Cocos2d and Unity.
● Created ecommerce product relational databases and web server employing the MAMP stack that includes PHP, MySQL and Apache development environment for Mac OS X.
● Built web-based applications using Java, RESTful services, HTML, SQL, CSS, JSON, SSL, XML and JavaScript to combine and visualize data from disparate sources.
● Researched into various machine learning algorithms such as Decision Tree, Support Vector Machine, K-Means and Random Forest using R and Python codes.
● Explored solutions to robotic mapping problem SLAM (simultaneous localization and mapping) by way of extended Kalman filter.

SENIOR SOFTWARE ENGINEER (Raytheon Contract)

California Institute of Technology

-

Pasadena, CA

2009 to 2012

Solar System Object Search Algorithm Development
● Developed advanced algorithms to search for solar system objects buried inside NASA’s huge infrared astronomical data archive stored at the Infrared Processing and Analysis Center at Caltech.
● Created the Solar System Moving Object Search Tool - used successfully to search for moving object images within the multi-billion row databases from NASA’s WISE (Wide-field Infrared Survey Explorer) mission.
● This tool is also used to identify solar system moving objects in the Spitzer and PTF (Palomar Transient Factory) archives.

SENIOR SOFTWARE ENGINEER (Raytheon Contract)

Jet Propulsion Laboratory

-

Pasadena, CA

2006 to 2009

AIRS Validation and Testing (2009)
● Conducted testing and validation of retrieved data products from the AIRS (Atmospheric Infrared Sounder) instrument on board NASA’s Aqua Satellite. Developed algorithms in IDL and Fortran to analyze and isolate bias trends seen in AIRS data products by comparing with radiosonde observed temperature and water vapor profiles.
Cassini Titan Atmosphere Modeling (2008 – 2009)
● Developed programs in IDL and C to perform 3D radiative transfer modeling and image analysis of Titan’s atmosphere to understand the brightness changes relating to its surface features.
3D Hurricane Visualization and Analysis Tool (2008)
● Developed a 3D interactive hurricane visualization and analysis tool in JAVA Eclipse Application Framework. A JAVA application that displayed the motion of a hurricane over the Atlantic Ocean on a 3D globe together with sea surface temperature data, wind data (from the QuikSCAT mission) and rain data (from the TRMM mission). At the same time, it interactively output a variety of graphs resulting from the correlated analysis of these data.
Additional Work: Worked on the improvement of TES SIPS (Tropospheric Emission Spectrometer Science Investigator-Led Processing System) Console Server, a database retrieval tool implemented with a JAVA client/server object-sharing system.
MISR Algorithm Development and Data Analysis (2006 – 2008)
● Worked as an algorithm developer and data analyst on JPL’s remote sensing instrument MISR (Multi-angle Imaging SpectroRadiometer) on board NASA’s Terra satellite.
● Developed algorithms to identify aerosol types in the Earth’s atmosphere such as Saharan dust plumes over the Atlantic Ocean, anthropogenic pollution from North America and biomass burning smoke from tropical forest fires and California wildfires.
● Deduced optical and microphysical properties of biomass burning aerosols.
● Developed tools to compare MISR, MODIS (Moderate Resolution Imaging Spectroradiometer) and AERONET (Aerosol Robotic Network) observations and determine the source of the observed differences such as those due to instrument calibration and sampling differences, and assumptions made in the retrieval algorithms or boundary conditions.

SENIOR SOFTWARE ENGINEER

Jet Propulsion Laboratory

-

Pasadena, CA

2001 to 2005

NASA’s Cassini Mission to Saturn Science Planning Visualization Tool Development
● Lead programmer for Cassini’s science planning 3D visualization tool ODD (Observation Design Display).
● Responsible for the design, architecture and end-to-end development, which followed one of the early agile software development methods, namely, the Rapid Application Development method where active user involvement was important.
● Built using OpenGL, two of the special features were 3D visualization and scene animation, which enabled users to visualize their designs interactively through animation, and see how their instrument field of view would project and layout on the target body, often with varying sizes as a result of both spacecraft and target body motion.
● Images and movie could be captured for presentation.
● Enabled extremely accurate science observation designs - pictures of Saturn and its rings and satellites taken by Cassini were shown to match their original designs with pinpoint accuracy.
● Taught and trained science users to use ODD and design their own observational sequences.
● Supported the Cassini science planners and PDT users in their observation design.

SENIOR SOFTWARE ENGINEER

Jet Propulsion Laboratory

-

Pasadena, CA

1998 to 2001

NASA’s Cassini Mission to Saturn Science Planning Tool Development
● Lead programmer for Cassini’s science planning tool PDT (Pointing Design Tool) – used for generating science instrument observation sequence of commands.
● Worked on the definition of science observation module parameters and automated the creation of input data files for PDT thus speeding up the update process.
● Implemented a target option library to facilitate common target selections and generate the associated instrument commands.
● Provided training, tutorials and customer support to users to enable them to plan and design their own observation sequences.
● Significantly increased the number of images captured by Cassini by ten folds during the Jupiter observations.

MEMBER OF TECHNICAL STAFF

Jet Propulsion Laboratory

-

Pasadena, CA

1994 to 1998

Command Sequence Validation Software Development for NASA’s Cassini Spacecraft to Saturn
● Lead programmer for Cassini spacecraft's command sequence validation tool – Cassini Seqgen.
● Seqgen core is a multi-mission software application written in C++ that runs on Unix platforms used by JPL missions for validation of commands to be sent to a robotic spacecraft and also for displaying associated Deep Space Network ground events.
● Created command catalogs with associated command models and defined spacecraft activities for each subsystem.
● Led a group of seven Cassini Seqgen adaptation software engineers.
● Performed detailed hardware constraint checking such as turn rates and acceleration, pointing exclusion zones, and resource usage over time, generally known as flight rules checking.
● Cost estimated and directed the implementation of more than150 flight rules from 22 subsystems.
● Scheduled day-to-day tasks, reviewed customer change requests, tracked failure reports, and prepared monthly report.
● Trained more than 50 customers from both the operation and instrument teams on using Cassini Seqgen.
● Produced documentation - User’s Guide, Test Reports, and Software Specification Document.
● Successfully led a development team through the hectic months prior to the spacecraft launch.

Education

PhD in Astronomy

Durham University, UK

MS in Astrophysics

Durham University, UK

Skills

● Operating Systems: Macintosh, Linux, Windows, Sun Solaris, HP UX, SGI and Linux supercomputer. ● Languages: C, C++, JAVA, IDL, MATLAB, FORTRAN, OPENCL, CUDA. ● Scripting Languages: Perl, Python, C/Bourne/Bash shells ● Web and Databases: HTML, CSS, JSON, SSL, XML, JavaScript, ASP, PHP, SQL, Apache, MySQL, PostgreSQL ● 3D Graphics: Google Earth, OpenGL, Java3D and X3D. ● IDE and GUI: Eclipse, NetBeans, JAVA AWT & Swing, Motif/Xlib. (10+ years)

Awards

NASA Group Achievement Award (2012)

For developing applications in support of the WISE Science Data Center.

Raytheon IIS (Intelligence & Information Systems) Excellence in Engineering and Technology Award (2009)

For developing Java 3D hurricane visualization and simultaneous data analysis graphic displays.

NASA Group Achievement Award (2009)

Cassini Saturn Tour Flight Team for the highly successful Cassini mission in its four-year tour of the Saturn system.

Raytheon Achievement Award (2008)

For supporting above and beyond expectations in the Enterprise Modeling and Simulation Campaign of the JPL/Raytheon 3D Hurricane Visualization project.

JPL Section 317 Team Award for Excellence (2005)

For outstanding contributions to Cassini’s Mission Sequence System Team supporting the successful Saturn Orbit Insertion and initiation of Saturn Tour.

JPL Team Member Bonus Award (2005)

For the system engineering, design, implementation, test, and delivery of the Pointing Design Tool.

NASA Group Achievement Award (2005)

Cassini Saturn Orbit Insertion Team for the excellent and dedicated efforts leading to the successful orbit insertion of the Cassini spacecraft about Saturn.

JPL SPOT Awards (2004)

For your technical participation in the Cassini PDT port to Mac OS and Linux OS Client, contribution to this innovative effort included design, development, test and user performance evaluations that yielded up to a 50% increase in execution time savings.

JPL SPOT Awards (2003)

In recognition of the excellent software engineering that went into the D9.0 PDT visualization, which allowed the user to develop higher quality science designs.

NASA Group Achievement Award (2002)

Cassini Jupiter Flyby Team in recognition of outstanding efforts and accomplishments in making the Cassini flyby of Jupiter a resounding success.

Exceptional Technical Excellence Award (2002)

Cassini Jupiter Encounter Team for significant achievement in the planning, development and execution of the science observation sequence for the Cassini Jupiter flyby.

JPL SPOT Awards (2002)

For the development of the Pointing Design Tool graphics display software.

NASA Group Achievement Award (2000)

Cassini Flight Team for exemplary performance in conducting the Cassini mission during the Earth swing-by period, which resulted in the successful encounters of Venus and Earth and significant science return.

JPL Section 314 NOVA Award (1998)

For his leadership and strong technical expertise in the development of the Cassini adaptation of the SEQGEN software.

NASA Group Achievement Award (1998)

For the Cassini Program Uplink Operations Element Mission Sequence System Team to Kevin Yau in recognition of outstanding skill and teamwork in developing the planning and sequencing software, contributing to the successful test and launch of the Cassini spacecraft.

Additional Information

Machine Learning Skills:
● Languages: Python, C++, Java, R and MATLAB, have used them in previous work, expert enough to use Python, C++ and Java interchangeably.
● Machine learning Python packages: scikit-Learn, numpy, scipy, pandas, matplotlib and seaborn - used in development.
● Natural Language Processing: Python NLTK and Gensim - used in development.
● Deep learning libraries: Tensorflow, Theano and Keras - used in development.
● Open source computer vision library: openCV – used in image processing applications.
● Familiar with Apache Hadoop base modules HDFS for storage and MapReduce for processing, also its ecosystem (other Apache packages).
● Knowledge of big-data analysis software: H2O and a variety of non-SQL open source databases: Redis and MongoDB
● Cloud Platforms: Amazon Web Services and Google Cloud Platform – have an AWS account and used Google App Engine in development.
● Revision control systems: CVS, SVN and Git – my current favorite is Git.
● Advanced statistical analysis, probability theory and linear algebra (tutored students on a statistics course while at grad school)
● Experience with large volumes of data processing, proto-typing, predictive modeling and algorithms optimization. Familiar with various machine
learning algorithms for: 1. Supervised Learning: e.g. Regression, Decision Tree and Random Forest, KNN, Logistic Regression, 2.
Unsupervised Learning: e.g. Apriori algorithm and K-means and 3. Reinforcement Learning: e.g. Markov Decision Process and Q-Learning.
● Other Computing Skills: C, IDL, FORTRAN, OPENCL, CUDA, Perl, C/Bourne/Bash shell scripts.
● Web and Databases: HTML, CSS, JSON, SSL, XML, JavaScript, ASP, PHP, SQL, Apache, MySQL, PostgreSQL
● 3D Graphics: OpenGL, WebGL, Java3D, X3D, Google Earth
● IDE and GUI: Eclipse, NetBeans, Java AWT & Swing, Motif/Xlib.
● Operating Systems: Macintosh, Linux, Windows, Sun Solaris, HP UX, SGI and Linux supercomputer.