Alberto Demichelis Home Page
     home   -   resume   -   projects   -   links   -   contact   -  

Personal Info
Name: Alberto Demichelis
Address: Singapore, 7500A Beach Road
Birthday: 8 Nov 1976 Turin(Italy)
Email: alberto[at NOSPAM 123]demichelis[at NOSPAM 123]net
Nationality: Italian
Marital status: Single
Languages: Italian,English
Education:  Nothing related to computer programming, just the obligatory Italian school path. I started programming in 1984, all my knowledge related to programming and designing software comes from my personal interests and professional experience.
Civil Service:  1996/97, 12 months in the 183 RGT Airborne(rank corporal).
Hobbies:  Electric guitar, skateboarding, snowboarding, on-line gaming (Quake3), programming 3D Graphics-audio-compilers-compression. As most of the italians I watch Japanese anime since I gained consciousness.
Home Page:

Programming Languages:  C/C++, C# & ASP.NET, Java, MSIL, ASM x86, Jscript, VB, Pascal, UML, SDL, Direct3D HLSL, XML, XSLT, DOCBOOK, HTML, LUA (deep knowledge of the lua virtual machine), Squirrel(my own language).
Development Tools:  MS Visual C++(from 4.x to 2005), GCC(Win & UNIX), MASM, XML Spy, Borland C++, eclipse, MS SQL Server, MS Internet Information Server(IIS), Visual Source Safe, Visual Basic, NuMega SoftICE, WinDASM, Telelogic SDT, I-Logix Rhapsody, Rational Rose, MS Visual Modeler, MSOffice, Tomcat(JSP/Servlet server)
Libreries and Frameworks:  .NET framework(also IL etc..), MFC, ATL, COM+ & DCOM, OLEDB, ADO, wxWindows, DirectX, OpenGL, MSXML parser, MTS, JNI,eclipse SDK, WinSock, BSDsockets(UNIX), CAPI(Common ISDN Api), .
Operating Systems:  excellent knowledge of the Win32 API and MS Windows services programming (threading , process handling, IO Completion Ports etc...). I've good knowledge of all Microsoft systems (also Windows Mobile/CE) and basic UNIX architecture.
Protocols:  IP,Ethernet,ARP, TCP/IP, UDP/IP, PPP, H.320, H.323, ISDN, Q.931 ,SOAP. I've designed few protocols myself(for Far Cry and for an asian MMORPG)

Job Experience

  • Professional experience as employee

  • September 2014-present, CTO/Founder at QN Software Pte Ltd(Singapore).

    Working on next-gen mobile games.

    March 2007-August 2014, Lead Programmer/Technical Director at Zealot Digital, subsidiary of Sotf-World International born as a join venture between Nerv and SW(Taiwan/Singapore).

    I'm working on a massive multiplayer online games and related technology, based on the work I previously done as Nerv Studios. I'm responsible for all technical decisions and I directly supervise the engine, games, company production aspects, deployment etc...

    May 2004-March 2007, Lead Programmer/Technical Director at Nerv Studios(Taiwan/Singapore).

    I worked on a massive multiplayer online game. I've designed and implemented from the ground up a framework/toolchain focused on MMOG development, as well as a good share of the game implementation. I was responsible for all technical decision and I directly supervised the engine, game, company production aspects, deployment etc...

    Nov 2003-May 2004, System Architect at KPB Tech(Singapore/HK). I've terminated my employment prematurely due to the fact that the company hasn't payed me regularly during my employment period(with no warning or acceptable reason). []

    I've worked on the development of a visualization engine(3D walk-through kind of stuff).

    -I've contributed on several aspects of the design and refactoring.
    -Developed an advanced GUI framework based on the HW accelerated API.
    -Developed an apartment threaded messaging system.
    -Developed a remote debugger for 'squirrel' a scripting language I'm developing and that is utilized by the engine. The debugger has been developed in Java as IBM eclipse plug-in.
    -Developed the front-end for an HLSL compiler.
    -Developed an expression evaluator and virtual machine for the shader system.
    -Setup a documentation toolchain based on DOCBOOK/XSLT templates.

    2001-July 2003, System Architect/Senior Programmer at Crytek sudios G.m.b.H (Germany).[]

    I've been hired as Senior Network Programmer and promoted to System Architect after a couple of months. I've always been assigned to the Far Cry/CRYEngine project. I've been involved in most of the modules of the engine and aspects of the game.

    -Engine modularization
    -Network system, low level protocol and game code.
    -Script Integration/Interface(using LUA).I wrote a very high level C++ wrapper on top of the lua API to allow programmers that don't have experience with LUA to expose features to the script state and manipulate data. I've also applied some customization to the LUA VM to optimize the memory bandwidth and usage.
    -Materials system
    -Game persistence design(save/load)
    -Game code HUD, special effects and weapons.
    -MODs SDK.
    -Documentation organization and packaging for engine licensing.
    -I worked on several minor tasks on sound, input & entity systems.
    -I worked on some back-end applications, like the automated build system for generating MasterCDs of the game.
    -I wrote an Internet simulator that transparently introduce lag, packet loss, jittering between 2 sub-networks(implemented as software switch at ethernet level)
    -I'v also tried to run a UML class for the other programmers

    January 1998-2001, senior programmer/consultant at Eikon Informatica S.n.c. where I worked as counsultant for Telecom Italia Lab(Telecom Italia Research Center).

    SISMA System.Design and implementation a Web based solution for the entire Italian digital network management. [C/C++,CAPI,ATL,ASP,COM+,XML,XSLT,SQL,IIS].

    TREVI System extension for scheduled "IP routers" testing and management.. completely Web/COM+ based. [C/C++,ATL,ASP,COM,XML,XSLT,SQL,IIS].

    TREVI System. Design and implementation of a testing server for ISDN applications. Implemented as COM+ NT service and completely plug-in driven. Interfaced via ASP/XML site with Browsers and automatic modules. [C/C++,ATL,COM,ASP,XML,XSLT,IIS].

    Complete implementation of the H.320 protocol stack. Design and implementation of a server for videoconference clients testing(ISDN) [C/C++,ATL,I-LogixRhapsody,UML,ASM x86].

    ActiveX Object for IP servers pinging [C/C++,ATL].

    Uploading protocol for "ISDN Network terminator's Firmware" based on top of ISDN protocol stack(currently used to manage entire italian ISDN network) [C/C++].

    packet sniffer for Ethernet networks monitoring with both WinNT and Win9x support[C/C++,MFC,DDK]

    Complete implementation of the H.323 protocol stack. Videoconference client over IP with GateKeeper e ISDN Gateway support [C/C++,MFC,ASN.1,SDL,WSA Sockets].

    Demon/Server for a "thermodynamic simulator" remote management [solaris/SPARC ,C,BSD Sockets].

    Development of a 2D CAD application for "Telephonic commutation rooms design" [WinNT ,C/C++,MFC,COM,WSA Sockets].

    January 1996-1997, during my service in the army I developed several office-automation applications.

  • Professional experience as free-lance

  • 2000 
    ActiveX control for 3D models visualization as my own product. Based on OpenGL, is currently used in a CAD application by an Italian company in Turin.

    I designed the back-end of a couple of Italian companies web site.

  • Personal research projects

  • 1998 
    "Plugger+" a freeware implementation of MPEG I layer 3 codec. It was fairly popular at the time, I dropped the development because of the infinite amount of legal problems with the mp3 format.

    "Squirrel" Design and implementation of a dynamically typed programming language (same category of LUA & Python) []

    "T-Rex" a very compact and portable regular expression library []

    I'm a 360 degrees developer, my experience is not limited to a cetain branch of programming. I have professional experience in networking, 3D graphics, multimedia(audio,video), web development, databases, compilers , GUI, embedded software, large scale distributed systems and so on. I believe I'm able to solve every kind of problem, using elgant and scalable solutions. I can work independently and I have excellent interpersonal skills. I've got a good knowledge of software development processes, scheduling and team organization. I also have experience in estimating costs/human resources and dealing with clients.