S. Madhu


A career in Software Engineering R&D, developing products of value, enabling and delivering technology.
M.S. Computer Science1 University of New Mexico, Albuquerque NM, USA 2002-03, 1996-98
M.Sc. Chemistry, B.E. Chemical Engg. Birla Institute of Technology & Science, Pilani,India 1991-96
Software Skills
Languages Common Lisp/CLOS, C/C++, Java, (Ccrl, Shell, Python, Perl, VB, XSL, Tcl/Tk)
Systems Win32/NT, X11/Unix: HPUX, AIX, Linux (Admin)
Tools GNU Suite: Emacs, GCC, GDB, lex, yacc, make, Cygwin. CMUCL, Allegro CL. JDK/J2EE: Tomcat, Cocoon, Junit etc. Appservers: WebSphere, Bluestone. Databases: Oracle, DB2. IDE: JDE, VisualAge, VisualBasic, BC++, etc. Publishing: HTML4, CSS, LaTeX Cfg Mgt: CVS, RPM (packaging)
Domains Network object & component architectures, Document exchange, Interactive collaboration systems, GUIs & Class Libraries. Full software development life-cycle. Design Patterns, Reengineering. Algorithms: Parallel, Evolutionary (GA/GP), NP optimization, Functional language Compilers, UNIX: Security, PKI, TCPIP, SSL, some kernel internals, network and sysadmin support. Unicode/i18n, (Indian language) fonts, MIDI, Internet ethics.
Work Experience
Scientific Officer (D)
Tata Institute of Fundamental Research
05/2004 - 05/06
Mumbai, India
Partial list of algorithms developed (with accompanying Common Lisp implementations): 1. An optimal scheduler for a Reinforcement Learning (Markov Decision Process based) formulation of a resource allocation problem in the context of scheduling jobs on grids (done under Dr.V.S.Borkar's guidance). 2. Efficient matching algorithms for combinatorial auctions and stable matching problems, 3 Efficient algorithms for counting SAT solutions, 4. SPKI based certificate server design, and 5. a few specialized constraint solvers. System Administration and other tasks, (partial list): 1. Designed and Implemented automatic backup, software upgrade, and maintenance policies for the mostly debian based STCS network. 2. Supervised the installation and maintenance of interim TIFRGRID as part of the LCG project with CERN. 3. Supported the appropriating of public money for personal use of Dean Dr.R.K.Shyamasundar and his secretary John Barretto through HR, software and hardware purchases, and the intellectual fraud in Computer Science Research of Dr.R.K.Shyamasundar until resignation.
Software Design Engineer
Hewlett Packard Company
08/1999 - 08/01
Cupertino CA
Last Worked on a BizTalk implementation under a J2EE/Cocoon based pipeline to support WSDL/XML based conversations, for the Web Services Organization. Worked for HP's E-Speak Operations R&D lab on several releases of the open source E-Speak service engine product. Primary responsibility was design and development - I supported and added functionality as part of the Programming APIs team. In addition, I was involved in most aspects of the project including QA/testing/scripts, release, configuration management, etc., providing continuity across a changing team. Development was on the Java 2 platform on Win32/Linux. Also worked on the python implementation of an early E-Services broker for customer engagements.
Java Developer
Specialized Software Intl.
01/1999 - 08/99
Worcester MA
Re-engineered (Modem/Zmodem) communication objects under the Adapter-pattern for Nortel. Wrote a ConnectionFactory, implementing different pooling algorithms for managing JDBC connections. Legacy Migration technologies. Developed the in-house Intranet with a DB2 backend, with Java Servlets on Websphere.
Research Assistant
UNM Computer Science
01/1997 - 12/98
Albuquerque NM
Implemented the "Group Evolvable Processes" component of the CCR project, providing support for group mediated computation in self-evolving groups. Prototyped the design in a web based system with Allegro Common Lisp & CL-HTTP. Principal investigator was David H Ackley. CCR was written in C/C++ with a Tcl/TK GUI.
Teaching Assistant 08/1996 - 01/97
Taught "Non Imperative Programming Languages" to undergrads at UNM. Involved teaching Scheme in labs, and lectures and grading.
Engineer, R&D Software
HCL Consulting, Technologies Division
05/1996 - 08/96
Chennai, India
Formerly the R&D Division of HCL-HP India, HCLT develops systems s/w for offshore clients (DISCOS, Sherpa, NCR, etc.) Work included learning SVR4.2 internals and Unix95 standards, a preliminary design of the HCLT intranet, writing a Perl socketspy, and internal process development for ISO9000 certification.
Software Engineer, Intern
Techlead Software Engineering
01/1996 - 05/96
Pune, India
Techlead developed financial s/w for offshore clients in Jamaica, UK. Worked on RESPLAN, a planning tool targeted at manufacturing industries: I designed and wrote the algorithm to priority-schedule operations on shop floors. Developed on Win95/VB4. Also set up samba to integrate networks, a httpd-1.3 webserver with Perl, and the inhouse java chat application.
Selected Project Abstracts 2
Advanced Compilers Fall 2002 UNM CS
Designed and implemented a compiler for a functional language. Included a meta circular interpreter, and passes for conversion to Continuation Passing Style (CPS), Closure Conversions, Unification, and a translator from a typed ML like language (with S-exp syntax) to the core language. Implemented on CMU Common Lisp 18d+ on Linux, using Zebu for parsing.
Simulations in Physics and Computation Spring 2002 UNM CS
Implemented computer simulations of `Critical Phenomena and Phase Transitions' in Ising models, percolation models, sand pile models, and in random instances of NP complete problems including 3-SAT and graph colourability. Simulations are implemented in CMU Common Lisp (18d+) with a McCLIM GUI.
Parallel Algorithms Spring 2002 UNM CS
Theoretical project studying inherent non-parallellizability of graph algorithms. Proposed a faster non-efficient algorithm for converting Finite Automata (DFA to NFA). Motivated by a potential application in constructing `dataguides' for XML (semi structured) databases [Fall] Attended a seminar course on advanced topics.
Special Topics in Highspeed Networking Spring 2002, 98 UNM CS
[2002] Simulated offloading the IPSEC layer of the TCP/IP protocol stack to the NIC by shunting protocol processing to one CPU of dual SMP Linux (2.4 kernel) boxes in an Intel e1000 Ethernet network. Designed and implemented the experimental environment and measured performance. [1998] Worked on a kernel module to implement the Scheduled Transfer Protocol on Gigabit-Essential/Myrinet Ethernet cards for Linux, by computing physical addresses for DMA transfers that bypass the OS.
Scatter Codes in Genetic Algorithms Fall 1997, UNM CS
Implemented GAs with scatter encodings (a Bit-string encoding from linear space with exponential capacity) to assess its fitness in function optimization: concluded that landscapes are easier to search than with binary/gray encodings by looking at fitness distance correlations on many problems (Env: Allegro Common Lisp, GECO with C foreign function interface)
Undergraduate Thesis I sem 1995-96 BITS
`Distributed Computing: Programming Distributed Applications.' Surveyed concurrent object technology for distributed memory problems. Implemented a version of the Traveling Salesman in PVM as proof of concept for a parallel formulation of branch and bound using dynamic work allocation and adaptive cut-off depths. Principal advisor was Dr. K.R.V.Subramanian.
Campus wide Networking I sem 1995-96 BITS
As a part of the LAN admin project at BITS, my work was on the initial design of the network, implementing a firewall, configuring machines and applications, after setting up the first VSAT connection to the Internet. Configured Sendmail-8.6, Bind-4.9 Smail-3.29 + Uucp, etc.
Chaos and Turbulence I sem 1994-95 BITS
For a project for the Chemical Dept. studying those problems, Wrote HOG: A programmable Graphics Interpreter, on the lines of HOC, for specifying IFS dynamical systems simulations. (Env: Linux-1.1.59, Gcc-2.5.8, Svgalib)
Graph Layout Algorithms II sem 1993-94 BITS
Part of the TROOP (Tools for Re-engineering and Object Oriented Programming) project, implemented two of four passes of a graph layout algorithm. Implemented in C++ on Linux.
Relevant Course work
Design of Software Systems
Advanced S/W Engg: Peopleware
Patterns, Components in S/W Design
Advanced Databases
Operating System Principles
Programming Paradigms
Advanced Parallel Algorithms
Algorithm Heuristics
Combinatorics & Discrete Math
Geometric & Probabilistic.methods
Theory of Computation
Advanced Compilers
References&GPA: On request Availability: Immediate

1) MS. May 2003
2) Link to some older science projects.
3) I-140(08/01)