PROFESSIONAL SUMMARY:
Software designer with extensive experience creating and implementing algorithms in the areas of machine learning, statistical data analysis, image processing, pattern recognition, signal processing, computer vision, and real time systems.
SKILLS
• Algorithm design and development on both large systems and embedded firmware.
• Statistical data analysis, image processing, pattern recognition, signal processing.
• Strong mathematical/analytical background including statistics and physics.
• Analysis Tools: Matlab, SageMath, Mathematica, Jupyter Notebook/Lab.
• Software Design Methods: Object oriented design, UML, software peer review, Git.
• Computer languages (10+ years experience): C++, C, Python, HTML, CSS, Javascript Common Lisp (3 years), LaTeX (2+ years).
• Computer Systems: Apple MacOS, Ubuntu/Linux, Microsoft Windows.
PROFESSIONAL EXPERIENCE:
Machine Learning / Image Processing Engineer, Apple Inc., Cupertino. 9/06-present.
Senior Staff Software Design Engineer, KLA-Tencor, San Jose. 4/95-9/06
Designed new machine vision and pattern recognition algorithms for automatically detecting defects on semiconductor wafers on both optical and SEM inspection systems.
- Designed a method for automatically detecting and measuring any kind of repeating patterns on images of semiconductor wafers with no training necessary, even in the presence of severe noise and obscuring artifacts. Used mathematical methods from image processing, robust statistical analysis and number theory.
- Developed a hybrid rule-based and statistical classifier to discriminate between image noise artifacts and real objects at a > 90% success rate with automatic training of rules and other classifier settings.
- Developed filters to improve image quality in scanning electron microscopy (SEM) images, including methods to compensate for brightness variation, correction of geometric distortion by graylevel morphological filtering, suppression of random shot and impulse noise, and image low passing and subsampling to increase object signal to noise ratio. Developed default algorithm settings, wrote user manual and trained application engineers in intuitive use of filter settings on customer data.
- Analyzed speed bottlenecks in image processing methods for defect detection and and used methods from graph theory to improve the speed by an order of magnitude.
- Developed a new method for automatically locating and focusing on probe pin positions reliably in the presence of stray reflections and noise. Used a collection of image processing techniques based on adaptive thresholding, morphological noise cleaning, connected components analysis, blob feature analysis, robust centroid computation, and computational geometry.
Member of the Technical Staff, Photon Dynamics Inc., Milpitas. 5/93-4/95
Developed new software to give high accuracy image calibration and registration in real time for an automated flat panel display inspection system.
- Developed methods for accurately locating calibration target positions from camera images using fast projection, 1D correlation with 2D correlation fine tuning.
- Developed a reliable and accurate method for automatically focusing the camera in real time based upon adaptive noise thresholding and a modified edge operator with parabolic curve fitting.
- Did a theoretical analysis of the effects of system noise on image gain correction and developed methods to reduce it and speed up performance.
- Designed software for real time image acquisition from digital and analog cameras, working closely with the hardware engineers designing the camera.
Senior Engineer TAU Corporation, Los Gatos. 9/91-5/93
Developed C software on a real time image processing system for monitoring laser welding. Designed fast algorithms for detecting the laser light and displaying its location graphically.
- Implemented the system on a VME compatible 68040 single board computer with Datacube real time image processing hardware, and controlled by a Sun workstation running X windows under UNIX.
- Wrote the user manual, installed the system and trained the customer.
Designed the C software for an automated PC-based image analysis system for automated strain analysis of materials such as aircraft wings and turbines.
- Designed fast correlation algorithms for comparing the image of a sample to a reference image to measure defects and display their locations graphically.
- Implemented the software on a 80486 PC with a specialized signal processing board, a camera and frame grabber board and a precision motor driven xy platform.
- Built the system, wrote the user manual, installed it, trained the customer, and shipped maintainence updates.
Senior Software Engineer, Lockheed-Martin Corporation, Sunnyvale. 2/81-9/91
10/87-9/91 Communications Systems Analysis Group
Responsible for the algorithm and software design in a simulation study of a communications system for broadcasting error free images over satellite links.
- Designed and implemented error correction/detection algorithms using the CRC, Reed-Solomon, BCH and Golay codes to protect images against burst errors on telephone or satellite links.
- Developed an improved theoretical formula for predicting error correction performance which was verified by simulation.
4/85-10/87 Communications Systems Analysis Group
Designed the image processing and graphics software for a portable PC based system for processing, enhancement and transmission of images over satellite data links.
- Designed methods for fast image rotations and reflections.
- Designed an algorithm to display satellite images in false color by combining information from different frequency bands.
- Wrote C and assembly language software for interfacing to image scanners, cameras, image display boards, and image printers.
2/81-4/85 Scientific Software Support Group
- Designed the user interface and graphics software for a topographic map display on a Sun workstation and implemented it in X windows using the C language.
- Designed a computational geometry algorithm for automatic detection and suppression of overlapping graphics objects to automatically declutter the display screen.
- Used the UNIX tools YACC and LEX to write a parser for extracting graphics data from a database.
- Designed an algorithm to automatically lay out connections between graphic symbols for a visual programming language. Designed a method to automatically generate code from the diagram using topological sorting.
- Developed mathematical software for polynomial root finding, numerical Laplace transform inversion, exponential integral and other math library functions.
EDUCATION:
- Graduate work, partial differential equations, Ph.D. program in Mathematics University of California, Berkeley, California. 6/79 - 6/80
- Bachelor of Arts in Mathematics, Minor in Physics, University of California, Berkeley, California 6/79.
- Honors: Phi Beta Kappa, Distinction in Scholarship.
PATENTS:
- Method for transitioning power states of an electronic device, Filed Dec 29, 2017
- State-based touch threshold, Filed Sep 11, 2017
- Method of optimizing touch detection, Filed Dec 11, 2014
- Method of disambiguating water from a finger touch on a touch sensor panel, Filed Dec 2, 2014
- Coupling correction in capacitive touch panels, Filed Sep 9, 2014
- Low power scan for device wake up and unlock, Filed Aug 28, 2014
- Multiple simultaneous frequency detection, Filed Jul 23, 2013
- ESD detection on a touch input device, Filed Dec 10, 2012
- Detection of low noise frequencies for multiple frequency sensor panel stimulation, Filed Feb 21, 2012
- Combined force and proximity sensing, Filed Jul 14, 2011
- Noise detection in multi-touch sensors, Filed Jan 5, 2010.
- Negative Pixel Compensation, Filed Sep 30, 2009.
- Speed/positional mode translations - Gestures for converting from a position control mode to a motion continuation mode, Filed Jun 13, 2007
PUBLICATIONS:
- Mathematical software and tutorials published on my web site http://seanerikoconnor.freeservers.com, 1999-present.
- "PC-Based High Accuracy Displacement Field Measurement System", Hassan Mostafavi and Sean O'Connor, 1992.
- "Software for Galois Field Arithmetic and BCH Code Generation", Sean O'Connor, Lockheed Technical Report F-103441, April 1986.