Islamic Azad University of
Takestan (past):

- Programming
- Computer basics

Payam-e Noor University of Qazvin
(past):

- Data structures
- Advanced programming

Work Experience :

-Google, Inc. as a Software
Engineer 2011-now
-Initiating the project of ERP system development for RIPI (SYP) and
leading the 12 people team, 2004-2011
-Development of a comprehensive network simulator (Xmulator), 2005-2009
-Development of a commercial chat software (Glassroom), 2000-2004
-Development of an ECG software for Davinsa company (Tapesh Negar),
1995-2000
-Initiating the "New technologies in education and research" office of
IAUQ, 2003
-Coach of the first ACM programming contest team of Islamic Azad Uni.
Of Qazvin, 2002-2003
-Initiating the RIPI engineering software development team, 2009
-Initiating the RIPI high performance computing office, 2009
-Webmaster of Islamic Azad Uni. Of Qazvin. Starting the first website
of the univ., 2000-2003
-Internship at LMTS laboratory of EPFL University, Switzerland (2
months), 2008
-Research visit at KTH University (6 months), 2008
-Manager of technical committee of the first Iranian Mechatronics
Conference, 2003
-Renovating the website of Research Institute of Petroleum Industry
(RIPI), 2004

• A. Nayebi, H. Sarbazi-Azad,
"Analysis of the Effect of Nodes’ Mobility on the Performance of
Wireless Networks," (in Persian) In Proc. of The First International
E-city Conference, Tehran, Iran,2008.

Academic Projects :

BSc. Project :

Design and implementation of a 30
channels audio card in Iran's Telecommunications Research Center.

In this project, an ISA card was designed to capture 30 voice channels
concurrently and to play a voice channel as well. Incoming signals were
multiplexed (TDM) and then sampled with a 12 bits flash A2D and sent to
computer memory through DMA channels. Since, capturing of 30 channels
needs a lot of bandwidth and buffer memories, interrupts and DMA were
extensively used in this project and all the buffer on the board was
eliminated. For this purpose, the main memory of computer was used
instead of limited and expensive buffers on board.

MSc. Thesis :

Sound visualization using human
auditory model.

Signal processing researchers need a tool to help them realize
characteristics of audio signals. One of these tools can be a sound
visualizer. A sound visualizer is the means for converting an audio
signal into a static picture or a movie, illustrating the
time-frequency properties of sound. Other application of this tool can
be in: aid for the deaf, music training, etc.
Different methods for sound visualization have been proposed. Among
them are traditional spectrogram, cochleagram, correlogram, and dynamic
spectrogram. In this thesis two new ideas were proposed to improve
dynamic spectrogram, the first was the base-band representation of
filter outputs and the second was inverse color mapping. A software
tool was also developed for testing the efficiency of different methods
and some experiments were carried out using this tool.

The software was developed in VC++ environment and voice signal was
captured from microphone or a wave file and an AVI movie for dynamic
spectrogram was made.

An IP-based RPC system (Hejran) :

In this project, an IP-based RPC
system was developed for LANs. This system included a service
registration, a network interface, and a user interface sub-systems.

Software and Projects :

I started my experience in
electronics when I was just 10 year old. My brother taught me the
basics of electronics in a simple language. I was trying to build some
interesting devices like radio transmitters and receivers, amplifiers,
alarm systems, and many other ones.
After some years, I started the computer science by my first computer:
A Commodore 64 , a simple home computer with 64KB of memory and a tape
device to store programs. I wrote many little programs in BASIC and
Pascal using this computer and after few years I switched to an Amiga
500 and after a while to an Amiga 1200. It was a more serious device and I could
write programs in 68000 assembly and C. Amiga systems had many
advantages in OS design, indeed, Amiga was a very well designed system
in those days. I don't write programs for Amiga anymore, but Amiga has
made my foundations of thinking and designing, indeed, I learned how to
design and develop robust, stable, and scalable software and systems.
I wrote many programs for Amiga, most of them were a mixture of
assembly and C code to execute faster. I wrote a 3D viewer system with
polygon graphics with my little knowledge in that field.
I also participated in a computer graphic team to make TV ads. I made
some ads and learned many useful things about graphical concepts that I used many
years later to design web sites.

Here, I list some of projects I've already developed. It's only a part
of what I have done. Actually, I spent a considerable part of my life on my
computer 's console. One of my friends has made a joke about me that I
earn energy from monitor rather than food :)

Amiga-Negar :

This was a software package I
published nationwide. The purpose of this software was to
change Amiga's environment to support Farsi language. As you know, Farsi
language is written from right to left which made things difficult in early computers.
This system was my first experience in commercial software and thought
me many things about business of software and commercial software.
This system was developed in C and assembly.

Farsi-English dictionary :

This was a Farsi to English and
English to Farsi dictionary developed for Amiga and published
nationwide.

Seda-Negar :

This is a tool to generate
dynamic and static spectrogram. This software is developed in VC++.

Seda-Negar Tester :

A software tool to execute an
automatic graded test from subjects and storing the results. This
software is specially designed to help audio researches to get fair
tests from subjects.

Tapesh Negar, A stress test and
ECG software:

This project started at 1995 in
Davinsa medical equipments company. The goal of project was to control
treadmill system and executing stress test protocols like Bruce,
modified Bruce, and Corner and gathering ECG signal at the same time
and storing the signal in an internal database. The input ECG signal
has a lot of noise and the program must eliminate all of them by
applying special digital filters. There is a filter to suppress DC
changes caused by movements of patient at extremely low frequencies in
range of 0.2 to 0.5 Hertz. There is another notch filter to suppress
the 50 Hz power line noise and a filter to suppress high frequency
noises.
Although the first version of the program was written in MS-DOS
environment but it had a smart GUI. After 2 years the project upgraded
to Windows 95 in Visual C++ environment.
This software is currently used in more than 70 medical centers and
hospitals in Iran.
Some of the features of the software are :
-High performance: It's a real-time system that must perform many tasks like
gathering signals, filtering, scrolling the signal on monitor, storing
data, interacting with user, controlling the treadmill, and executing
the protocols in a non-real-time operating system.
-Reliability: Any bug in this software is dangerous and may lead to
death of patient. The software has shown a high level of
reliability.
-Multitasking ( specially in MS-DOS )
-Well designed to have a long life time: Core piece of the software has not been
re-designed after these many changes.

Bi-lingual conferencing and chat
software :

This project started at 2000 in
Sazman-e Hamyari-e Shahrdarihay-e Qazvin ( a semi-private organization
). The goal of project was to create a voice chat software that support
Farsi and English languages. This software had two parts : Client
(applet) and a Server both in Java. Duration of this project was 1 year.

Atigana conferencing and chat
software :

After success in the previous
project, I decided to build a more powerful chat system with more
features and more users. I signed a contract with one of the most
famous Iranian websites with a lot of visitors, and the result was a
leading chat software.

GlassRoom(R) chat software :

Having obtained experience of the
two last projects, I decided to build a commercial package. Hence, I started a new project
focusing on these features:
- A high performance, highly stable, and reliable server
- A nice looking, flexible, and stable client ( a java applet )
- An ActiveX component to capture and play voice
- An installer built by InstallShield environment
- Perl and shell scripts to execute the software in Linux
- A VC++ program to start the program as an NT service.
- A control panel base on Java Servlets

Textile puncher project:

In this minor project all the web
pages of RIPI website were reviewed and major changes made in graphical
design and structure of website. More over, former system of library
was analyzed and a sub-system for magazines was added to the
system. This software was developed in .Net Environment.

RIPI E-Voting software :

This is a web-based software
developed in .Net environment to hold an electronic election in RIPI.
This package exposes some features like :
-Voter management
-Candidate management
-Email-based voting
-Candidates' personal profile editor, ...
This software was developed in about two weeks and was my first
practical project in .Net environment.

Developing an enterprise
architecture framework for RIPI total system (VONAS)

This framework consists of the
following parts:

- O/R Mapping: In this part,
NHibernate is used as a well known package in this field. NHibernate is
fully studied, tested, and modified to accompany with system
requirements.
- Transactions: An open source package for handling transactions and
defining transactional contexts is used. This package is totally
modified to support NHibernate sessions.
- Code security: All the business facade methods are protected by
role-based security attributes.
- Authentication: ASP.Net form-based authentication is used.
A piece of code is added to support code security concepts.
- Authorization: Roles are stored in an XML file. Two levels of roles
are considered: super-roles and normal roles. A Principal class is
developed to accommodate role-based security. Some parts of Microsoft
Application Block for Authentication and Authorization is used.
- Configuration: A flexible, XML-XSD based, visually configurable
framework is developed to store and retrieve configuration for each
application and for the framework from XML files. System is sensitive
to changes of XML files made everywhere.
-UI Security: A special package is developed to support UI security
issues. Some attributes are defined as extensions to the standard HTML
tags to support role-based permissions in UI web-controls.

RIPI total system (VONAS)

This project is defined inRIPIto
provide an integrated system for 17 areas in 2004. RUP software
development process is used. A minor project is defined to develop a
minor part of the system for the first phase. A three-tire structure
with a suitable layering and flexible distribution framework make a
unique architecture for the software. Service oriented concepts are
considered in designing the system.

Sensor Network for Space
Applications (SENSA) :

During the internship in the EPFL
University, Switzerland (2008 Feb.-Mar.), I proposed a framework for a
special category of sensor networks targeted for space born
applications.

Xmulator (an event-based
simulation framework) :

It is a general object-oriented
event-based simulation software, which is mainly developed to simulate
Interconnection Networks and Wireless Networks. The package is used and
extended by more than 20 students for their own research projects. The
software is developed on a multi-layer architecture in C# language.Xmulator
Project