Key Skills
- 16 years working experience in Computer Science Industry
- Skill set covered server-side programming, client-side programming and mobile programming (Android, HTML5, NodeJS, Javascript)
- Having strong background of building high scalable 3D geometry processing webservices
- Good at providing software solution; quick learner on business logic and good communication skills
- Programming Language:Master in Java, Javascript(Typescript), WebGL, HTML5, C++
- Web Development: NodeJS, JSON, Web Service, React and Angular
- Database: Expert in Relational database (MySQL, PostgreSQL)
About myself
I am Quan, most people call me Kevin. I have been working in software development world for 16 years. Most of my daily job is to play with code and think about what is best for the product, work closely to the teammates to help them advance their technical skills.
Build highly scalable 3D geometry webservices which can handle millions of requests per day.
Prototype and designed Codeblocks product for Tinkercad, my role in this app is architect. Because we are a very small team, I implemented most part of the code. It is a standalone application, it has backend, dashboard, 3d view and blocks editor. The innovation part of this app is the animation. I show the timeline of how the mode is built, the transformation and the state transition. And I also built half of the starter to help user find a start point. As a developer, we know it is hard and frustrate for user start coding. And I worked hard on the blocks syntax to try to minimum the chance of error. This one is most proud app I have built so far.
3D bricks space for Tinkercad. We know people love Lego bricks and would like to build things using Lego bricks. What if we can develop an algorithm to convert any 3d model to bricks. It was a fun project for me since I have never play with bricks before. After I implemented the first version of the algorithm, I bought a box of bricks from Lego store in the u-pick area. And the first thing I build is hot air balloon. It was so cool, and I had lots of fun. It is all client-side solution and runs in user’s browser, and I tried with very huge design, it also worked. In order to export huge STL/OBJ model, I rewrote the STL/OBJ Exporter to leverage the buffer in html5.
I have released two very successful Android application: Pixlr Express for Android, Instructables for Android. Pixlr won google best Android App of 2012. (yeah)
There are so many things I can write, well let’s stop here.
Work Experience
Google LLC
Software Engineer (Linux Kernel Release)
2021/10 - Present
Autodesk
Software Architect, Autodesk, San Francisco, California, US
2018/04 – 2021/10
- High level design and implement 2D graphics for fattest PDF viewing experience
- Coach team graphics technologies
Tinkercad Project
Jun 2016 - April 2018
Autodesk main online education platform for STEM students. It provides easy to use online 3D design and Electronic Circuits tools for millions of kids worldwide. https://www.tinkercad.com
- Responsible for the whole architecture of the Tinkercad website, web services and 3d design editor
- Manage the Tinkercad development team to coordinate the product direction and needs
- Code review for the whole team, coach teammates to help them grow in the company, organize technical debate when there is tough technical decisions to make
- Performance probe to make sure Tinkercad can handle at least 10K concurrent users, Tinkercad userbase grows from 2.6 million to about 11 million without increase AWS cloud cost, while provided better performances
- Integrate with Autodesk Fusion 360 to build the funnel for student move on to more advanced 3D/Simulation tools
- Rebuild the search engine for the website, adapt the web service infrastructure to auto scaling architect, which saves hundred of thousands dollars per year
- Build the Tinkercad Codeblocks editor to teach user to do procedure modeling with Tinkercad platform, won The EdTech Awards 2019
- Architect the automation framework against Tinkercad 3D editor
- Prototype and Release Tinkercad Part Feature (June, 2017)
- Build tinkercad Codeblocks feature
- Unify backend geometry services for V1 and V2 system (April - May, 2017)
- Design and implement V2 API system to support session stickless and autoscaling (April, 2017)
- Migrate V1 system thumbnail rendering pipeline and integrate it with V2 method
- Design and implement URL signature to enable the access control to assets (April, 2017)
- Design and implement the API-Reader system (January - March, 2017)
- Massive memory leak and performance fix in Tinkercad Editor (January - March, 2017)
- Build backend CSG services to help Tinkercad centralize the geometry services and reduce the cost of AWS
- Change application logic to build auto scalable application infrastructure to help company reduce the cost
- Do detail memory leak analyze and decouple GC references to fix the memory leak in client side
- Change the GLSL shader to create correct visual effect
- Add batch operation control to boost the application performance
- Create AWS lambda functions to monitor S3 changes, split current API-Server with new infrastructure to off load the server pressure without re-engineer the logic, change the server with more scalable infrastructure
Principle Engineer, Autodesk (ACG), Toronto, Canada
2016/04 – 2016/06
Senior Software Engineer, Autodesk (ACG), Toronto, Canada
2014/06 – 2016/04
123D Tinkercad Project [May 2015 – June 2016]
- Work closely with Tinkercad global team to build next generation of Tinkercad platform by redefining the backend infrastructure and web application infrastructure, review and coach team members, help them to grow their professional skills in Autodesk
- Work with Lagoa Team in Montreal, Canada and ASM Team in Cambridge UK to prototype for the Tinkercad roadmap project – Project Marta, the bridge between consumer 3D application to professional modeling and simulation software Autodesk Fusion 360
- Build highly scalable CSG service by using NodeJS wrap Gen6 and make it as a cloud webservice which can provide excellent performance and velocity
- Fix memory issues with Gen6 code and change the architect to build the intermediate calculation result cache
- Build SketchTool for EZHome Project (Based on BREP kinds of data structure)
- Build the main work plane and improved the visual effects
- Build solid boolean server which is a c++ library need to be wrapped by Chrome V8
- Fix memory issues in Tinkercad Editor and boost the loading process with asynchronized load experiences
- Build thumbnail generation service which is using povray to render the 3D scene
- SVG import and export with advanced 2d Boolean logic
- Build OBJ/STL file exporter with NodeJS
123D Sculpt+ (Android) Project
[June 2014 – April 2015]
- Sculpt project is a 3D modeling software, which is the upgrade version of 123D Creature. This project has lots of technology, including C++, Lua, OpenGL, Java, JNI, all kinds of reflection. I am responsible to implement some C++ API for the framework and integrate Android native UI with OpenGL UI, which was controlled by C++ and HUD system.
- Build Android UI and control the transition animations
- Build custom user control, provide smooth user experience
- Investigate the build script to make the JNI code run faster with compiler options
- Create some LUA script to connect with Java and other eco system.
Senior Software Development Engineer, Autodesk (ACG), ACRD, China
2010/09 – 2014/05
Instructables Project: Instructables for Android
[Aug 2013 – May 2014]
- I am the only developer for this project from Aug 2013. We completely revamped this application from the version 1.3. Fixed lots of crashes, memory leaks, and logical issues.
- Successfully released version 1.2, 1.3, 1.4, 1.5, 2.0
- Rebuild the whole UI, workflow and creation logic for version 1.3
- Build localization support for 6 languages
- Created day/night mode to improve the viewing experience
- Analyze the memory leaks with MAT(Memory Analyze Tool for eclipse) to fix almost all memory leaks, which helps us to run more than half million times of Android Monkey testing to detect memory issue or possible crashes. Our application is now more stable than ever.
- Refined the data mode for better data binding and extensions, which helps me to minimize the data adapting and code extensions.
Pixlr Project: Pixlr Express For Android
[Jun 2012 – Aug 2013]
- Key contributor of Pixlr Express For Android. Pixlr Express For Andoid was a photo editing application which run on android platform, support on SDK 2.2+. It was released on Nov 2012, and won Google Best Apps at the end of 2012. [https://play.google.com/store/apps/collection/promotion_3000068_best_apps]
- Build robust UI to match all platform dynamically and fluent animations
- Implemented Vibrance/Touch Up/Focal Blur/Color Splash/Denoise/Whiten/History Brush/Doodle
- Performance tuning for Whiten/Rotate/Saving
- Investigated Ads platforms [not release]
- Developed UI component for the application: Slider/Color Picker/Color Palette/Value Tile
- Developed post animation mechanism for editing tools
- Developed vibrance feature for Pixlr Editor(Web)
- Codebase update for Pixlr-O-Matic
- Collage feature for Pixlr Express (web and android)
- Build real-time video effect for Pixlr-O-Matic2 with OpenGL and GLSL
HomeStyler Project
[Sep 2010 - Mar 2012]
- Implemented new rules for room and wall interactions(modeling improvement), great improved user experiences when create a room and walls
- Built pure 3D viewer based on Adobe Molehill API [POC]
- Introduced new 360 panorama to our product, this feature will be released in Oct 2011 as a main feature for our product, we have built viewer for all platforms including iPhone/iPad using HTML5
- Developed state management system for HomeStyler designer, design profile for web and mobile platform
- Built new content engine for catalog and integrate with other furniture companies
- Build new content service engine with CakePHP, Mysql
- Database tuning, the performance has been improved for more than 20 times
- Debug and fixed the server side memory leak
- Built many automation tools to make the development work easier
Chinasoft
SDETII Chinasoft Resource Co., Ltd (Shanghai & Beijing)
2007/02 – 2010/08
- Member of Visual Studio Core IDE team, in this team we maintain and implemented Microsoft Automation User Interface framework (VB.Net)
- Use Windows Debugger to diagnose manage heap of Visual Studio run-time and monitor the object count and reference count of NewProjectDialog object. investigated the memory leaks in VS; Investigated problems using Maui for stress and performance test (8 hours run)
- Developed daily report tool GroupRunSummary using Asp.Net, Excel, Maddog SDK, Product Studio, TFS
- Developed batch file for system installation and increased productivity
- Developed report generation program for efficient results management and analysis (VB. Net)
- Developed automation test cases using C# and VB.Net to test Visual Studio, Download Management Studio, and DSP WCF Web Services; Solved focus problem of debugging test cases by using Remote Debugger Technology
- Located keys for resource strings in managed assembly to solve the instability issues of resource strings
- Developed online template generator tool for new features in Visual Studio 2010
- Developed automation user interface for DMS tool based on MSAA and UIA technologies; Developed SDK Automation framework for testing DSP WCF Web Services
- Developed Testing data source for data driving testing
Kayang
2006/06 – 2007/01
- Delivered Kayang HR Workshop (based on Visual Basic 6.0, SQL Server 2000) ver. 7.0.163 to 7.0.165
- Developed Kayang HR Data Transfer Tool (using Windows Services, XML, SQL Server) which is used to transfer data between Database, File Server and ERP System
- Delivered Kayang HR Workshop Special Version for Bank Company (Change the approval workflow using Maker and Check System)
Education
- 2003/09-2006/06 Master in Geology and Paleontology - Chinese Academy of Science, China
- 1999/09-2003/06 Bachelor in Biology - Nanjing University, China
Certificates
- 2007/05 Microsoft Certified Applications Developer (MCAD)
- 2007/12 Maui/Maddog Expert in Chinasoft
Appendix
Adobe Molehill API is a Flash 3D solution which can leverage the power of graphic card, it’s a fast render system
Maui – Microsoft Automation User Interface, it is a testing framework which leverages the MSAA and UIA technology to drive user interfaces for testing purpose
Maddog – Internal test management platform in Microsoft
ACG – Autodesk Consumer Group
ACRD – Autodesk China Research & Development Center
HomeStyler is a free interior design software, which provide great 2D/3D design experience for consumers; it also can provide high definition RAAS images
Pixlr is an online and mobile picture edition software, which is very popular for all kinds of users and has great user group.
Instructables is a website specializing in user-created and uploaded do-it-yourself projects, which other users can comment on and rate for quality.
123D Creature – Please check the following application on iTunes Store and Google Play
https://itunes.apple.com/ca/app/123d-creature/id594014056?mt=8
https://play.google.com/store/apps/details?id=com.autodesk.Sculpt&hl=en
CSG – Constructive solid geometry (CSG) (formerly called computational binary solid geometry) is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combine simpler objects.