Post Job Free
Sign in

Project Engineer

Location:
Singapore
Posted:
January 24, 2013

Contact this candidate

Resume:

Chu-Ming NG (Huang Zu Ming) 黄祖铭

Software Development Engineer

Autodesk Inc.

Webpage : http://www.rendezvouswithdestiny.net/bio.html

Permanent Address

BLK 710 Bedok Reservoir Road #07-3116 Singapore (470710)

Republic of Singapore

Contact Information

Tel: +65-62431821 (Home) +65-97908706 (Mobile)

Email: abqgce@r.postjobfree.com

Marital Status

Single

Ethnicity

Singaporean Chinese

Nationality

Singapore Citizen

Place of birth

Singapore

Date of Birth

19 August 1978

Looking for a challenging career in research & development in Computer Graphics or application development in related areas in a dynamic and progressive organization with a global perspective. It has always been my dream to work in the domain of real-time Computer Graphics or related fields, ever since I was inspired when I saw the real-time graphics demo 2nd Reality by Future Crew many years back.

1.

July 2003 – Dec 2005

The National University of Singapore

Master of Science (Computer Science) by Research

School of Computing. (Conferred in Oct 2006)

Thesis Title : Synthesis of Non-regular Architectural Forms

2.

Jul 1999 – May 2003

The National University of Singapore

Bachelor of Engineering (Computer Engineering) with

Department of Electrical and Computer Engineering &

School of Computing. (2nd Upper Honours)

3.

Jan 1995 – Dec 1996

Nanyang Junior College

Cambridge General Certificate of Education (GCE) Advanced Level.

Subjects :C Maths, Further Maths, Physics (Distinctions)Computing (B)

4.

Jan 1991 – Dec 1994

Victoria School

Cambridge General Certificate of Education (GCE) Ordinary Level

Chu-Ming Ng, Tiow-Seng Tan, Joseph Lim, Yenn-Jin Ho, Wai-Heng Lai,

Growing Non-Regular Architectural Forms. (Draft in preparation and review in graphics conference, May 2006)

See http://www.rendezvouswithdestiny.net/arch/Project%20Synopsis.htm for some preliminary info. Manuscript is available on request.

Chu-Ming Ng, Cam-Thach Nguyen, Dinh-Nguyen Tran, Shin-We Yeow, Tiow-Seng Tan, Analyzing Prefetching in Large-Scale Visual Simulation, Proceedings of The Computer Graphics International 2005, 22-24 June, Stony Brook, New York, USA, pp. 100--107.

Chu-Ming Ng, Cam-Thach Nguyen, Dinh-Nguyen Tran, Shin-We Yeow, Tiow-Seng Tan, Analyzing Prefetching in Large-Scale Visual Simulation (Invited Poster), ACM SIGGRAPH 2005 Symposium on Interactive 3D Graphics and Games

Chu-Ming Ng, Cam-Thach Nguyen, Dinh-Nguyen Tran, Shin-We Yeow, Tiow-Seng Tan, Prefetching in Visual Simulation (Poster), Proceedings of IEEE Visualization 2003

Interesting Fact : My is 4. (Paul Erdos->Aronov Boris->Herbert Edelsbrunner->Tiow-Seng Tan-> Chu-Ming Ng)

"Demos and Realtime Computer Graphics" - Talk given to Computer Graphics Research Lab, School of Computing, NUS. (23 March '07). Free feel to use the .

1.

Feb 06 - Present

Software Development Engineer (Autodesk Inc. )

A member of the development team for the engineering data management product Autodesk Productstream/Vault, which is an integral component that ships with the major product lines of AutoCAD, AutoCAD Mechanical, AutoCAD Electrical and Autodesk Inventor.

2.

Jan 04 – Dec 05

NUS Research Staff

Conducted graphics research under NUS Research Assistantship in the area of architectural form generation using algorithmic techniques. Implemented interactive system for rapid prototyping of building forms using novel data structures and algorithms.

3.

Jan – Jun 2002

Gelement.com

Research into the development of large scale data management and prefetching methods for out-of-core terrain visualization.

1.

April 2006

Software Project Planning and Management offered by The Process Group. Developing a Work Breakdown Structure (WBS)Developing Estimates using Wide Band Delphi ProcessDetermining Risks and Setting PrioritiesCreating a Project Schedule and Reviewing Project Commitments

2.

July 2006

ObjectARX Application Development (Autodesk internal)Developing C++/C# ObjectARX applications for AutoCADWriting managed C++ wrappers for unmanged C++ code

3.

April 2007

Autodesk Employee Leadership Program (program developed with Catalyst Consulting Team)SubArctic Survival simulation

4.

August 2007

Career Power (Autodesk with Career Systems International)5Ps process for career develop

1. Interest in algorithm design and coding for Competitive Programming.

This involves solving problem sets from the annual . A list of the problem sets can be found at http://acm.uva.es/problemset. See the following web address for my set of solutions to some of the problems: http://www.rendezvouswithdestiny.net/Online_Judge/

2. Demo coding and the Demo Scene.

Demos are executable which produce, in, engaging computer graphics and music. Programming, Art, and music Composition skills are stressed. Demos are similar in some ways (but are not equivalent) to music videos or short films. See http://www.scheib.net/play/demos/what/hugi/index.html for a short introduction of the demo scene. See http://www.rendezvouswithdestiny.net/demoscene.htm for some of my works in demo coding.

My passion for Computer Graphics began many years back in my college days when I happened to chance upon the PC demo 2nd Reality by Future Crew, which was listed by Slashdot.org as Top 10 Hacks of all time. Since then I spent quite a large part of my time (about 8 yrs beginning from ’97) on learning about realtime graphics programming and coding various effects that were popularly used in various demos back then. Since graphics accelerators were non-existent during that time, everything has to be from the ground up. Major work includes a 3d software engine coded from the ground up without the use of hardware acceleration and API libraries, since these are practically non-existent back then in 1997. The 3D engine features software guoraud shading with software Z-buffering. Other misc. routines are also implemented such as bresemham’s line routines in C with hand optimized inline assembly. I have also coded a bunch of other old school demo effects such as fire, water ripples, lens effect, particle morph and motion blur using palette rotation.

Hence I have a good familiarity with the graphics pipeline and a good grasp of fundamental issues and optimization aspects of coding realtime graphics. Most codes were developed in C with inline Assembly and I am able to appreciate how handcoded assembly instructions can outperform compiler generated codes. A portfolio of various 3d and 2d effects is available on request. Thru my university days and in graduate school I continue to take an interest in graphics and later on computational geometry when I was in graduate school.

3. Language Proficiency and API Knowledge

I am fluent in C, C++ (ard 7 yrs coding exp since Junior College), Assembly and also C with inline Assembly, since those are the predominantly used languages in demo coding. Other languages known include Java and Perl as well as application development using MFC.

Practical Experience with Opengl, Nvidia Cg Shaders, CGAL(Computational Geometry Algorithms Library) in both Windows and Linux Platform.

Experience also with multithreaded application programming used for multithreaded data prefetch in terrain rendering system used in conference paper.

4. Collaboration work with Dept of Architecture NUS.

My Masters thesis (manuscript for this work is pending publication) was on a collaboration project with the Dept. of Architecture in NUS on the topic of automatic generation of building forms. This research features the use of Nvidia fragment and vertex shaders for intelligent architectural form computation as well as an interactive user interface for form manipulation. It also presents novel data structures and algorithms for form generation. Through this collaboration, it has widened my perspective on the use of computer graphics techniques in cross discipline projects.

5. Skill set summary.

C, C++, Boost C++ Library, Assembly (and also C with inline Assembly), Java, Perl,

Opengl, Glut(GL Utility Toolkit), Nvidia Cg Shaders, CGAL (Computational Geometry Algorithms Library) in both Windows and Linux Platform, Linux development environment (gcc, emacs, vim), MFC programming, Bash Shell scripting, 3ds MaxScript, Win32 threading.

Familiar with C++ coding standards outlined in classics books ( Effective/ More Effective C++ by Scott Myers) as well as software architecture principles from the book on Design Patterns . These are advocated Autodesk-wide and weekly discussions/presentations are held on topics covered in these texts. Also trained in ObjectARX development which is used for developing sub-apps running on top of the AutoCAD application.

Software Engineer with Autodesk Vault Team

64-Bit Porting of Autodesk Vault codebase.

Responsible for the porting effort of the Vault codebase to the 64-bit Windows OS (x64) on the Amd64 hardware platform. The porting effort involves major planning and collaboration with Autodesk-wide dev-teams due to the dependencies between each of the Autodesk suite of products and Vault, as well as Vault’s dependency on other Third-party utils.

Major issues include:Handling the mixed codebase of C++, managed C++ and C# code and the implications and issues when moving to the 64-bit platform. Resolving issues concerning the use of P/Invoke in C# and its implications on 64-bit migration.Use of polymorphic datatypes in Win64 API in porting effort.Maintaining one single codestream that cross-compiles to Win32 and Win64 target platforms.Understanding, identifying, resolving the following throughout the entire codebase, Size of primitive data types between 32-bit and 64-bit platformPointer truncation and sign extension issues on various datatypesIndentifying and fixing C++ struct packing issuesConverting existing inline Assembly language routines to C++ equivalent since Win64 no longer support inline asm.Dll dependencies – 64-bit processes cannot load 32-bit dlls and vice versaEnforcing typesafe C# code.

Software Specifications Drafting Experience

Worked on spec for part of AutoCAD’s UI revamp for upcoming release (AutoCAD 2009) for Windows Vista Developed code for the above as part of new Vista UI initiatives for AutoCAD functionality related to Vault.

Development of various new features in Vault Addin for Autocad.

Vault addin for AutoCAD is an ObjectARX application which integrates with AutoCAD to allow the check-in of AutoCAD DWG files from the AutoCAD application. This similar to a CVS for CAD files and the following are the features worked on to date,

Integration issues with Autocad application. DWF publishing when checking in DWG files with Vault Addin Attach/Open from Vault files in AutoCAD.

Development/maintained various features in product Autodesk Autoloader This is a bulk upload utility to upload entire customer Dwg data to Vault servers.

Header dependency tracing for AutoCAD

This project stems from the need to identify the set confidential AutoCAD header files from the set of ObjectARX header files (which are released to the public) that is included for use by the Vault Addin for AutoCAD.

Developed custom solution to the problem when off-the-shelf tools are unavailable. Investigated to use of special g++ commandline options to that will be able to solve the problem together with some ‘hacks’ involving the pre-preprocessing of vault source files.Installed linux environment on home PC so as to use gcc for tracing the header dependency tree. Investigated sed, perl and bash scripting to preprocess vault source files before they can be used with g++. Preprocessing issues solved by the scripts include, Stripping all header files clean of WIN32 preprocessor directives since they will pose problems on the g++ platform. All files processed so that #pragma once is insert in every header and all .cpp and .h files only contains #include statements.Lowercasing all #include statements, batch converting all directory names and file names to lowercase. This is important since unix filenames are case sensitive.Bash scripting for invoking g++ with –MM option on each .cpp file to generate the list of files in its header dependency tree.Post processing each generated list above to remove duplicates.Subsequently created similar scripts for processing on windows platform used in conjuction with visual c++ compiler’s generate preprocessor output file output.

All the efforts contributed towards to ability to remove all dependency of vault code on private and confidential acad headers. This allows greater productivity by leveraging on the outsourced development efforts that will no longer need to access private acad headers.

Performance Profiling / Technical TroubleshootingKnowledge of memory leak (pointer leaks, GDI leaks etc) detection using Boundschecker and AQTime. Knowledge of performance profiling using AQTime. Experience in using tool to identify performance efficiency bottlenecks.Techinical troubleshooting using Dependency walker and SysInternals tools

Unmanaged C++ / Managed C++ /C# Interoperability.Experience developing with Visual Studio solution with a mixture of C++, Managed C++ and C# project.Knowledge of invoking unmanaged code from managed code and vice-versa. Wrote unmanaged wrapper around a managed Dialog that allows the use of C# dialogs in unmanged C++. This is based on the Pimpl idiom and the mediator design pattern. Marshalling of data types between managed and unmanged code.

Boost C++ Library Knowledge / STLFamiliarity with the use of boost libraries such as boost::bind, boost::dynamic bitset and boost::optional as it is widely used in the codebase.Familiar with STL and STL issues eg, COAP, vector performance issues.

MFC / COM developmentKnowledge of using COM and Automation technologies.Implemented DWG-to-DWF file publishing (conversion) via out-of-proc communication between AutoCAD and Autodesk TrueView application.

C# developmentXml Serialization using XSD. Generating XML Schema from XSD and creating C# parser code. Object instantiation using C# ReflectionC# COM Interop for Invoking out-of-proc Inventor instance to perform DWF publishing for Autodesk Autoloader application

Visual Studio Addin development

Developed in my free time a dependency management tool addin using the Visual Studio Extensibility API that presents visually the various dependencies such as header, include files, library files, include paths, library paths and in which projects they were used. This is helpful due to the large number of projects (50 C++/ C#) in the solution module that we are working on. See below for screen shot. DevExpress widget API knowledge is used in the creation of this addin.

Figure 1. Screen shot of Project Admin's Library File Dependency feature

CS5237 Computational Geometry and It’s Applications (Project) :

Surface Reconstruction from Point Clouds.

This project investigated surface reconstruction from point clouds and implemented an adapted reconstruction method based on the algorithm by Amenta et al. listed below.

Nina Amenta, Marsahll Bern and Manolis Kamvysselis., Siggraph '98, pages 415-421 (1998).

B.Eng Dissertation (HYP) : An Adaptive Pre-fetch Algorithm for Out-of-Core Visual

Simulation

[Supervisors: Dr Tan Tiow Seng, SoC, NUS / Dr Ong Sim Heng, ECE, NUS]

Developed formalism for the analysis of the prefetch problem in out-of-core visual

simulation. Implemented an adaptive prefetch algorithm for large scale walkthroughs that dynamically adapts prefetch requests to the density of data in the vicinity of the viewer while ensuring low page fault rates. The performance of the prefetch algorithm is supported by theoretical results derived from the formalism proposed. Results from this work was subsequently presented in a paper in the proceedings of the Computer Graphics International 2005.

Software Project (FYP): Terrain Walkthrough

[Supervisors: Dr Tan Tiow Seng, Dr Teh Hung Chuan, SoC, NUS]

Implemented a variant of a real-time continuous level-of-detail algorithm (based on ROAM) for interactive terrain walkthrough that supports view dependent refinement and simplification of terrain meshes during runtime.

Analogue Electronics

[Supervisor: AP Teo Kie Leong, ECE Dept., NUS]

Designed and implemented an audio amplifier. An original design comprising a 5 channel surround sound decoder with stereo separation control circuitry and 4-way input mixer was implemented in hardware. Nominated for Best Audio Amplifier award.

1.

July 2003

NUS Research Scholarship

2.

Jan 2004

NUS Research Assistantship

Participation in Extra-Curricular Activities

A. Appointments

1.

Dec 2006

Standard Chartered Singapore Marathon 2006

Completed Full Marathon (42.195km)

2.

Jul 1999– Jul 2003

Nus Wushu Sub-Club

Member

National Wushu Competition 99/00

Team Event (Gold)

National Wushu Competition 02/03

Team Event (5th)

3.

Jul 2000

NUS Wushu Sub-Club

Treasurer

4.

April 2000

NUS Team(3) in Computron Quiz 2000

5.

Jan 1995 – Dec 1996

Nanyang JC Pugilistic Society.

6.

September 1995

Represented college in National Software Competition.

7.

September 1995

Represented college in Hewlett-Packard Technology Quiz organised by NUS/NTU

8.

August 1995

Represented college in Computron Quiz ’95 organised by NUS.

9.

Jan 1991 – Dec 1994

Victoria School Table Tennis Team

Represented School and attained Silver and 4th Placing at Zone Level Team competitions.

Served with the Singapore Armed Forces, 1st Commando Battalion from Jan ’97 – May ’99.



Contact this candidate