CURRICULUM VITAE


Personal information    Education    Work experience    References    Language proficiency    Conscription    Competence    Hobbies


Personal information

- Name: Ilja Antonio Mäki
- Home town: Espoo
- Telephone: +358-40-594 7606
- Email: (the address is an image in order to prevent spam bots from sending me junk mail. Please fix the address if you click this link)
- Internet: http://www.illisoft.com/
- Year of birth: 1975
- Driving license: ABEC


Education

- Comprehensive school in Alastaro, finished on 31.5.1991. Mean of all grades in the certificate was 8.6 (grading system 4 = worst, 10 = best.) This does not include the grade I acquired from the course of type writing (separate certificate) which I passed with the grade 10 as an extra subject in addition to the normal syllabus of the comprehensive school.
- Loimaa upper secondary school, graduated 4.6.1994. Mean of all grades in the certificate 7.7 (grading system  4 = worst, 10 = best.) The general degree of higher school certificate is Magna Cum Laude Approbatur.
- Turku polytechnic school, Program of Telecommunications, Bachelor of Engineering  8.6.1999.

In Turku polytechnic school I took all programming courses offered at the time. Below is this part excerpted from my degree certificate

Course Extent/cr Grade
(1 = worst, 5 = best)
Course content/Notes
Programming 2,00 5 Basic course of C++ programming. As a dissertation I programmed a Yatzy dice game for PC in DOS based Borland Turbo C++ 3.0.
Java programming 3,00 5 Basic course of Java programming. As a dissertation I wrote a Game Of Life simulator for PC in JDK 1.1.5.
Operating Systems 2,00 4 Two-phased course. The first phase handled Assembly programming in DOS environment. The second phase handled C++ programming in Unix environment and its main topic was multithreading.
Fractals and Computer Graphics 1,00 5 Mathematics of fractals, graphical programming dissertation in C++.
*Advanced course in Assembler 1,50 3 Course that continued the subjects dealt in the first phase of the Operating Systems course (assembly programming). As a dissertation I programmed in MASM a utility program named Get.
Visual Basic programming 2,00 5 Programming in Visual Basic. As a dissertation I programmed a multi-player Tetris game that can be played over TCP/IP network.
Programming 1 3,00 5 C++ programming course of vocational studies, part 1.
Programming 2 3,00 5 C++ programming course of vocational studies, part 2.

* This course was not a part of the regular syllabus. The course was arranged on my initiation as a continuation for the first phase (Assembler programming) of the Operating Systems course. About ten persons of my class participated in this course.

During my education I also studied the Prolog programming language. In Prolog I wrote a dissertation program named Map. This studying was part of a larger entity (Topics in Data Technology, extent 12 cr) so there is no separate reference to this in my degree certificate.

The education also contained 12 months of work placement. Most of the working I made for a company named Winbase Sivuntekijät Oy in Turku (see Work experience). I made my engineering project for Winbase Sivuntekijät Oy, too (its extent was 12 cr.) The project was named Automated Production Of Advertisement Catalogues. During the project I studied thoroughly the DDE and ODBC technologies.

In the workers' institute of Espoo I have participated in the following courses:
- Starting up and running a company, 20.9.2005 - 15.11.2005 total of 27 lessons.
- Basic course of accounting, 11.2.2006 - 12.2.2006 total of 16 lessons.
- Advanced course of accounting, 8.4.2006 - 9.4.2006 total of 16 lessons.


Work experience

Employer Duration Assignments
Winbase Sivuntekijät Oy 2.5.1998 - 30.6.1999, 1.9.1998 - 30.4.1999 I worked part-time during my studies about 2 days a week Application development in Windows environment using C++ and Access Basic tools
Mariachi Oy, named PartnerTech Åbo Oy since 1.9.2005 1.8.1999 - 30.4.2006 1) Designing, coding, testing and documentation of embedded and Windows software. In two Windows software projects I was the project leader.
Hybrid Graphics, Ltd 2) trainee 4.11.2002 - 28.2.2003 The design, implementation and testing of a SW project, 3D graphics programming, optimisation, application of design patterns and cross-platform development on ARM-based mobile devices
Seven Networks International Oy 1.5.2006 - 10.10.2008 Planning, implementing and testing of Win32 and Windows Mobile based software components. Solving customers' technical support issues escalated from the Customer Support Department.

1) In the autumn 2001 I lectured my programmer colleagues in Mariachi on the basics of C++ and Windows programming.

2) In autumn 2002 I was accepted in Rovaniemi Polytechnic as a game programmer student. I compensated practically all those studies by being a trainee in Hybrid Graphics. I did all the training in my free time (during saved annual holidays, free time earned by working overtime etc.) while my permanent and full-time employment with Mariachi was valid all the time.


References

- Petri Tuura my team leader and the director of the Engineering department in Seven Networks International Oy
- Antti Makkonen project manager in Seven Networks International Oy
- Petri Väänänen the leader of the Java team in Seven Networks International Oy

Please contact me to get their contact information.

Language proficiency

- Finnish is my native language.
- I understand and speak English well. I read and write English even better.
- My skills in Swedish are moderate.
- I also studied German in the upper secondary school.


Conscription

I did the conscription in the brigade of Pori between the 9.7.1995 - 3.6.1996. I was trained to be a rifleman. My military rank is lowest ranking sergeant.


Competence

Please note that this is not a complete list of everything that I know and can do.

Scale:

- Very strong skills: Very wide and thorough expertise based on a very long-time experience
- Strong skills: Wide and thorough expertise and several years of experience
- Good skills: Good expertise and over 12 months of experience
- Moderate skills: Knowledge about the theory and over 12 months of experience
- Basic skills: Knowledge about the theory and at least one month of experience

Basic software:

- MS Word: I have used the versions 2.0, ’95, ’97, 2000 and XP. Very strong skills. Strong skills in programming Word VBA.
- MS Excel: I have used the versions ’95, ’97, 2000 and XP. Very strong skills. Strong skills in programming Excel VBA.
- MS PowerPoint and MS Outlook: Strong skills.

Platforms:

- Commodore "operating systems": Vic-20, C-64, C-128, Amiga 500. Strong skills.
- PC operating systems: DOS versions 6.x, Windows versions 3.x, 9x, NT, 2k, XP, ME. Very strong skills.
- Embedded systems: Programming experience since 1999 with multiple processor specific C compilers. Good skills.
- Pocket PC/Windows CE: Programming experience since 2002. Strong skills.

Programming languages and tools:

- Basic: Programming experience since 1982 (Vic 20, Commodore 128, Amiga 500, QBasic and Turbo Basic for PC). Very strong skills.
- C++: Used as the main programming language since 1996. Very strong skills.
- C: Very strong skills.
- Microsoft Visual Studio: Used as the main programming tool since 1998 and version 5.0. Very strong skills, also on developing IDE macros, Add-Ins and Custom Application Wizards.
- Visual Basic: Programming experience since 1998. Strong skills.
- MFC library: Programming experience since 1998. Very strong skills.
- STL library: Programming experience since 2000. Strong skills.
- Boost library: Programming experience since 2004. Basic skills.
- COM programming: Programming experience since 2000. Strong skills.
- Win32 API: Programming experience since 2001. Strong skills.
- Assembly: Programming experience since 1999 (Microsoft Macro Assembler 611/DOS). I can moderately read assembly code written for Windows.
- WDM: Programming experience since 2004. I have programmed one complete kernel mode USB device driver for Windos XP. Basic skills.
- Windows Native API and kernel mode programming: Programming experience since 2004. Basic skills.
- Embedded Visual Tools 3.0: Programming experience since 2002. Strong skills.
- DDE, COM automation and ActiveX: Good skills.
- I have programming experience in many script languages like JavaScript, VBScript, Perl, PHP, HTML, XML.
- Basics in programming languages: Java, Lisp, Prolog, Logo, Pascal, SmallTalk.
- Programming experience in Borland C++ Builder (Windows) and Turbo C++ (DOS).
- I have used at least the following diagram drawing programs: Prosa, Dia, MS Visio.
- I have used at least the following version control tools: Visual SourceSafe, Intersolv PVCS, CVS, Perforce.

Game programming technologies:

- OpenGL and 3D graphics: Programming experience since 2002. Moderate skills.
- DirectX: Programming experience since 2003 and version 8.0. Moderate skills.

Databases and database technologies:

- MySQL: Experience on usage and programmatic controlling with SQL commands since 2003. Strong skills.
- MS Access: I have used the versions ’95, ’97, 2000 and XP. Very strong skills. Strong skills in programming Access VBA.
- ODBC: Very strong skills.
- DAO and ADODB: Programming experience since 1998. Very strong skills.
- CRecordset class of the MFC library: Programming experience since 1998. Very strong skills.

Software design and architecture:

- Design principles and patterns (also antipatterns): I have studied and applied them in programming since 2001. Good skills.
- UML: Familiar from the literature in the professional field. I can read and design UML diagrams.
- Booch notation: I can read and design Booch diagrams.

Protocols and communication:

- TCP/IP, UDP, SMTP, Boot strap, FTP: Good skills.
- Designing of new protocols, particularly for embedded systems and PC communications in local area networks: Strong skills.
- USB, RS-232, ethernet: Good skills.
- Maintenance of TCP/IP networks: Since 1997 I have maintained the local area network of my home PCs. At different times the network has consisted of 2-7 PCs and multiple different Windows operating systems. Good skills.


Hobbies

I have been programming games since I was 7 years old.
I was even younger when I began to play chess. When I lived in Turku I played in a local chess club. My SELO score was over 1800. Nowadays I play a lot in the internet.
I eagerly want to learn new technologies and evolve myself as a programmer.
I also read a lot of books (about programming).

I have read at least the following books about programming:
- Tricks of the Game Programming Gurus, LaMothe, Ratcliff, Seminatore & Tyler, Suomen ATK-kustannus Oy, 1997
- Tricks of the Windows Game Programming Gurus, Andrew LaMothe, IT Press, 2000
- Programming Windows, Fifth Edition, Charles Petzold, Microsoft Press, 1999
- The C++ Programming Language, Third Edition, Bjarne Stroustrup, Addison Wesley, 1999
- Effective C++, Second Edition (50 Specific Ways to Improve Your Programs and Designs), Scott Meyers, Addison Wesley, 1998
- Design Patterns - Elements of Reusable Object-Oriented Software, Gamma, Helm, Johnson, Vlissides, Addison Wesley, 2000
- The Pragmatic Programmer, Andrew Hunt & David Thomas, Addison Wesley, 2000
- More Effective C++ (35 New Ways to Improve Your Programs and Designs), Scott Meyers, Addison Wesley, 1996
- AntiPatterns - Refactoring Software, Architectures and Projects in Crisis, W. Brown, R. Malveau, H. McCormick, T. Mowbray, Wiley, 1998
- Exceptional C++ - 47 Engineering Puzzles, Programming Problems, and Solutions, Herb Sutter, Addison Wesley, 2000
- More Exceptional C++ - 40 New Engineering Puzzles, Programming Problems, and Solutions, Herb Sutter, Addison Wesley, 2002
- Effective STL - 50 Specific Ways To Improve Your Use Of The Standard Template Library, Scott Meyers, Addison Wesley, 2001
- Exceptional C++ Style (40 New Engineering Puzzles, Programming Problems, and Solutions), Herb Sutter, Addison Wesley, 2005

Other books I have read:
- Data Communications, Computer Networks and Open Systems, Fourth Edition, Fred Halsall, Addison-Wesley, 1996
- Operating Systems, Design and Implementation, Second Edition, Andrew S. Tanenbaum & Albert S. Woodhull, Prentice Hall, 1997
- Structured Computer Organization, Andrew S. Tanenbaum, Prentice Hall, 1990

The following books I have read almost entirely:
- Real-Time Rendering, Tomas Möller & Eric Haines, AK Peters, 1999
- Artificial Intelligence, A Modern Approach, Stuart Russell & Peter Norvig, Prentice Hall, 1995
- Advanced C++, Programming Styles and Idioms, James O. Coplien, Addison Wesley, 1994
- Programming the Microsoft Windows Driver Model, Second Edition, Walter Oney, Microsoft Press, 2002
- Microsoft Windows Internals, Fourth Edition, Mark Russinovich, David Solomon, Microsoft Press, 2005