Curriculum Vitae

 

Alexander Yu. Azarov

E-mail: azarov@aha.ru

 

SUMMARY

  Mr. Azarov is experienced in software design and programming. He has developed database, GUI and Internet applications for different operating systems using programming languages such as C++, Perl and Java. He worked extensively with both C and C++. He is also familiar with application development tools and software support tools such as debuggers, source code control systems, profilers, etc. and is knowledgeable in UNIX shell and system programming. In his work he also makes use of object-oriented design tools, such as Rational Rose, and configuration management tools. Mr. Azarov has good inter-personal skills; he led a small team and carried out a clarification process.

 

SKILLS

Platforms: Intel-based PC, Sun, Macintosh
Operating Systems: Linux, Windows (Win16, Win32), UnixWare, Solaris
Programming Languages: C, C++, Java, FORTRAN, Sed, Awk, Perl, UNIX Bourne/Korn shells, Visual Basic, Delphi
Markup Languages: HTML, XML, XSLT, WML, XML Schema, XPath, XInclude
Libraries: JUnit, JAAS (Java Authentication and Authorization Service), JavaMail, Enterprise JavaBeans, Adaptive Communication Environment (ACE), Standard Template Library (STL), Perl modules (MIME, database, templates), Xerces, Eclipse SDK, Aladdin Hardlock API
Application Servers: BEA WebLogic 5.1, IBM WebSphere Application Server
DBMS: MySQL, Oracle, PostgreSQL
Tools:
  • Eclipse 2.0, 2.1
  • Rational Rose, Requisite Pro, Robot, Purify, Quantify
  • XSLT processors (Sablotron, Xalan)
  • XEmacs, GNU C/C++, GNU FORTRAN, GDB, UNIX Make, Perl 5, CVS
  • LaTeX 2e
  • Java Development Kit (JDK) 1.0, 1.1, 1.3, 1.4
  • Microsoft Visual C++ 1.51, 2.0, 4.2 and 6.0
  • Microsoft FORTRAN PowerStation 4.0

 

EXPERIENCE

June'2000 - present time Software engineer Mobilae Russia, Inc.
Exigen Group

* Configuration of deployment of complex components with inter-dependences and for complex environments (many hosts with application servers, database servers, etc.) This tool is generic and allows using it for various applications and 3rd-party systems. It requires very little from application developer, but provides validation of configuration, binding configuration parts to another's configuration, typed parameters, optional parameters, etc. The tools is standards-complaint, it uses XML, XML Schema, Apache ANT. It functions inside Eclipse, thus providing a configuration perspective in this Integrated Development Environment. Responsibilities:
  • Arhitectured and designed the project
  • Developed the project
  • Managed the project development
  • Wrote technical documentation and pushed the tool into the other company teams
* The library provides unified security model for the company applications and thus eases the development and administration of user policies. The project is multilingual (Java and C++) and multiplatform (Windows, Solaris and Linux). This framework is made on top of JAAS in Java and written as it's functional analogue in C++. The user data base is LDAP and it is used for authorization also (i.e. stores roles and permissions). The project passes severe regression tests during the development stages, that's why test suite automation is in use. The framework features pluggable authentication, authorization, logging and configuration modules for all the platforms and languages.

Responsibilities:

  • Developed Java classes extending JAAS.
  • Designed the C++ implementation and developed it along with other team members.
  • Designed and developed the test suite in C++.
  • Developed the project's regression tests for Java and C++ along with other team members.
* The aim of the project is to build up a middleware which outperforms CORBA in terms of security and performance of asynchronous calls. The main language of the project is C++, however Java is supported too. It has special interface definition language. A native transport protocol with encryption has been developed over UDP.

Responsibilities:

  • Took part in the design and development of application services
* The framework for creation of multi-user WAP applications. The advantage of this framework over competitors is its application-oriented architecture, when the user is working with applications having its own persistent state, so she may disconnect from the cell network, then come back and see what she left. The framework is based on Enterprise JavaBeans (EJB) architecture and runs on BEA Weblogic application server. Advanced features of WML are used, such as alerts.

Responsibilities:

  • Working in a team, developed main applications for the framework (login, logout, task manager)
  • Developed resource saving system daemons.
* Development of automated test tools for WAP application testing has been carried out. Test tool is written in Java and based on a scenario language in XML. Also a set of XML templates is written on top of the tool to facilitate in development of various load and regression test cases. The tool's output is parsed using XSL templates to produce HTML detail and summary reports.

Responsibilities:

  • Along with colleagues, defined test cases using Rational Robot.
  • Took part in development of test scenarios for the test tool.
  • Developed XSL templates.
September'2000 - January'2001 Project manager, developer freelance contract

* This is a commercial redesign and implementation of the academic project mentioned below. This Computational Fluid Dynamics (CFD) tool calculates unsteady aerodynamic loads over complex geometric configurations (wing, wing-body) oscillating in 3-dimensional gas flow. The program is written in C++ and FORTRAN and occupies about 15000 lines of source code.

Responsibilities:

  • Redesigned the architecture
  • Developed the core library and managed the development
November'1999 - September'2000 Technical lead of Web projects devision AGAVA Company

* Mailing lists service provider www.maillist.ru project. It is written in Perl and has extensible architecture that allows creating unusual letter providers (e.g. personalized) and sophisticated advertizing algorithms.

Responsibilities:

  • Designed the system
  • Managed the development
* The internal Perl library to ease dynamic site development has been designed and implemented. The modules include configuration, object persistence in relational databases (providing the same interface to several DBMS), templates, personal information storage and so on.

Responsibilities:

  • Designed the architecture and defined the programming style.
  • Developed the key packages.
  • Managed 3 developers.
August'1998 - March'1999 Developer, technical lead List.Ru

* Internet counter. The former counter has been seriously re-worked upon. Approximate performance increase of 30% has been achieved, along with simultaneous increase in fault- and peak-tolerance. The whole counter system is written in C++ and makes extensive use of ACE library, FastCGI (persistent CGI connections library) and MySQL. Internally it consists of a main long-lifetime server and lite FastCGI image composing processes linked to the server by UDP. The server utilizes a reactive pattern from ACE library while using a separate thread for SQL processing.

Responsibilities:

  • Designed the system, made tests and measurements.
  • Developed it along with another developer.
* Working as a technical lead of the whole List.Ru project, controlled the work on List.Ru banner system and large daily news project called Content. At the same time, managed also a number of smaller projects, including extensible mailing lists server with encoding translation, MIME/HTML/TEXT selection, etc.

Responsibilities:

  • Performed pre-coding stages of the development process, including task set-up.
  • Coordinated the work of programmers and managed interaction between projects.
  • Extended a library of common methods and modules for use in Perl-based projects in List.Ru.
* Online roulette. This is a Java applet to play casino roulette. Java applet is JDK 1.0 - compliant and works under Netscape Navigator and Internet Explorer browsers from version 3.0 and above. The applet communicates to the server written in C via TCP, that in turn accepts a number entered by an operator to administrative Web-form and sends it to all the clients on a particular table. The server supports also a "passive" mode when it generates random numbers automatically.

Responsibilities:

  • Designed and developed the project.
April'1997 - September'1997 Manager, developer, analyst, QA Remote Russian Professional Programmers Association

* Suite of programs written in Visual C++ 4.2 (MFC, STL) running as a service under Windows NT 4.0, receiving and sending mail through MAPI for later use by external handlers. The suite is organized in such a way that many mailboxes may exist simultaneously. Setup for the program is written in InstallShield3. A wizard-like configuration tool is used to manage the system configuration.

Responsibilities:

  • Collected the client's requirements.
  • Developed the system along with another developer.
* Large Internet bug-tracking software written in Perl. Runs under Linux, Digital UNIX and Windows NT. Allows many users (customers, developers, testers, managers, etc.) to keep track of problems in a number of software products under development or under support in the company. The primary user interface is based upon WWW with optional support of e-mail notifications. To store the information and perform full-text search a custom database engine was designed and created. CVS was used to provide simultaneous work of several developers.

(The software was largely redesigned later and is currently distributed as SupportWizard)

Responsibilities:

  • Designed and developed the full-text search engine for the custom database engine in Perl, Awk and grep.
  • Agreed upon a sophisticated install procedure supporting multiple versions of the software at the site with the client and turned it out. The setup was written in UNIX shell (Korn, Bourne), Perl and make files.
* Editor for engineers and managers to keep track of changes made in components (e.g. electric boards) and their elements. So the editor provides an easy way of dealing with complex versioned entities (Bill of Material, BOM) consisting of other such with numerous attached files (drawings, documents, etc.). A set of BOM changes is grouped into a document (Engineering Change Order, ECO) describing the reason, referring to the author, etc. Each ECO must be approved before the change is made. The necessity of object versions and complex object's lifecycle led to the use of document management system CMS as a backend. The realization was in Visual C++ 4.2 (MFC) using ActiveX ProtoView DataGrid component.

Responsibilities:

  • Performed testing and QA.
  • Clarified the system specifications with the client.
  • Worked on the integration with CMS by means of its application programming interface OpenLink.
  • Was involved in the development and managed a work of three developers.

 

November'1996 - March'1997 Developer Chester, Ltd., Russia

* Internet system for car leasing. The clients are given the possibility to choose in advance a suitable lease scheme, car make, and so on via WWW forms. Once filled the forms, the client receives an order ID and may later check the status of the request. On the other hand, an operator uses secured WWW forms to walk through the list of pending orders and processes them with the option to reject. The software written in Borland IntraBuilder and using Paradox database runs on Windows NT.

Responsibilities:

  • Developed the entire system.

 

May'1994 - March'1997 Developer, analyst Artelligent, Co., Russia

* Supplement software for computer-specific magazines. The project was inspired by the need to distribute sets of files (e.g. documents, macros, graphics, etc.) in addition to the magazine itself. The suite of programs had to provide easy setup and usage under DOS and Windows 3.1. Once installed the core, user may preview files (ASCII and WordPerfect documents and CGM graphics) distributed as a single packaged file and install the selected onto the user's disk. DOS version uses Zinc library for GUI, while under Windows the suite makes use of WordPerfect SDK to display GUI controls in WordPerfect-alike manner and for file preview. CTL3D provides 3D look when WordPerfect is absent.

Responsibilities:

  • Was a leading developer for the project and controlled the work of other two participants developing separate components: CGM viewer and WordPerfect document-to-text converter for DOS.
  • Proposed the usage of ZIP compression for file packaging and has embedded UNZIP uncompression utility source code into the project. The use of ZIP package format let the distributive for DOS and Windows and attached packaged files to fit on 720K diskette.
* Large client-server system for medical scientists and organizations. Research organizations may search a candidate by required skills in object-oriented database. On the other hand, registered people may find organizations. A database backend is ObjectStore database running under UnixWare. Client's seat is written in Visual Basic using Sheridan DataWidgets VBX controls. A client-side database of constant pre-defined values for use in searches, etc. is Access.

Responsibilities:

  • Was involved in development of ObjectStore classes and client-side query builder.
* Software which collects information from sensors via X.25 network on Eicon cards. These sensors report water, gas, etc. consumption data. The system is used to manage sensors, query them and provide billing reports. Network module is written in Visual C++ using Eicon X.25 SDK and module for administration and billing is written in Visual Basic using Crystal Reports. To substitute a real sensor, a small program was developed.

Responsibilities:

  • Along with another developer clarified the system functionality and made it viable.

 

ACADEMIC PROJECTS

* Refal to ANSI C translator written in ANSI C. Refal is a programming language which abbreviation stands for Recursive Functional Algorithmic Language. The language is pure functional and has built-in pattern recognition. The translator is written in pure ANSI C with extensible library of routines and designed to be easily portable.
* A sophisticated Computational Fluid Dynamics (CFD) tool to determine aerodynamic loads from an unsteady 3-dimensional gas flow. Designed using object-oriented approach, with an ideas of distributed calculations in mind, it is written in C++ and FORTRAN and has more than 14000 lines of source code.

 

EDUCATION

 

M.S. in Applied Physics and Mathematics, 1996, with distinction
Moscow Institute of Physics and Technology, Russia

B.S. in Natural Sciences, 1994
Moscow Institute of Physics and Technology, Russia

 

FIELDS OF INTEREST

* Software engineering: SEI Capability Maturity Model (CMM), Quality Assurance, Configuration Management, Requirements Management, Metrics.
* Team management, Programming techniques (Extreme Programming).

 

PERSONAL

  29 years old. Married. Non-smoker.
E-mail: azarov@aha.ru

Mother tongue is Russian. Good English.

 



May 2004