Resume
My Web Page
My Education
-
Tú Tài II Toán(Ưu hạng)
-
Trung Học Kỹ Thuật Quốc Gia Nghĩa Tử Sài gòn,VNCH
Trung Tâm Kỹ Thuat Quốc Gia VNCH Sai Gon VNCH:: 1973-1975[], Republic of VietNam
Electrical Engineering[Điện Tử]
-
Graduate Diploma with Distinction in Instrumenation & Control () ::1991-1993
-
Master of Electrical Engineering[Instrumentation& Control] with Vairiable Structure System Control:: 1993-1994
-
PhD in Electrical Engineering [Instrumentation&Control] with [ Advanced Sliding Mode Control :Theory & Design Techniques]::1994-1997
DHBK TpHCM Vietnam :: [1975-1978 Bachelor in Electrical EWngineering [Automation Control]
University of Technology, Sydney, Australia::1991-1997
I pursued Doctor of Philosophy to sharpen my brain for
logical thinking and for quick learning new field, patience, working attitude
and discipline; to enhance greatly my analytical capability crucially required by any R&D task in any scientific/technical
field.
.
I chose mathematic language to defend the results therein. However, experiments were also carried out and experimental results really consolidated theoretical results.
All theorems and their corollaries were originally developed solely by me, DuyKy Nguyen.
The thesis were evaluated at very high standard by 3 external[not UTS] professors, called examiners, external to the University and unknown to PhD candidate.
It's interstingly enough, I originally developed Lema 4.2, one examiner found it alreadypublished in "The Algebraic Eigenvalue Problem", by J. H. Wilkinson, Oxford University Press 1965. It appeared to me it's unpopular book and I failed to find it for comparison reason, even with great support by the University Library.
Chapter has a section of Digital Control System limited to results employed in the thesis along with my comprehensive proofs, for precise, compact and self-contain reasons.
My PhD Thesis PDF file is HERE HERE HERE HERE
Summary
- 15+ years experience software development using C language with 15+ years in low-level development using GNUU GCC and IDE (regular & Eclipse-based) to bring up prototypes and intensive regression HW test; and bare-metal OS using timer and peripheral interrupts;
- 12+ years experience developing new products, all the way from the very first job after graduation, from concepts/customer requirements to prototypes/products with HW/FPGA/FW architects for cost effective designs; including 3+ years in small team of advanced group in startup NextLevel Communications;
- 25+ years with problem-solving skill since middle school. Actually, all come down to a single point : to solve a problem which could be anything : HW, FPGA, FW, SW, algorithm, ...;
- 10+ successful and well-received shipping products in telecommunications, network server, wireless phone; including, but not limited to, pioneer Voice-Over-IP, PTP IEEE-1588; where I covered many phases, more or less, from product requirements, HW/FPGA/FW development, test, production, manufacturing, . . . to make sure quality product with short time to market
- 6+ years experience in Linux device drivers and kernel developing with BSP and U-boot development to support boot load Linux kernel (Power-PC, ARM).
- 6+ years experience in RTOS base on Linux (x86, Power-PC, ARM), VxWorks (Net ARM), Free RTOS (Freescale), TI BIOS (ARM)
- 12+ years experience in HW with Atmel & TI ARM, Freescale Power-PC, Microchip PIC; ADC, DAC, Real-time clock
- 12+ years experience in FPGA (Altera APEX, Xilinx Virtex) : Ethernet MAC, AVR-like MCU
- 12+ years experience in flash/EEPROM programming (parallel and serial SPI, I2C)
- 12+ years experience in developing peripheral communications SPI, I2C, UART
- 3+ years experience in developing USB, both bulk mode for mass storage (high speed 120 Mbps) and 100x faster than serial CDC mode (baudrate 1,2 Kbps)
- 3+ years experience software development using C++, Java
- 3+ years experience software development using C# language, including graphic Zed Graph
- 9+ years experience in Ethernet G/MII and TCP/IP development for network Time Server NTP, PTP IEEE-1588 (oscillator discipline using PID) , including IEEE-1588 (v1 & 2) in FPGA. Implementation of Ethernet MAC in FPGA with UDP (NTP/PTP), ARP, ICMP (Ping), CRC for physical layer
- 9+ years experience in GPS development with NMEA or proprietary UBX from UBLOX, including GPS-Aid for quick lock
- 9+ years experience in Digital Filter Designs and Digital Signal Processing, Kalman Filter, PLL
- 3+ years experience in DSP in 3+ years experience in implementing SONET-like frame in FPGA (start-up Next Level Communications)
- 3+ years experience in Web Programming : HTML, JavaScript, PHP, Smarty, Wiki, database (MySQL, SQLite)
- 15+ years experience in script languages : bash, PERL; 3+ years in TCL, Python
- 15+ years experience in designing and implementing PID controllers for all control projects in Control Lab, oscillator discipline, 4+ years in Fuzzy Control
- 15+ years experience in Matlab for Control & DSP, 5+ years in Artificial Intelligence (AI)
- One year fresh experience in Android App using ASDK for Android and Tablet, basic knowledge on embedded Android and driver
- One year fresh experience in Touch-Screen for bare-metal OS using Capacitive-Touch I2C controller GSL1680 and TFT LCD SPI controller RA8875 and Atmel ATMega-2560
- One year fresh experience in BlueTooth using Microchip PIC32 with Bluetooth CSR USB adapter
Technical Expertise/Resume
I have a wide, extensive and hand-on 12+ years of experience in all main technical areas : HW (hardware) - FPGA - FW (firmware, embedded SW on target device) - SW (software, desktop host SW on PC for User Interface) and extensive problem-solving skill. As FW sits between HW and SW, my extensive HW & SW experiences could propose features in both hardware and software to improve the design. My excellent problem-solving skill could investigate and drive to resolution any problems that arise including coordinating and debugging with vendor application/design engineers.
I've been quite comfortable in succeeding right where others failed even they got 10 times years of experience, but the secret is I got far better problem-solving skill. In the last 5 years in middle and high school, dI've been blessed with special talent in focusing and constantly tracking on what I was doing, quite aware exactly what doing, I got absolutely no sigle error at allwith absolute full mark 100% in every math[especiallly in all algebra problems inhigh schoo l year[grade 10-12] (test, quiz, exam, ...) and also in national-wide exam to graduate high schoolwith Baccalaureat II-Math gradded Distinction in VietNam. Since I made absolutely no single mistake at all in all myalgebra problems] when I was high school student[grade 10-12], I rarely made mistake since I've been engineer. HW mistake results in board turn starting with Rev A, B, ... all my HW boards were stable at Rev D, E, F; compared to existing standard at Rev P, Q, R. I spent far less time in SW development with solid code full of rich features compared to existing standard. In addition. It took me hours to days to fix SW bugs or to modify on request, compared to existing standard in weeks to months, sometime failed even after few months.
My unique strength is to work across disciplines cover in several areas HW, FPGA and SW, including embeddded Linux and web design, to bring up highly complicated boards very efficiently with low-level SW skill, including Linux drivers, to make right decision on HW/FW/SW solution for a given situation where HW one is the least flexible, but the fastest response, and SW one is on the other extreme, while FW/FPGA is some where in between.
Nobody knows everything, the key to success is how to learn new thing efficiently. I enjoy and eager to learn new technolgy, to get the basic and apply to the real world very quick and productively.
Nothing impossible, the key to success is the cost of development, in terms of time and money.
I've been able to complete the whole project in fractrion cost compared to my working peers.
Using divide-conquer approach, a project could be partition into HW/FW/SW implementation to get the best performance at the least cost, and try to get small steps done one at a time for project completion.
My working philosophies are
- the
simplest is the best the hardest to achieve on basis of my math
experience in gigh school years, hence my SW code is far smaller
code size vs to my peers Consequencely my code had lesss likely
hood of bug easier to debug upgrade/maintain with a lot less upgrade
time vs my peer in order of magmnitude
- nothing is perfect, everything has its own plus and minus, there must be some kind of trade-off, so not to try in getting something at all cost
- a project is done at high cost is a failure, not a success
- everything is possible, impossible only in terms of cost
I keeps learning new fields at my best. Below are what I'm able to do it successfully in the real world.
- Time & Frequency Measurement : GPS, TimeCode(Have Quick, IRIB, NASA)
- Communications and Network Protocols : SPI, I2C, PCI, SONET, UTOPIA, HDLC, TCP/IP, Ethernet, PTP IEEE-1588, SNMP
- Digital Filter Designs and Digital Signal Processing, Kalman Filtering, PLL
- Advanced Numerical Methods and Optimization
- Fuzzy Control Theory, Artificial Intelligence and Neural Network Pattern Recognition
- Hardware Engineering :
- Analog and Digital Electronic Design, Concept and P-CAD Schematic, Verilog HDL, VHDL, Abel
- Verilog HDL FPGA (Altera APEX, Xilinx Virtex), CPLD (Lattice, Xilinx)
- DSP for Xilinx FPGA (Virtex-4, Spartan-6)
- Micro-Controller :
- Micro-Processor : NetARM, MC68331, PowerPC (MPC8272, MPC8313, MPC8308), TI ARM9(OMAP-L138, AM1808), Atmel ARM9(AT91SAM9261S), SamSung ARM11(6410)
- Single Board Computer : Kontron X-Board, ComputerLab
- Firmware Engineering [Embedded Systemmare-metal &Linuxand Driver development]
- Touch-Screen : Capacitive-Touch Panel, TFT LCD
- EEPROM, Flash programming
- Boot loader U-Boot (MPC8272, MPC8313-8308, TI ARM9, Atmel ARM9, SamSung ARM11)
- Linux driver programming (x86 PCI-FPGA, PPC SPI, I2C, PCI)
- Embedded Linux:
- X86 Embedded Linux: Blue Cat (x86), Monta Vista (Kontron SBC x861)
- PowerPC Embedded Linux: Monta Vista (PowerPC MPC8272), FreeScale LTIB Linux (MPC8313E)
- ARM Embedded Linux: TI ARM9 (AM1808, OMAP-L138), Atmel ARM9 (AT91SAM9261S), SamSung ARM11 (6410)
- Embedded uC-Linux: M68K, Micro-Blaze(PetaLogic uClinux)
- Embedded Micro-Controller: Motorola (MC68331, MPC860), Intel (80196), Atmel ARM (SAM7, SAM3)
- C Compiler
- VxWork: PowerPC MPC860, NetARM
- Code Warrior: HC12
- GNU GCC Code Sourcery, WinARM, IAR : ARM
- Code Composer Studio: OMAP-L138
- Analog Device Visual DSP++: Tiger-Sharc
- WinAVR, AVR Studio: AVR
- MPLAB: MicroChip PIC
- Debug tools: BDM, Lauterbach, BDI3000/PEEDI (Enbedded Linux), Analog Device DSP
- Design Tools :
- Schematics: Concept HDL, PCAD, Protel, OrCAD, PADS
- Verilog Simulator: Cadence, VirSim, Model-Sim (Mentor Graphics), Active HDL (ALDEC)
- FPGA Compiler: FPGA Express (Synopsys), ISE (Xilinx), MaxPlus II & Quartus II (Altera), Synplify (Synplicity), Exemplar Logic (Leonardo Spectrum)
- Software Engineering and Computer Simulation:
- Assembly Languages : Intel, Motorola
- Scripting Languages : PERL, Python, TCL, DOS Bat, Linux Shell (Bash, AWK, Sed), MatLab, Python
- Functional Programming Languages : Fortran, Pascal, C
- Object-Oriented Programming Languages : Eiffel, Java, C++, C#
- UNIX / LINUX, Windows
- Web Programming : HTML, JavaScript, PHP, Smarty, database (MySQL, SQLite)I myself built my own personal page unitedthc.com
- Graphics Programming [Java, C# using ZedGraph]
- JTAG Programming
- Real-Time File-System for Data Streaming
Raw Hard-Drive Access in C# on PC - Communication Programming:
- Serial Programming : C# on host
- USB Programming
- Host PC : LibUSB USB Stack in C#
- Device USB Stack: MicroChip (PIC18, PIC32), Atmel (SAM3S), TI (Stellaris, AM1808, OMAP-L138)
- Network Socket Programming : C, C#, Java, Perl