AHMED REDA
SUMMARY:
Over four years of overall IT experience. Expertise in Systems
Programming, Object Oriented Design and implementation. More than 7
years of experience in C/C++ and 5 years of experience in Visual C++.
Experience in UNIX/Windows 2000/Windows NT/Windows CE
environments. Good knowledge of TCP/IP, Multithreaded
and Database programming. Good experience with
designing/implementing algorithms in different fields like
AI/Compilers/Image and video compression.
IT SKILLS:
Operating System :
Windows NT/2000, Windows 95/98, Unix, Solaris 7/8, Windows CE
Dev. Environments:
VC++(MFC,
Win32 SDK, COM, MAPI, DAPI, CDO, ODBC, , STL, Embedded Visual C++(Windows CE
Toolkit)), Visual Basic, VB Scripts, Java Scripts, VHDL, CGIC
Languages:
C, C++, C-Shell
Scripting, SQL, Assembler x86, Pascal, GC Lisp, Prolog
DBMS/Packages:
Microsoft SQL Server, Oracle, Microsoft Visual Source Safe, DET,
Clearcase, SDB, DBX, Sun Workshop.
PROFESSIONAL EXPERIENCE:
Lucent Technologies, Sunnyvale,
CA_________________________________________Oct ’01-Present
Role:
q
Participated in creating a suitable build environment.
q
Rewriting many parts making use of the RogueWave library in POSIX and
equivalent in Solaris.
q
Made
extensive use of IPC mechanisms on the Solaris platform to substitute for
Windows specific features like named events and Mutexes.
q
Ported
over 10 programs in the VitalSuite family.
q
Participated in migrating databases from SQL Server to Oracle.
Environment:
Solaris 8, C++, Win32 SDK, POSIX, Rougue Wave, POSIX, ODBC,
Shell Scripts, Oracle
Carlin Group,
NJ
May’01-Oct’01
GOES™ is professional order routing software for serious equity traders.
GOES provides a direct access by routing orders to all Exchanges and major
ECNs. Executions are instantaneous for marketable orders. This system was
written 3 years ago using the Win32 SDK. I worked on rewriting the whole
system using Visual C++ and the MFC.
Role:
q
Developed a stream socket library class on top of the MFC socket classes.
Visual C++, Sockets, Windows NT.
q
Developed an owner-drawn list box class for displaying large amounts of data
efficiently while taking care of certain issues like flickering. The list
box was capable of displaying colors so as to catch user attention in case
of certain events like profit or loss. Sorting capabilities were provided on
each of the available list column. Visual C++, MFC, Windows NT.
q
Using
the socket library to connect to both of the SM server and the Quote server
and exchanging messages with them.
q
Developing test cases for the program after migration and performing full
white-box testing at different levels.
Environment: Windows
NT, Visual C/C++, Sockets, Owner-Drawn Controls.
Infowiz, Piscataway,
NJ
Mar’01-May’01
Infowiz is a solution
that uses existing email and messaging technologies to perform remote tasks
involving data access, Internet operations, administration tasks and report
back to any machine with email access (Laptop, mobile, Palm, etc..). This
product is written in C/C++. It has versions on many platforms.
(Sample available upon
request).
Role:
q
Wrote a
utility for searching through the Outlook Address Book, Visual C++,
MAPI, COM, Windows 2000
q
Wrote a
utility for searching through the Outlook Calendar Events, Visual C++,
CDO, Windows 2000
q
Wrote a
configuration program for the Infowiz/MyMail programs. Created forms for
specifying all the settings for infowiz like the list of blocked email
addresses, the outgoing directories, etc. ., Visual C++, Windows 2000
q
Added
the functionality of retrieving and executing commands from MS Outlook,
Visual C++,MAPI COM, STL, Windows 2000
q
Was
responsible for packaging the products using Install Shield, Install
Shield, Windows 2000
q
Participated in porting the program to Windows 98/NT/Windows
CE/Linux/Solaris.
Environment:
Windows 2000/CE,Linux , Solaris, Visual C++, MAPI, CDO, COM, Install
Shield, Multithreading/Multiprocessing, Shared Memory, STL.
Mentor Graphics,
OR
Aug ’00 - March ‘01
www.mentor.com
Mentor Graphics® is a
technology leader in electronic design automation (EDA). I worked with them
on the team of the ICStation program. IC Station is a set of
tools for IC Layout.
Role:.
q
I was
involved in a project for integrating the ICStation with another
Mentor product called
Teraplace. Teraplace does placement of components and it can accept timing
libraries, which the placement module in ICStation cannot. This integration
process required converting the design from the ICStation database format to
the Cadence LEF/DEF format and back.
q
Created
the GUI forms for invoking Teraplace using AMPLE/C++. Ample is a
compiled language only available for
Mentor products.
Sun Solaris 7, C++.
q
Developed a module for monitoring background processes in ICStation.
Sun Solaris7, Shell Scripts/C++.
q
Worked in team to
simplify the GUI for ICStation Basic to give it the look and feel of
the programs running under MS-Windows,
Sun Solaris 7, C++.
Environment:
Solaris 7, C/C++, Shell Scripting, Ample, CVS,
DET, Make Files, VI editor
Giza Systems
Engineering (R&D Dept.), Cairo
Jun ’99 –
Aug ‘00
www.gizasystems.com
Member of the development
team for IVR Studio. This is a program that enables creating
Interactive Voice
Response (IVR)
systems in a way that is easy and efficient. IVR Studio consisted of two
parts: one is the designer, which lets the user visually define blocks of
execution and linking them in a way that defines the call scenario. Those
execution blocks can be playing a WAV file, accessing a database, executing
a script, transfer call, etc. The program enables call simulation through a
simulation module. The output from the designer is fed to another part of
IVR Studio, which is the IVR Server, which starts accepting calls while
behaving as specified in the IVR Designer. The server part uses the TAPI
library to make use of any TAPI-compliant voice device, which can be a
Dialogic E1 board or even a voice modem. (Sample available upon
request).
Role:
q
Developed a flow chart editor to define the flow of the call. The basic
functionality involved inserting, moving, deleting, linking,
cutting/pasting, saving/loading etc. I made extensive use of the MFC
classes to do drawing, scrolling, serializing etc.. Automatic routing
between connected components was available, GUI, Visual C++/MFC
q
Developed a scripting language called CScript . The language
parser was generated using (Lex/Yacc). I defined the grammar
of the language and implemented the actions using Visual C++.
The language included most of the features included in most languages.
Examples are: numeric expression evaluation, string manipulation functions,
time manipulation, loops (for, while, do-while), conditionals (if, switch),
etc..). Most of the functions are executed using corresponding calls in the
MFC library.
q
Designed
and Implemented many GUI forms that appear in the program.
q
Was
involved in many of the core functions including enabling the user to call
DLL functions inside a script.
q
Wrote a
program for administering the GSE web site for training courses schedules.
Windows NT, Visual C++ and MS SQL Server
q
Involved
in the implementation of a web site for retrieving the results of the EGCSE
for the Egyptian Ministry of Education using ASPs/MS SQL Server.
The results were also made available over the phone using the IVR
Studio ,Visual C++, Windows NT, Visual Interdev
q
Involved
in the development and implementation of a website for retrieving the
results of student distribution over the faculties (according to their
score) on the web using ASPs/MS SQL Server (Alpha) and
over the telephone using the Visual C++, IVR Studio,
Windows NT, Visual Interdev
Environment: Windows
NT (x86 and Alpha), Visual C++ (x86 and Alpha), COM/DCOM/ATL, VAX/VMS,
Visual Interdev, LEX/YACC,MS SQL Server (x86, Alpha), ASPs, DLLs
ETS Net/Egypt
4 U,
Cairo
(Parttime)
ETS is a major ISP
company in Egypt. They have a system for controlling user access to the
Internet through their system. They are planning to create an Internet
Portal site called egypt4u. I worked with them on some modules in
both projects.
Role:
q
Developed a program for accessing ETS’s Oracle database
through ODBC, reading the list of new users, inserting them
users into the Windows NT users database while granting them
dialup access. Visual C++, DAPI, MFC, ODBC.
q
Developed a program for disconnecting users from their access server when
they run out of time. This required establishing a telnet session with the
access server and dealing with all the prompts with the appropriate
responses. Visual C++, ODBC, Winsock.
q
Developed an application for extracting news sent in by Reuters in the XML
format and storing them in a database table in a way to be used in the Egypt
4 U website. This involved parsing the XML files and extracting the
information correctly. Windows NT, Visual C++, XML
Environment: Windows
NT, Visual C++, DAPI, ODBC, XML
Video Live!,
Cairo
Graduation Project
This was a project
involving Teleconferencing over low bit rate IP networks. It was written
entirely in Visual C++. It involved audio transmission and
compression using GSM, Video transmission and compression
using H.263, Synchronization of audio/video, Shared
Whiteboard, Application Sharing, Remote Desktop Access, Multicasting text
chat and a Client/Server Architecture.
Role:
q
Interfaced with the Video For Windows driver for capturing the video stream.
q
Converted the captured images from the RGB color representation to the YUV
4:1:1.
q
Made use
of the Video Compression Codecs for (MPEG, H261 and H263)
to compress the video stream but after that we decided on building a
compression library to get more control.
q
Built a
library for H263 Encoding/Decoding from two open source command line
utilities for Encoding/Decoding.
q
Enhanced
the performance of the H263 Encoder to make it suitable for real time
encoding. I used techniques like look-up tables to improve the performance.
q
Sent the
compressed video stream using UDP and implementing a buffer to
handle lost, delayed and duplicate frames.
q
Synchronized the video and audio streams using timestamps on both kinds of
packets.
q
Developed the Application Sharing part of the program. This involved using a
timer on the server side to monitor for changes in the shared application
window. Changes in the window are detected, compressed using RLE
and sent using TCP. The client side captures mouse and
keyboard events and sends them to the server side, which emulates those
events to the shared program using Win 32 APIs.
q
Implemented the client/server architecture of the program. A server program
accepts TCP connections from clients. When a client logs, he gets
information about all of the currently logged clients and each logged client
is notified of the new client. I used several threads of execution in the
server part.
q
Studied
different compression algorithms/formats for audio/video like (MPEG, H261,
AVI, GSM etc.) and data
and choose those that
best suit the program.
q
The user
interface for this program was an MDI with multiple Document/Views for each
of the features provided. So we had separate Documents/Views for displaying
video, application sharing, white board , etc..
Environment: Visual
C++, MFC,Win 32API/SDK, VFW Library, Windows98/NT, WinSock (TCP,UDP/IP)
OTHER SIGNIFICANT
PROJECTS
1993 to Present
Connect 4CE, 2002:
Have written an AI
Connect Four game implementing the Minimax with Alpha-Beta cut-off. The
Minimax with Alpha-Beta engine was written using STL for the sake of
portability and it was written so that it can be used with any two player
game like chess for example. The game was compiled under Win 32 as well as
Windows CE Pocket PC devices using the Embedded C++ tookit. The game is now
being sold at most of the PDA software sites. (Game Website:
http://connect4.ahmedreda.com)
FIFA 4th U-17
World Cup Championship, Egypt 1997:
Member of the IT team of the Giza Systems Engineering. My job was to update
the WWW site during matches so that people can watch them through the
Internet, 1997
Egyptian Fun Pack,1997:
This is an
entertainment package developed for the PC World M/E 6th annual
game-programming contest. It included three games (a 3D soccer game, a card
game (Basra) and a bricks game (Tetris)). It was developed using Turbo
C++ and Turbo Assembler. In the 3D soccer game, I
wrote all of the graphics routines in Assembly x86 and I
called them from within the C++ code. The game accepts
keyboard/joystick input and it also makes use of the Sound Blaster family of
cards to give audio effects like crowd and commentary. The card game won an
incentive prize in the game-programming contest held by the Oulu University
of Finland ftp site (x2ftp.oulu.fi). (Sample available upon request)
The Terminal, 1996:
This is a program written entirely in Assembly x86. This
program enables simultaneous text chat and full duplex file transfer through
the serial port.
Alamuna Al Arabi,1993:
This is an Arabic tutor about the History and Geography of the Arab World. I
wrote it using Turbo C++. I wrote several routines for
displaying the Arabic text since there is no support for Arabic by the
Operating System. This required doing contextual analysis for each letter to
determine how it is going to appear. The program contained animated
sequences for illustration as well as sound effects. This program won the
first prize of the 2nd annual programming contest held by PC
World M/E.
EDUCATION:
q
BS
(Computer Engineering), Cairo University, Egypt
TRAINING COURSES:
2001 |
Rational
Clearcase Fundamentals for UNIX |
Rational
University |
2000 |
C Shell
Scripting |
Tritech Training
Center |
2000 |
7 Habits of
Highly Effective People |
Mentor Graphics
|
2000 |
Administering
Microsoft SQL Server 7.0 |
GSE Training
Center |
1999 |
Administering
Windows NT 4.0 |
GSE Training
Center |
EDUCATION
q
Bachelor of Computer Engineering, Cairo University
REFERENCES:
q
Kirk
Newgard (kirk_newgard@mentor.com) , Mentor Graphics, 503 685 7000
q
Kumar
Talluri (kumar@softdomain.com), SoftDomain Inc, 732 465 1234
q
Naveen
Rastogi (naveen@lucent.com) , Lucent Technologies, 650 318 1468
CONTACT INFORMATION
Email:
ahmed_reda@usa.com
Telephone:
650 318 1605