Fabrice Colin
194 Kim Keat Avenue, #08-392
Singapore 310194
Republic Of Singapore
Tel: +65 98 23 29 74
Email: fabrice.colin@gmail.com
Nationality : French
Interests
Object oriented design, Unix/Linux programming, relational databases, network programming, Unix/Windows porting, information retrieval, user interfaces
Education
- 1998 : Degree in Engineering, Computer Science, Lille University Engineering School, France.
This is equivalent to a Master of Science degre (five years of university studies).
I did my final year at the University of Hertfordshire as part of an international exchange.
- 1995 : Diploma in Technology, Telecommunications and Networks, Nancy University, France.
- 1993 : Baccalauréat C in Mathematics and Physics.
A French high-school diploma, equivalent to the British GCSE.
Experience
Since July 2008 : Sybase 365, Singapore
Team lead, billing development.
C, PL/SQL on Solaris - Geneva 5.2, Oracle 9i
Lead the team responsible for extending the system that bills Sybase 365's customers world-wide.
Ensure development and implementation processes are SoX compliant.
Maintain process documentation, liaise with internal and external auditors.
Assist billing operation team, identify and automate common tasks.
Interface with other financial systems.
Manage team members.
April 2008 to June 2008 : Global Sign.In, Singapore
Senior software engineer, email marketing platform.
C++ with STL on Linux - MySQL, Apache and FastCGI
Architect and implement givemail, an email marketing platform :
- Full SMTP with Yahoo! DomainKeys support.
- Timely delivery of large number of emails.
- Per recipient personalization.
- MX server throttling.
- TCP connection reuse.
- Transactional email support.
- Database spooling.
- Web Service API with HMAC authentication.
May 2005 to April 2008 : Asgent Technology, Singapore
Team leader/Senior software engineer, SIP Router appliance.
C, C++ with STL, Python on embedded Linux
Drive the development of the SIP server and related programs :
- Call-stateful session management.
- Optimal media negotiation.
- Bandwidth-based session admission control.
- Topology hiding.
- Far-end NAT detection, keep-alive and traversal.
- Media path optimization.
- Adapt to constraints of embedded environment.
Resolve messaging and media interoperability issues between SIP UAs (video phones, mobile phones) and PBXs from various vendors.
Liaise with Japan-based customer support team, track all technical issues.
Modify operating system and kernel for new platforms, produce builds.
Capture requirements and drive system-wide architectural decisions.
Manage team members, set project priorities.
March 2002 to May 2005 : Envisional, Cambridge, United Kingdom
Senior software engineer, Envisional brand intelligence and protection technology.
C++ with STL, Python on Linux and Solaris, C++ and MFC on Windows XP - MySQL, Apache and FastCGI
Design and implement a sub-system for eBay auctions monitoring, on top of the eBay XML API.
Design and implement a seeding mechanism to handle a large number of search terms.
Extend the document indexing system :
- Research and implement term weighting algorithms (BM25).
- Improve performance of indexing and searches with in-memory caches.
- Introduce a TCP/IP based document management protocol.
Port the software to Windows NT :
- Identify and fix issues related to differences in compilers, STL and third party libraries.
- Write a Unix compatibility layer using Win32 calls.
Develop a Windows desktop agent that retrieves results from the system through a REST Web Service.
Implement a PKI-based digital signing scheme to ensure the integrity of results produced by the online music piracy detection system
April 2000 to February 2002 : Smartlogik
(previously known as Muscat), Cambridge, United Kingdom
Team leader for the Yellow Pages UK search engine
September 2000 to March 2001
C++ with STL, Perl on Solaris - Oracle 8i
- Index and allow searching of customer adverts.
- Adapt product for US version. Modify search back-end. Ensure data extraction and indexing scripts can cope with larger data set (10 times bigger). Ensure search performance doesn't degrade. Workaround operating system's 2Gb file size limit.
- Design and start implementing the FilmFinder movie search system.
Software engineer, Muscat Discovery search engine
April 2000 to September 2000, and April 2001 to February 2002
Perl, C, HTML on Solaris, Linux and Windows NT
EJB on Solaris, COM+ on Windows NT
- Liaise with customers to develop document indexing and search applications.
- Port EJB components to COM+, core code from Java to C++ on all supported platforms.
- Maintain and develop some in-house APIs on which the components and the back end servers rely.
- Add support for specific sources, eg XML news feeds.
- Build a WAP/WHTML front-end.
August 1998 to March 2000 : ARC Informatique, Hitchin, United Kingdom
Software engineer, PCVUE32 Supervisory Control and Data Acquisition.
C++, MFC, TAPI on Windows NT
Develop a users' priviledges configuration tool and login manager.
Design a TAPI based communications manager for communication between remote installations.
Implement customer-specific GUIs for industrial control.
Free Software projects
Since 2005 : Pinot, a desktop search system
Architect and main developer
Pinot is a metasearch and personal desktop search program. It consist of a daemon that crawls, indexes and monitors documents for changes, and a GTK-based user interface that enables to search the user's documents collection or the Web, and display and analyze the results.
It features advanced full text and boolean queries, Chinese, Japanese and Korean support, language detection, an embedded SQL database for ranking history, documents browsing and metadata editing, on-the-fly summarization.
Source code is covered by the GNU General Public License, and is available on the project's site.
Languages
- English : fluent (7 years living in the UK; Certificate of Proficiency in English, University of Cambridge)
- 中文 Mandarin Chinese : beginner level (attending evening classes since January 2007)
- French : native speaker
- German : beginner level
Computer skills
- C, C++ & STL, Java
- Python, Bash shell scripting
- Development tools : GNU toolchain, Visual C++ .NET
- Version control systems : Subversion, CVS, Visual SourceSafe
- Relational databases : MySQL, SQLite, Oracle
- Web servers : Apache 2.x
- CGI/FastCGI programming
- Internet protocols and standards : HTTP, SOAP, XML/RPC, SIP
- Distributed components : EJB 1.1, COM+
- XML generation, validation and parsing
- Multi-threaded programming : pthreads
- Network programming : BSD sockets
- Parsers generator : boost Spirit, lex & yacc
- Security and authentication : RSA, DSA, HMAC
- Unix : Linux, embedded Linux, Solaris
- X-Window toolkits : GTK and GTKmm
- Microsoft Windows : Win32, MFC, Telephony API
- Network trouble-shooting : Wireshark, tcpdump
- Agile software development methods, Design Patterns, refactoring, UML