Indra Mani

Opening Remarks
Employment
Education
Project Summary
Hobbies
Keywords
Suppliment
Project Detail

STATUS: Open for discussions. (Please check at my home page for the latest status)

EMAIL: indra_mani@hotmail.com

PHONE: +91 98 10 19 27 89

URL: https://members.tripod.com/mani_indra/

UPDATED: 17-Dec-2005

OPENING REMARKS:
I've tried putting together all my productive activities in as-it-is style. This gives employers greater ease to mix-n-match my skills with their requirements in an optimized manner. I am looking forward to discuss the assignments with prospective employers who require a set of my key skills.
Talking of my preferences, I would prefer -


EMPLOYMENT CHRONOLOGY:
Technical Staff Member at IBM India Research Lab, Delhi (Feb 2004 - till now)

-- x -- -- x -- Recreational Break-- x -- -- x -- (Jan 2003 - Jan 2004)

Consultant at Siemens Information Systems Ltd, Delhi (Oct 2002 - Dec 2002)

Associate Consultant at Siemens Information Systems Ltd, Delhi (Oct 2000 - Sep 2002)

Sr. Software Engineer at Siemens Information Systems Ltd, Delhi (Oct 1999 - Sep 2000)

Software Engineer at Siemens Information Systems Ltd, Delhi (Feb 1999 - Sep 1999)

Freelance software consultant at HACE India Ltd Delhi (Jul 1997 - Feb 1999)

Research Assistant at IIT Delhi (Jul 1995 - Jul 1997)

Scientist at Torrent Research Center Ahmedabad (Jun 1994 - Jul 1995)

EDUCATION:
5 Yr. Integrated M. Tech. in Biochemical Engineering and Biotechnology, IIT Delhi (1989 - 1994)

Diplôme Supérieur de Langue Française, Alliance Française de PARIS (Jun 2004)

PROJECT SUMMARY:
Feb 2004 - Dec 2005: Worked as a member of High Performance Computing Group on benchmarking and optimization of Blue Gene supercomputer. (Details...)

Jan 2003 - Dec 2003: Worked on two exploratory projects, one was related to microcontroller programming while the other was related to 3D modelling. (Details...)

Oct 2000 - Dec 2002: Worked as Project Manager for the development of CallConnect 4.x Product Suite and collaborated in its Deployment on site with team of size varying between 5-9 people. (Details...)

Oct 1999 - Sep 2000: Worked as Technical Lead for CallConnect 3.0 and 4.0. and designed various interfaces and APIs. (Details...)

Feb 1999 - Sep 1999: Worked as a team member for CallConnect 3.0. and implemented certain modules. (Details...)

Jul 1997 - Feb 1999: Worked as freelance software developer for HACE India Ltd. and developed a few UI products for their Data Acquisition System collectively called as Virtual Instruments. (Details...)

Jul 1995 - Jul 1997: Worked as research assistant as a part of Ph.D. Program at IIT Delhi and worked on non-equilibrium thermodynamics applied to biological systems. (Details...)

Jun 1994 - Jul 1995: Worked as scientist at CADD (Computer Aided Drug Design) Unit, Torrent Research Center Ahmedabad and worked on identifying Angiotensin II antagonists. (Details...)

Pre 1994: I learnt programming in the very first year I entered IIT Delhi in 1989 and solved various assignments/problems, including my final year project, using PASCAL, FORTRAN, and C. (Details...)

PROJECT DETAIL:
Feb 2004 - Dec 2005: I am working on benchmarking Blue Gene , that is #1 supercomputer at present, and optimizing its performance. The benchmarking includes benchmarks like SPEC, HPCC, and MM5. SPEC is a benchmark having group of 26 common applications like gcc, gzip, etc from range of variety of domains to indicate single cpu power. HPCC is a group of programs to study parallel algorithms that rely not only on cpu power but communication between them as well. Matrix transpose, multiplication of HUGE matrices that can not be allocated to single cpu memory are such examples. MM5 is part of weather forecasting system that primarily implements some sort of FEM. Optimization is done primarily in three steps -

  1. Identifying piece of code (blocks) that takes major chunk of time on the representative datasets. this is done by instrumentation of code, either using compiler (profiliing ), libraries ( papi, PCL, perfmon etc), timers (reading various performance counters using native implementation, system cycle counters)
  2. Take appropriate action to reduce time taken by these identified blocks. This is done by choosing appropriate compiler flags that improve performance of these blocks, re-organize the code of these blocks in higher level language, rewrite the code of these blocks in higher level languages, rewrite a part of these blocks in intrinsics/assembly, rewrite these blocks completely in intrinsics/assembly, strictely in the order they are written here.
  3. Identification of communication patterns within distributed programs using MPI profiling libraries and designing MPI rank=>physical node mappings to minimize communication paths taken by most frequent messages.


Jan 2003 - Dec 2003: After years of nonstop work, practically without breaks, year 2003 was a year of rejuvenation for me. However there are two small exploratory projects which are worth mentioning that I undertook. The first one was related to microcontroller programming while the other was related to 3D modelling.


Equipped with multimeter and soldering iron, I assembled 8051 programmer kit hardware. The programmer could be used to program Atmel AT89C51 microcontroller using parallel port of the PC. The assembly code (.ASM) of test program to blink LED was converted to HEX (.HEX) representation using Boreland TASM assembler. This was then transferred to 89C51 using software component of the programmer kit on the PC through parallel port. Also I assembled development & debugging platfrom kit which itself uses 89C51 microcontroller and has a keyboard, LED display, RS232 interface and interfaces to various IO ports. The monitor (driver) program was assembled on the PC using tasm and a microcontroller was programmed using abovementioned programmer kit. This programmed microcontroller was then put into devlopment kit. This kit, can be used to enter the assembled HEX code, view and modify internal registers and memory locations and run a particular piece of code. Also the entered data can be stored persistently between two different sessions. ( See Electronics For You Jan 2003, Feb 2003)

During second half of 2003 I explored various 3D-modelling & animation and video editing techinques using Blender, povray, Yafay, VirtualDub, Broadcast2000 and Cinelerra. An animation sample was dubbed with music and vcd was made using Blender, mjpeg tools, vcdimager, vcdgear on Linux and was tested successfully on VCD player/ TV combination. Similarily a 15 sec animated birthday greeting was created. I have also tried to record video from VHS cassettes and convert these to VCD format, using PixelView card (Bt878 chipset) NuppleVideo, exportvideo and mjpeg tools. The quality of recording was fine but after multiplexing video and audio streams into mpg these were out of synch somewhere in between.

Oct 2000 - Dec 2002: Worked as Project Manager for CallConnect 4.x with team size varying between 5-9 people. CallConnect is Siemens Information Systems Ltd's product to implement Call Centers. The Product suite consists of a server application along with C-API, ActiveX components, a client template in VB, an outbound campaign manager server, campaign generator and softphone, message player and web based administartion and supervision. Besides these I was also administering GNATS bug tracking tool for various projects within the company. I've developed web interface to administer Gnats databases using perl cgi scripts which is accessed through Apache web server on Sun Solaris.

Oct 1999 - Sep 2000: Worked as Technical Lead for CallConnect 3.0 and 4.0. During this period I was involved with developing protocol for synchronized voice and data transfer between Telemaster IVR and CallConnect system. It was during this time that we acquired TADIRAN and HICOM PBXs and ported our code to work with these PBXs. During this period we also incorporated CTConnect's API into our product and designed/implemented C-API for our server.

Feb 1999 - Sep 1999: Worked as a team member for CallConnect 3.0. Here I implemented synchronized voice and data transfer during transfer and conference operations.

Jul 1997 - Feb 1999: Worked as freelance software developer for HACE India Ltd. I developed a few products collectively called as Virtual Instruments. These systems were Data Acquisition Devices (DAD) which had analog to digital converters on serial port. All of these shared same hardware and different products were packaged using different rules of data transformation, storing and display. A few of these were named as Data Logger, X-Y recorder, Weather Station, Single and Dual Met. Parameter Recorder. I developed these VIs in C++ using Boreland's C++ 4.0/5.0 IDE for Windows 9x using Windows SDK. The work involved was based on already existing Windows 3.1 codebase in SDK. The data acquired were transformed using some configurable formulas, stored in proprietary formats as flat files and displayed in various modes- text, bar, dial, graph. All the graphics was developed and encapsulated as library to be used.

Jul 1995 - Jul 1997: Worked as research assistant as a part of Ph.D. Program at IIT Delhi. The project, I worked on, was related to non-equilibrium thermodynamics applied to biological systems. It was computational/theoretical project and involved mathematical modeling and simulations. I used Turbo Pascal 7.0 and Turbo C++ 1.0 to implement some models. As part of assistantship, I worked on simulation studies in Packed Bed Reactors, which was realized using C++/BC++2.0. During this time I also attended one semester course on Mathematical Foundations of Computer Science and learnt about Turing machines, computability etc.

Jun 1994 - Jul 1995: Worked as scientist at CADD (Computer Aided Drug Design) Unit, Torrent Research Center Ahmedabad. I worked on identifying Angiotensin II antagonists. Angiotensin II is a fragment of protein with eight amino acids, which is known to increase blood pressure in humane body. An antagonist is a substance having similar properties as Angiotensin II but its effect on BP is neutral. The work required energy minimization study of structures in dynamic simulations. Cerius II drug discovery Workbench was the main tool along with QUANTA and CHARMM on HP 9000 systems. I often wrote and used shell scripts and C programs for data transformation to desired format generated by abovementioned tools.

Pre 1994: I learnt programming in the very first year I entered IIT Delhi in 1989. It was PASCAL/TurboPascal5.0/DOS4.0/286 system. I did a course on Data structures and learnt C during second year. Towards final years, I have to learn FORTRAN to use a simulation package library written in FORTRAN. Final year project was modeling and simulation of charge flow within an ion channel. I used PASCAL to implement this project.

SUPPLIMENTARY INFORMATION:
About CallConnect Product Suite: The CallConnect server is a multi threaded application written in C++ for Windows NT4.0 using MSVC 5.0/6.0. It receives telephony events using Novell's TSAPI or Dialogic's CTConnect API. Based on these events, it manages agent/call states and statistics and can log these to MS Access 97, Oracle 8.0 or MS SQL 7.0 using ODBC. It uses UDP/IP sockets to communicate to agent desktop applications. Synchronized screen pop is delivered to the agent desktop during transfer from one agent to another agent and conference with another agent. A protocol is been devised and implemented for synchronized voice/data transfer to/from SISL's Telemaster IVR.

The web UI has been developed in JAVA Applet/servlet while C-API has been enhanced to provide statistical information as well. Message player component added which uses Dialogic's analog voice cards to enable callceter supervisor to define voice messages to be played to customer when he waits in the queue. There is whole range of basic and advance routing schemes and priority queuing which were added during this period. List of supported features can be viewed here

We were working on incorporation of Call Blending, multimedia support and multi-site support in the CallConnect 4.X when I left the project.

About CallConnect Product Deployments: We have deployed our product first time at Grameen Phone Dhaka (Bangladesh) in Sep 2001. During my association with the project, we had deployed it on 5 more sites. ( BSNL Karnal, BSNL Gurgaon, BSNL Hyderabad, BTNL Bhopal, SBS Chilworth (UK)). My group developed agent screens and customized Reports for Grameen Phone, BTNL Bhopal and SBS Chilworth implementations.

KEYWORDS:
Natural Languages: Hindi, English, French, Bangla, Gujrati, Urdu, Panjabi

Organizations:
IBM, Siemens, HACE, IIT Delhi, Torrent

Domains: High Performance Computing, CTI-Call Center, DAD-Virtual Instruments, Biology-Thermodynamics, Computer Aided Drug Design

Roles: Project Manager, Technical Lead, Team Member, Freelance Consultant, Researcher, Scientist

Computer Languages: C, C++, Perl, HTML, SQL, VB, VB Script, Java, PASCAL, FORTRAN

Systems: Blue Gene, Intel/Red Hat Linux 6.0/7.1/8.0/9.0, Intel/Windows NT 4.0, Intel/Windows 9x, Intel/Novel Netware 4.11, Intel/MS DOS 6.0, HP9000/HP-UX, Sparc/Sun Solaris, ICL 2900/3600

*nix Tools: vim, gcc, make, cvs, perl, sed, awk, gdb, gnuplot

Compilers/IDE: gcc 3.x, xlc 6.0/7.0, xlf 8.1/9.1, Visual C++ 6.0, Borland C++ 5.0, Visual Basic 6.0, Turbo Pascal 7.0, Turbo C++ 1.0

Design Tools: Rational Rose 98

Software Packages: Cygnus 3.110, Active Perl 5.0, Cerius II Drug discovery Workbench, QUANTA, CHARMM

Administration: TikiWiki 1.8.3, GNU GNATS bug tracking system, Apache web server, Red Hat Linux, MS VSS 5.0

API: MPICH2, LAM/MPI2, PAPI, perfmon, Novel TSAPI, Dialogic CTConnect, Dialogic SDK 5.0, MS MAPI

Technologies: Blue Gene, MPI, Windows SDK Programming, MFC, COM, ActiveX, Sockets, ODBC, Crystal Reports, Servlet/Applet, CORBA

DBMS: MySql 4, MS Access 97, Oracle 8.0, MS SQL 7.0, Foxpro 5.0

PBX: Coral TADIRAN, Siemens HICOM 300, Siemens HICOM 150, Realitis DX, Alcatel 4400, Ericson MD110, Novel Definity G3 Simulator

Protocols: CSTA, TCP/IP, UDP/IP, HTTP/CGI, SMTP, POP3, SNMP