Software Engineer Resume
Redmond, WA
SUMMARY:
- 4 years C# development, and has a solid understanding of .NET framework.
- 4 years UI development with Model - View-View-Model (MVVM), XAML, WPF and C#
- 4 years embedding software development.
- 10 years of Object-Oriented Design and Object-Oriented Programming (OOP) with C++ with Window or Linux.
- 10 years of thread-safe programming and Multithread programming.
- 2 years testing-driven programing, and familiar with Microsoft unit test framework and Google test framework
- 4 years XML serialization. half year experience in ruby on Rails, and MVC.
- Over 6 years with very large scale data processing/analysis/Modeling. familiar with Hadoop, and has a solid background of machine learning (such as deep learning, recursive neural network) and graph analysis, and big data analysis, and data mining.
- Has a solid background of computer vision, pattern recognition, information retrieval, video codec, intelligent video surveillance, image database, and data mining.
- Has strong algorithm background and over 14 years experience of applying advanced knowledge to solve real problems, and proven track records of delivering 4 commercial software products, such as Epiq, HistoPath, Via3, Oil Sand Analysis System, GeoImageDB.
PROFESSIONAL EXPERIENCE:
Confidential, Redmond, WA
SOFTWARE ENGINEER
Responsibilities:- Lay a framework for orcOptics system.
- Complete orcOptics UI work using MVVM (XAML).
- Create a framework to facilitate data communication between UI, native orcOptics, and XML files using C++/CLI
- Create a framework to launch UI from native side.
- Use cmake to automatically generate solution and projects to manage the build process of orcOptics for Windows and unix.
- Write google test framework for orcOptics unit testing.
- Software deployment for orcOptics using NSIS.
- Port orcOptics from Windows to Unix system.
Technical Environment: Object-Oriented programming with C++11.0, C++/CLI, .Net/C#, WPF, XAML, MVVM, MVC, multithread synchronization, XML, Microsoft XMLDocument, TinyXML2, Serialization, Microsoft Visual Studio, Microsoft Cpp Unit Test Framework, Google Test, CMake, Ubuntu 16.4, eclipse, NSIS, perforce.
Confidential, BOTHELL, WASHINGTON
SOFTWARE ENGINEER III
Responsibilities:- UI work in Trueview (3D fetal visualization), Moving the light source in 3D, hide and show the light source, trackball arbitration.
- Using computer vision and machine learning algorithm to improve auto fetal biometry algorithm and increase its measurement accuracy from 50% to 81%. Hook up UI and grow table, create workflow to switch between auto and manual measurement.
- Use object-oriented programming with C++ to design and implement VM1.5 security component, including security policies, local user management, remote user management, and backup/restore data security .
- Use Model-View-ViewModel (MVVM, XAML) to develop security UI page and control, Add new user, change user password dialog, and validation.
- Build bridge by Common Language Infrastructure (CLI) in order to managed clients to call native security component.
- Create a test framework to test security user management component, and then migrate Visual studio C# TestRunner (C# Unit Test).
- Use thread synchronization and object-oriented programming with C++, combining event driven programming, C#, and WPF to add a new feature (called as Multiplanar Clips) on Voyager (Premium Confidential Ultrasound Imaging System), which greatly simplifies the workflow to capture and save 2D and 3D video.
- Find the defect in system design and improve the architecture of state manager to facilitate control panel availability configuration with the architecture improvement.
- Use remote debug to fix 50 system crash defects, including interprocess issues, thread race condition, and different bugs in different domains (process), such as vgrAppUI, vgrUI, USI, APR, DMS, and SIP.
- Go through Change Requirement Specification, Feature Design Specification, User Interface Design Specification, use team track to manage development tasks, follow coding standards and best practices for effective development and reliability.
- Write change set document to elaborate detailed software design, code/implementation, and test case, prepare and conduct code review.
- Go through feature delivery whole process, start from rebase, and then build and package. Once build and package succeed, use Sitool to install voyager software, verify test case and do smoke test, afterwards, do sanity test (automation software test), until development complete by check in codes and merge to the main branch.
Technical Environment: Object-Oriented programming with C++, .Net/C#, WPF, XAML, MVVM, multithread synchronization, event-driven programming, JavaScript / HTML5, Python, PHP, web development, database and SQL, embedding software development, STL container, and XML, Microsoft XMLDocument, Serialization, Microsoft SQL Server, Microsoft Visual Studio, IBM Clearcase, SItool, Agile, Scrum, C# TestRunner.
Confidential, seattle, wa
SENIOR COMPUTER VISION SCIENTIST
Responsibilities:- Create Density-based one-class classifier.
- Create tree-based signal walking + Fuzzy Logic Framework (then SVM) for various Nuclei detection.
- Create an evaluation metric for image segmentation used to evaluate all the SPC detectors.
- Create kidney glomerulus Detector (solve the problem three scientist cannot solve).
- Use decision tree to develop a tissue Recognition algorithm.
- Use SVM to develop nuclear classifier (Hepatocyte and Kuffer cell).
- Develop a microvesicle detector, macrovesicle quality measure, nuclei quality measure.
Technical Environment: Supervised Machine Learning, Support Vector Machine (SVM), Neural Network, Decision Tree, Density-based classifier, and kNN.
Confidential
SENIOR SOFTWARE ENGINEER
Responsibilities:- Create a generic classifier framework for SPC HistoPath.
- HistoPath is object-oriented programmed with C++. The generic classifier framework bridges between OpenCV, SPC, and Matlab. All OpenCV classifiers (such as Binary decision Tree, SVM, etc) are available in SPC and Matlab environment.
- The generic classifier framework involves class design, template, class inheritance, interface (train and test), and intense Conversion between OpenCV, SPC, and Matlab data format.
- Write API to retrieve SPC types from database, All Database-related Operations are available in SPC and Matlab environment (for example, DbGetRegion).
- Make a wrapper for ECP classifier, which was coded by Matlab, so that ECP classifier can be available in C++ environment.
- Code Conversion between Matlab code and C++ for SPC Execution library, Image processing library, and Type library (Spc.Caps.Execution.lib, Ip.lib and Type.lib).
Confidential, REDMOND, WASHINGTON
Senior Software Engineer
Responsibilities:- Develop a new generation of Live View System, a real time desktop sharing system (Server/Client system) with three features, such as application, the entire screen or just a particular region of your screen. The new Live View System has been integrated into Via3 version 5.0 and 6.0 and has been a product-enhancing feature (about 15000 lines code).
- Develop a VIACK-owned H.264 Video Codec (Encoder and Decoder) using object-oriented programming (C++). All C++ classes are organized by a static library and must be guaranteed to be thread-safe (about 10000 lines code).
- Develop a novel algorithm to segment image from text, Design and Implement A Static Library of image compression and decompression using object-oriented programming (C++). The algorithm has been proved to be patentable. All C++ classes must be guaranteed to be thread-safe. The important Via3 features such as Live View, Large Scale Meeting, and Application Sharing are built on the ground of the static library (2000 lines code).
- Maintain screen snap and bitmap rendering, video snap to video rendering using GDI and DirectShow.
- Profiling and SIMD(SSE2)-oriented Optimization, replace time-consuming part using SSE2 Assembly language.
Technical Environment: C++, OOP, Windows GDI, Window Kernel, Window Messaging, SSE2, Microsoft Visual Studio, Server/Client Development, TCP/IP, UDP protocol, Machine Learning, Image Processing, Image and video Compression, MPEG2/MPEG4(H.264), and zlib.
Confidential
Program Analyst and Research Associate
Responsibilities:
- Design and develop an Intelligent Video Surveillance system (oil sand analysis system) using object-oriented programming to monitor oil sand size distribution on conveyor belt, and monitor large lumps, which jam the double roll crusher.
- Develop core image segmentation algorithms for oil sand analysis system.
- Optimize image enhancement, image segmentation, and morphological algorithm to make oil sand analysis system be real time.
- Add new features and use interface according to user requirements.
Technical Environment: C++, OOP, Linux/emacs/gcc/gdb, Shell script, OpenCV, IPP and QT, Image Processing.
Confidential
Software Engineer and research scientist
Responsibilities:- Understand the payroll system comprehensively.
- Database is built and maintained by Microsoft Server 7.0. Report forms are organized using Seagate Crystal Report. VC++ 6.0 bridges between database and report forms by COM
- Add new features for the payroll system.
- Write a document for payroll system.
Technical Environment: Visual C++ 6.0, Microsoft SQL server 6.0, COM, and Seagate Crystal Report.