Curriculum Vitae of Michael Rovid
     
Objective
To secure a challenging programming position that requires interaction with low-level subsystems.
     
General Information
Date of birth 30 May 1983  
Gender Male  
     
Contact information
Cell phone number 0727150858  
E-mail [email protected]  
Postal address P.O Box 332
Evander
2280
Mpumalanga
 
     
Education
2003 - present date Currently completing my Bachelor of Science in Computer Science and Information Systems at the University of South Africa.
2001 C++ programmer certificate obtained from the University of South Africa.
1995 - 2000 High School Senior certificate.
     
Work Experience
2002 -2005

Pc-Net Computers.

This home based startup business provided both self employment and an opportunity to become acquainted with the computer industry.

The services provided by Pc-Net Computers included hardware repairs, software maintenance, hardware and software sales, networked gaming events, as well as network installations for other businesses.

My tasks involved all of the above mentioned as well as the purchasing of stock and supplies and overall management of the business.

     
Current programming skills

UML

2 years practical use through assignments.

C++

7 years practical use, 2-3 years of intense programming for personal interest and career preparation purposes.

C# and ASP.Net

6 months practical use solely for an introduction to ASP.Net and managed code.

x86 Assembly

2 years practical use for personal interest and to compliment C++ knowledge.

Java

1 year practical use through assignments.
     
Interests and activities
Reverse Engineering

In my spare time I like to disassemble trialware applications and write tools to aid in this process. I find it a good way to learn about protection mechanisms, the underlying operating system and the services it supplies.

 

 
Projects
I have made some of my personal projects and source code publicly available. They can be found at www.geocities.com/mikerovid
Name Inspector (Win32 debug tool)
Technologies C++, x86Assembly
Description A master framework and interface based on SetWindowHookEx() for the purpose of live process analysis. The framework handles everything from attaching to a process, detaching from a process, inter-process communication and multiple process management. The key design specification was to allow for the simple addition of features/functions without the need to alter the framework.

Name Import table enumeration
Technologies C++
Description A set of easy to use functions that enumerate the contents of both the Import Address Table and the Delay Import Table for an executable. A custom defined callback is called each time an import is enumerated, making this set of functions as generic as possible. The motivation behind project was to illustrate the concept of API Hooking.

Name .Net Chat Server
Technologies C#, ASP.Net 2.0, JavaScript
Description A .Net web server that provides real-time chat capabilities via the http protocol. Messages are posted to, and received from the server through asynchronous callbacks implemented on the client side with JavaScript. My approach was to minimize web traffic from the server by letting the client store all message history. However, while adding support for various browsers it soon became evident that JavaScript was becoming the driving force, not C#.

Name Compression Algorithm
Technologies C++
Description This was my first attempt at a compression algorithm without prior research. The approach was to reduce the number of bits required to store a byte, thereby allowing a file to be compressed repeatedly. The resulting algorithm produced a 6.25%(16/256) chance of compressing a byte, 37.5%(96/256) chance of no change in size to the byte, and a 56.25%(144/256) chance of increasing the bytes size. However these ratios vary from file to file and can be altered favorably if the correct adjustments are performed before compression.

Name BeBop
Technologies C++, UDP/IP
Description BeBop is my Half-Life bot based solely on UDP packets. This is possible since the Half-Life multiplayer server has a week verification system that allows multiple connections from a single IP address. Ethereal was initially used to capture UDP packets so as to reconstruct basic movements communicated to the server. These packets could then be replayed in a random sequence to create a bot with random movements. One good conclusion from this is that a cheating system can be built without the need for modifying in-game code.
   
Personal Summary
I am definitely highly motivated toward achieving my objective, as it is a personal interest at the same time. I am both confident and competent in my problem solving abilities as well being quite at home with regards to hard work. To complete a task is not simply to finish it, but to do it properly, otherwise why attempt it in the first place.

 

 
Hosted by www.Geocities.ws

1