Email : **********.****@*****.***
Mobile: +1-669-***-****
Locate: Bay Area, California
Kejun Zhang
Objective
To seek a challenging software R&D engineering position that utilizes my skills and experience in embedded/mobile computing, machine intelligence and programming. Summary of
Qualifications
14 years of solid industry working experience on camera-based vision software and embedded/mobile system design and development, hardware and system integration, troubleshooting, and test software implementation.
Solid experience with extensive skills in C/C++ (15+ yrs), JNI, Java and SIMD assembly programming and experience in Android/embedded Linux full-stack development ranging from middleware/Application Framework, system profiling and performance optimization to Linux driver and SoC board bring-up.
Extensive knowledge and experience of Object Tracking, Hand Gesture, Position Tracking and Neural Network as well as their SDK development (since 2008).
Excellence in algorithm optimization and system performance improvement as well as cross-platform solutions for Android (since 2009), Windows, Ubuntu, Mac OS and iOS.
Hand-on troubleshooting, alternative solution identification and problem-solving skills on camera system and embedded /mobile products.
Good product qualification and defect analysis, and customer support experience.
Able to work under pressure in a dynamic environment and enjoy challenge.
Excellent people skills and team player.
Work
Experience
2019 May - 2020 Feb Neusoft America Santa Clara, California, US Sr. Researcher in Sensor Fusion
Investigate and evaluate latest sensor fusion technologies for the perception of autonomous vehicle and smart city.
Devise a cloud point based stereo-vision and LiDAR fusion approach for dense high-precision 3D reconstruction.
2014 - 2019 April USens, Inc. San Jose, California, US Lead System Software Engineer
Develop and implement camera framework for software algorithms with varieties of camera protocols and SDKs including V4L2, UVC and Android Camera1/2 etc.
Contribute to investigating and developing new framework and tools to the progress of Hand Tracking with Gesture and SLAM/AR SDK products.
Maintain/optimize existing features and codes, fix issues to ensure code accuracy and efficiency in C++, Java and other programming languages.
Optimize C/C++ algorithm performance on ARM and ATOM SoC processors over Android/Linux/Windows platform: SIMD (NEON, SSE), OpenMP, and TBB etc.
Creatively hack libUVC/libUSB stacks and enable FingoCamera externally to Android phone to work.
Build Android kernel for stereo camera on Snapdragon Dev board for Fingo product line.
Worked on Cypress FX3 USB controller firmware to add/fix IR LED control, auto/manual exposure control, and frame rate control etc.
Port RgbHandGesture(Tensorflow based) SDK from Android platform to Ubuntu and MacOS/iOS as well as building a CMake-based Tensorflow C++ SDK for development framework on Linux (Ubuntu/MacOS). 2008 - 2014 Qualcomm Toronto, Canada
Staff Software Engineer, July 2011 to 2014
Senior Mobile Software Engineer, 2008 to July 2011 (at GestureTek, acquired by Qualcomm)
Responsible for the development of gesture interface SDK, as well as gesture interface algorithm optimization targeting system-on-chip, as well as hardware and software debug, test, and support, utilizing Android SDK and Qualcomm performance tools.
First ported open source libUvc and libUsb to Android platform to enable external USB camera on Android phone with OTG (in 2013).
Participated in the research and development for the following GESTURE products: Qualcomm Airpoint SDK for Android, Qualcomm Snapdragon SDK for Windows RT and Windows Phone, Qualcomm MoMo SDK for all Android platforms and Windows RT platform, GestureTek EyeMobile SDK for Windows CE/Mobile, BREW and Symbian.
Independently developed the framework and test demo of Qualcomm Gesture SDK on Windows Phone and Windows RT.
Implemented and released the first gesture product on Windows RT platform – Qualcomm MoMo SDK including Motion, Mosaic, Color, RGB, and Face trackers.
Optimized the image processing algorithms for Oyster gesture targeting Windows RT and Windows Phone (SIMD/NEON, system speeding ~45%).
First ported and implemented OpenCV on Windows RT and Windows Phone platforms.
Investigated the extension of Linux kernel and drivers, Android Binder mechanism, Android socket communication over Bluetooth and USB, and Android Camera Framework and developed gesture engine SDKs for Android platform with Android platform build systems (PDK, NDK, JNI, C++) and Android Java SDKs( in 2010).
Optimized Roll block match by sub-sampling image when calculating score for 40% speed improvement for Roll engine (in 2009).
Developed cross-platform graphics and audio libraries for BREW platform, Symbian platform, and Windows Mobile platform with BREW SDK, Symbian SDK and Windows Mobile SDK (in 2009).
Ported/Refactored motion and 3D games from Docomo DoJa platform to MIDP platform (J2ME) for Nokia and Sony Ericsson (in 2008). 2007 – 2008 Magmic Games Ottawa, Canada
Lead Platform Developer
Ported games from BREW platform to Windows Mobile platform (C++. BREW SDK, Windows Mobile SDK) and developed new features into games to take advantage of the advanced capabilities of the Windows Mobile platform.
Developed BREW-to-WinCE wrapper lib and common lib for windows mobile applications with the focus on keyboard map, graphics, screen rotation and touch screen.
Maintained cross platform build system utilities (Cygwin/Linux, Java, Perl, Python etc.).
2007 – 2007 Ericsson Canada Montreal, Canada
Windows Mobile Developer - Contractor sent by summit-tech.ca
Investigated on 3GPP IMS (IP Multimedia Subsystem) and ICS (IMS Common System) Client system and developed a prototype client demo targeting Window Mobile platform for Germany T-Mobile, with the emphasis on the implementation of MSRP stack, the porting of platform-specific service framework and the interaction of Client GUI.
Built a deliberate architecture for the XML socket interaction and communication between C++ and FLASH on Windows Mobile platform for Pocket PCs and Smart Phones by employing advanced object-oriented programming techniques (WTL/ATL) and Windows Mobile SDK technologies.
Restructured a threading lib architect, including 21 static libraries to a service framework, only including common lib and platform specific lib so as to conveniently port the application to different platforms and clarify its portability.
Ported the whole framework of ICS from Win32 to Windows Mobile 5.0.
Provided a design and implementation solution for Flash UI running on Windows Mobile 5.0 with intensive interaction with C++ ICS client. Technical
Skills
Programming C++/C++11, C, JNI, C#, Java, Multi-threading, Assembly language (ARM, NEON, Intel x86/SSE), Python and Shell scripts.
Development Tool GNU Toolchain, Android Studio(with Profiler), Visual Studio, Eclipse, XCode, Windows & Mobile Platform SDK, Android NDK and SDK, GIT, Tensorflow C++ SDK,
OpenCV SDK, CNN and SLAM/PTAM.
Protocol & Bus TCP/IP sockets, HTTP/s, IPC, Ethernet, 3GPP, 5G wireless, SIP, PCI-E, USB, SPI and I2C.
Operating System Unix/Linux family (Ubuntu/Android/Mac OS) and Windows, Application Framework & Middleware, BIOS/UEFI, and Camera Firmware.
Methodology OOA&D, UML, Pattern, Scrum and Extreme Programming. Education
Master of Science in Radio Electronics, XIOPM, University of Chinese Academy of Sciences, China
Bachelor of Science in Automatic Control, Nankai University, China