## BIO
* * *
### <u>Objective</u>
To participate in the test-driven design and development of robust and bug-free software, in a position that utilizes my extensive hands-on experience with technologies like Java, Scala, Ruby, XML, Object Orientation, Concurrent Programming, Network Programming, Security, RDBMSs, AI, Intelligent Agent Systems, Rule Based Systems, and Genetic Algorithms.
### <u>Summary</u>
I am a software engineer with over 10 years of Java experience. In my 15+ years of working in the software industry, I have worked with technologies like Concurrent Programming, Network Programming, Security, Databases, XML, Genetic Algorithms, MultiAgent Systems, Artificial Intelligence, J2EE, Web Services, Device Drivers, and 2D/3D Graphics. During this time, I have done high quality research in a variety of areas, and have developed widely used products and customized software for companies in USA, Europe, and India. I have written articles for popular programming magazines like Dr. Dobbs Journal and Java Report. I also have three patents pending against my name.
### <u>Skill Set</u>
* Languages: Java, Scala, Ruby, Pnuts, SQL, Prolog, C++, C, Scheme
* Operating Systems: Windows XP, Linux, Solaris, AIX, HPUX, Windows 2000, Windows NT, Windows 98/95, Windows 3.1, OS/2, DOS
* Tools/Products: Eclipse, JUnit, OptimizeIt, JProfiler, util.Concurrent, HiveMind, Ant, Antlr, Saxon, CVS, VSS, JavaGroups, Apache (httpd), Emacs, Vi
* Java:
* Core: Generics, Collections, Concurrency, Networking, NIO, RMI, ClassLoaders, JMX etc.
* Server Side: EJB, JSP, Servlets, J2EE, JMS, Tomcat, Resin, JBoss, Weblogic, Weblogic Portal
* IoC Containers: Hivemind
* Development of AppServer and Clustering technologies
* XML Parsing (DOM, SAX, JDOM, JAXP), XSLT based transformations
* Language Recognition/Parsing with Antlr
* JavaSpaces, Jini
* Security: JSSE, Certicom SSL toolkit, SSL/TLS, JCE, Symmetric Encryption, Public key Cryptography, PKI, X.509
* AI: Genetic Algorithms (am working on a soon-to-be-released open-source GA toolkit called Jeeva), Logic Programming in Prolog (have implemented a pure-Java Prolog engine); Expert Systems (Jess); Machine Learning (RL, Neural-Nets, Decision Trees); Intelligent Agents
* Intelligent Agents: AgentOS, Cougaar, Decaf
* Design: Object Oriented Analysis and Design (UML, Booch, Rumbaugh); Object Oriented Design Heuristics, Patterns and Idioms; Concurrent Algorithm Design
* Relational Databases: Mysql, Oracle, MS SQL Server
* O/R Mapping: Toplink, Hibernate, JDO
* Programming Paradigms: Rule based Programming with Prolog/Jess; Generic Programming with C++ (STL Based); Functional programming with Scheme
* Windows: Kernel Mode Drivers In C++ and C, OLE, COM, DCOM, Win32, MFC, OWL, OpenGL, Threading Models, Network Programming
* Scientific Computing: Implementation of Numerical Methods from scratch in C (Crank-Nicolson, Spline Interpolation, Gauss-Jordan Elimination, Simpson's Rule, Runge-Kutta Etc.)
* Geometry/3D Graphics: OpenGL, Parallel Geometry Algorithms
### <u>Work Experience</u>
**04/2007–Present**
*Freelance Software Developer
Irving, TX*
**Job description:** Working on various projects as a freelance developer:
**01/2003–03/2007**
*Sterling Commerce
Irving, TX*
**Position:** Lead Software Developer
**Job description:** I worked on multiple (Java-based) products at Sterling Commerce:
* I was the Tech Lead for a product called the <a href= "http://www.sterlingcommerce.com/Products/AllProducts/Connect/secureproxy.htm"> Sterling Secure Proxy</a> (SSP v2.0). SSP is a proxy server that resides in a network DMZ - and allows enterprises to securely expose their <a href= "http://www.sterlingcommerce.com/Products/AllProducts/Connect/direct.html"> Connect:Direct</a> and <a href= "http://www.sterlingcommerce.com/Products/AllProducts/Gentran/integrationsuite.html"> GIS</a> deployments to Trading partners across the Internet. This work included:
* * The Design and Development of:
* * A highly scalable NIO based Proxy-framework that was used to power the HTTP and FTP proxies.
* A Ruby/curl based automated system-test tool for the Product (to augment JUnit based unit-tests).
* SSL/Proxy Performance Evaluation and Tuning:
* * Benchmarking on various Hardware/OS combinations.
* PKCS11/Hardware based Crypto acceleration.
* Development of a JNI wrapper to tap into C/OpenSSL based Crypto acceleration (demonstrated 2x Crypto performance improvement).
* Development of a lightweight NIO based replacement for the networking layer in the Proxy (demonstrated 2x - 5x throughput improvement).
* I was the Tech Lead for a product called the Sterling External Authentication Server (SterlingEAS). SterlingEAS is a Security product that is used by other Sterling Commerce products <a href= "http://www.sterlingcommerce.com/Products/AllProducts/Connect/">within the Connect family</a> for things like user-authentication and X509 certificate validation. This work has included:
* * Coming up with an extensible/scalable Product Architecture.
* Managing the Iterative and Test-driven development of the Product.
* The Design and Development of:
* * The microkernel based infrastructure for the Product.
* A (highly scalable) network-server NIO based subsystem.
* Integration of SSL with NIO using SSLEngine (with Java 5.0)
* An XML<->Object conversion layer.
* A Pnuts based automated system-test tool for the Product (to augment the JUnit based unit-tests).
* I was the sole developer for a new product called <a href= "http://www.stercomm.com/Products/AllProducts/Connect/directselect.html"> Connect:Direct Select</a> that was released in mid-2004. This product is a lightweight Java version of Sterling Commerce's flagship data transfer product called <a href= "http://www.sterlingcommerce.com/Products/AllProducts/Connect/direct.html"> Connect:Direct</a>. Being the sole developer, I was responsible for all the activities of the product development lifecycle - Requir
## Area of Expertise
Java, Security, Network Programming, Concurrency/Threading, Artificial Intelligence, RDBMSs, XML