CV of Frederic Dang Ngoc
| Currently in Toronto, ON, Canada. | |
| I am a French Citizen and I have a Canadian Permanent Resident Card. |
PDF version and WORD version of my resume.
Interests
Search systems, peer-to-peer, mobile, games, web applications.
Experience
Senior Software Engineer, yoonew (October 2008 - Present)
Toronto, ON, Canada
Tools and Languages: Eclipse 3.4, Apache Tomcat 6, Java 6, Spring Framework, Flex Chart, jQuery, DWR, Maven, Hibernate, TestNG, TagSoup, JSON, Apache HttpClient 4, Regular expression, Apache Tiles 2, Subversion, MS SQL Server 2005, GWT 1.7, SmartGwt 1.2, EC2
Design and development of an application to monitor ticket prices on other websites:
- Implementation of crawlers to fetch listings of tickets sold on major ticket brokers. Development of the back-end using Apache HttpClient 4, TagSoup, JSON parser, regular expressions, web services, Spring Framework and Hibernate
- Development of a web interface using Spring MVC, JSTL, Apache Tiles 2, jQuery and DWR(Ajax) to manage crawls, events and browse fetched tickets.
- Develop process to remove ticket duplicates, to adjust prices, compute statistics and to identify tickets
- Unit Tests using TestNG and SureFire.
- Use JProfiler to spot bottlenecks and optimize the code accordingly
Design and implementation of a point of sale(POS) system using GWT, SmartGWT, Hibernate and SQL Server 2005
Senior Software Engineer, yoonew (April 2007 - September 2008)
New York, NY, US
Tools and Languages: Eclipse 3.2, Apache Tomcat 6, Java, Python, MySQL, Oracle Coherence, Grinder, JUnit, Flex 2, jQuery, DWR, Live Cycle Data Service, Lightstreamer, JMS, log4j, ANT, Maven, Hibernate, JProfiler, TestNG, GigaSpaces XAP
Objective:
- Development of a market exchange platform for sport tickets using a distributed/replicated architecture. The platform runs on a cluster of servers and uses Apache Tomcat 6, MySQL Cluster, Oracle Coherence and JBoss Messaging.
The project is developed in a team of 7 persons
Duties:
Lead Development of the front-end:
- Design and conception of the real time market exchange using DHTML, AJAX. Prices and orderbooks are updated in real time every second using Lightstreamer (Comet Push Server). The site was developed using the Spring MVC Framework, jQuery and DWR.
- Development of a flash chart application to display charts of the product price history. This application implement scrolling and real-time update of the prices through Lightstreamer.
- Design and development of the Flex interface of the market exchange (Yoonew Direct) using Flex 2 SDK and Live Cycle Data Service.
- Design and development of a mobile version of the website using XHTML Profile.
- Developed a java mobile application prototype using J2ME Polish.
- Optimization of the web content by compressing HTML, Javascript using open source tools.
Development of the back-end:
- Development of Price index managements and historical values storage
- Development of bridge classes to communicate to the lightstreamer push server using the lightstreamer protocol
- Development of alert management
- Configuration of Live Cycle Data Service and implementation of services to communicate between the Flex 2 client and the market exchange.
- Wrote methods to process credit card (SALE, AUTH, VOID, CAPTURE)
Development of application/tools to administrate the market exchange:
- Conception, design and development of an administration console application that uses Flex2, Adobe Live Cycle Data Service (formerly Flex Data Service), and JMS.
- Exposed some java methods of the market exchange through JMX
Test developments:
- Design and development of load stress tests to simulate several users placing orders on the market exchange from a browser. This allow to find several bugs that would be difficult to find otherwise.
- Wrote several unit tests using JUnit and TestNG
- Fix and optimize code using JProfiler
Deployment of the application:
- Wrote the build files (ant) to compile, package and deploy the project.
- Developments of python scripts to automate the data creation in the database, generate JavaScript files and check consistency of the node in the cluster.
- Configuration of tomcat (HTTPS, filters, redirection, ..)
Misc
- Wrote some GigaSpaces Services for the next version of the market exchange (price index management, lightstreamer, alerts)
- Installation and configuration of Atlassian Crucible(code repository tracking/monitoring) and FishEyes(peer code review)
- Wrote technical documentation and technology comparison
- Took part in the database design (database schema and hibernate configuration files)
Contractor at Maralis (February 2007 – April 2007)
Tools and Languages: Symfony, PHP, jQuery, JavaScript, AJAX, MySQL
Development of a registration and administration panel using the Symfony framework and the jQuery library.
IT Consultant, Bloodhound Search Technologies Inc (August 2006 - February 2007)
Sugar Land, Texas, US (tele-commuting from Vancouver, BC, Canada)
Topics: News Search Engine, Personalized Portal
Tools and Languages: PHP, JavaScript, DHTML, AJAX, Python, Turbogears, SQLObject, Kid Template, Lucene, RSS, MySQL, JSON, a bit of Perl
- Design of an editor in PHP/MySQL and javascript(DHTML, AJAX) to allow users to define the profile of their portal
- Development of animated banners in Javascript mixing news and ads
- Development of ad tracking system
- Developing a new personalised portal system using Python, Turbogears, Lucene, RSS and MySQL
R&D Engineer, PhD, France Telecom R&D (October 2002 – February 2006)
Issy-Les-Moulineaux, France
Topics: Peer-to-Peer, Search Engine
Tools and Languages : Python, C (GLIB), MySQL
- Design of a personalized search engine decentralised on user’s computer (P2P architecture). Each computer acts as a search engine on its local data. Collaborative searches are done using self learning algorithms to query the most relevant computers and rank results according to the requester profile.
- Implementation of a simulator to evaluate the efficiency of the system to provide personalized and relevant results to its users. The simulator was developed using the C language and the GLIB library (~8000 lines of code).
- Development of a prototype implementing desktop search, collaborative search and indexation of visited web pages. The program was developed using the Python language (~10000 lines of code), the Cheetah Template engine and the MySQL DBMS. Homepage: http://maay.netofpeers.net/
Master Thesis, INRIA (April 2002 – September 2002)
Rocquencourt, France
Topics: XML, Web Services, Type Checking
Tools and Languages: Java, XML (Oracle XDK), Web Services, WSDL
- Conception of an XML Schema extension for type checking dynamic XML documents with embedded web service calls.
- Implementation of an extended XML Schema parser using the Java language and Oracle XML Developer’s Kit.
Developer, Verte Ma Valley, Inc (July 2001 – September 2001)
Paris, France
Topics: Web, Survey
Tools and Languages: PHP (GD library), C++, Informix
- Development of a survey application including user and administrator side. This application was developed using the PHP language, the GD graphical library and Informix DBMS.
- Upgrade and improvement of an automatic search engine submitter written in C++.
Intern, PRiSM laboratory (May 2001 – June 2001)
Versailles, France
Topics: Compilation, Processor
Tools and Languages: GCC
- Studies and preliminary development of GNU C compiler backend to generate assembler code for the Itanium processor (TM-1300).
Developer, SNAZ, Inc (July 2000 – September 2000)
New York, USA and London, UK
Topics: e-commerce, m-commerce, B2B, Web
Tools and Languages: PHP, MySQL, PostgreSQL, WebMethods, WML
- Implementation of a documentation server in PHP.
- Development of a shared bookmark with web and WAP interface written in PHP.
- Creation of an e-commerce application with WAP interface using PHP, PostgreSQL and XML.
- Use of WebMethods to analyse and fetch products information from merchant sites.
Developer, Formitel, Inc (July 1999 – August 1999)
Paris, France
Topics: Web, Survey
Tools and Languages: Java, JDBC, Swing, Servlet
- Development of a survey application including client and server side. The application was written in Java using servlet, swing and JDBC driver library.
Other significant projects
- Implementation of a Java application to play animated scenes (ala Macromedia Flash) described in a XML language that we had specified.
- Development of an application to generate a C program (using OpenGL Library) from a 3D scene written in POV Ray language. The application was developed in two versions: in C using Lex & Yacc parser and in Java using ANTLR parser.
- Conception of a real-time network multi-player game in Java.
- Implementation of a Napster client in C using the curses library
- Development of a RPG game (ala Final Fantasy 4) and its editor in C
- Development of several Java game applets
- Design of a full CD with educational games in Visual Basic and a 3D animation in 3D studio
- Conception of a library to manage computations of huge numbers in C
Education
PhD thesis in CS. University of Paris-Sud, Orsay, 2002-2006
Mention very good.
The thesis is entitled "Decentralised and personalised search engine" (in french) and had been done in the Research Laboratory (LRI) at the University of Paris-Sud and France Telecom R&D Division under the supervision of Pierre Fraigniaud and Joaquín Keller.
Coursework: summer school on distributed algorithms, seminars on peer to peer systems, seminars on huge network interactions
Results in the publication of 2 articles in international conferences (PDPTA, IEEE SAINT).
Awarded at France Telecom as one of the Most Remarkable PhD Thesis of the Year.
Master Degree in CS. University of Pierre and Marie Curie, Paris, 2001-2002
Average score of 15.5 of 20
Coursework: Agent and Framework ; Distributed Databases ; Specification and Validation of Concurrent Applications ; Network Architectures and Protocols ; Distributed System Architectures ; Parallel Programming ; XML
Bachelor Degree in CS. University of Versailles, Versailles, 1999 - 2001
Average score of 16.3 of 20 (ranked first)
Coursework: Processor Architecture ; Design of Operating System ; Graph Theory ;
Applied Mathematics ; Simulation ; Automata and Language Theory ; Cryptography ;
Network Architecture ; Relational Databases ; Compilation ; Java and Multimedia
Programming.
Skills
- Programming Language:
- Java: Java 6, Apache Tomcat 6, JSTL, Spring Framework, GWT(SmartGWT), Eclipse, DWR 2, Lucene, ant, log4j, Hibernate, J2ME, J2ME Polish, Swing, Xerces, JMX, RMI
- Build Automation: Ant, Maven
- Testing: JUnit, TestNG, Grinder 3, JSUnit
- Profiler: JProfiler, Hat
- Python: Python 2.4, Turbogears, PyLucene
- C: GLIB
- Misc: Visual Basic, Shell Script, Pascal
- Web Technologies:
- Languages: XHTML, XHTML MP, CSS, RSS, WML
- Javascript: jQuery, MochiKit, Lightstreamer, AJAX, JSON
- PHP: PHP5, GD, Symfony framework, Propel, Smarty
- Flash: Flex 2 (MXML, AS3), Live Cycle Data Service, Flex Chart Library
- Parser: Beautiful Soup, Tag Soup
- Database: MySQL, MySQL Cluster, SQL Server 2005, SQLite
- Tools Administration:
- Linux: Ubuntu, Debian, Fedora, Gentoo
- Apache, Samba, MySQL, IPtables
- Misc:
- Version Control System: CVS, SVN
- Bug Tracker: JIRA, Redmine
- Compilation: Lex & Yacc, ANTLR
- 3D Library: OpenGL
- Drawing tools: Gimp
Selected Publications
- F. Dang Ngoc, J. Keller, G. Simon. MAAY: A decentralized personalized search engine. Proceedings of the IEEE/IPJS International Symposium on Applications and the Internet (SAINT). January 2006. pdf
- F. Dang Ngoc, J. Keller, D. Stern. MAAY: A Self-Adaptive Peer Network for Efficient Document Search. Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA). June 2003. pdf
- T. Milo, S. Abiteboul, B. Amann, O. Benjelloun, F. Dang Ngoc. Exchanging Intentional XML Data. ACM Transactions on Database Systems (TODS), Volume 30, March 2005.
- T. Milo, S. Abiteboul, B. Amann, O. Benjelloun, F. Dang Ngoc. Exchanging Intensional XML Data. Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data. June 2003. pdf
- S. Abiteboul, B. Amann, J. Baumgarten, O. Benjelloun, F. Dang Ngoc, T. Milo. Schema-Driven Customization of Web Services. Proceedings of 29th International Conference on Very Large Data Bases (VLDB). September 2003. pdf
Miscellaneous
- Language:
- French: Mother Tongue
- English: Advanced (TOEIC Test score 935/990)
- German, Chinese: Basics
- Sports:
- Rollerblade
- Jogging
- Aikido, Karate
- Hobbies:
- Reading (SF, thrillers, fantasy)
I stayed six month at the Duveneck elementary school at Palo Alto, California in 1985.


