Irfan Pyarali, PhD
1203 Merrywood Drive
Edison, NJ 08817

Phone: (908) 227-2105

irfan@oomworks.com
http://www.cs.wustl.edu/~irfan


Vita Contents


Education

Doctorate in Computer Science (PhD), Fall 2001
Masters in Computer Science (MS), Spring 1998
Bachelors in Computer Science (BS), Spring 1995
Washington University, St. Louis, MO
Advisors: Dr. Douglas C. Schmidt and Dr. Ron K. Cytron.
Dissertation: Patterns for Providing Real-time Guarantees in DOC Middleware (presentation).


Software Expertise

*       Expert in Distributed, Embedded, Multi-threaded, Real-time Systems (8 years).

*       Guru level proficiency with the CORBA, ACE and TAO (9 years).

*       Specialist in Design Patterns and Object Oriented Analysis, Design and Development (9 years).

*       Intimate knowledge of UNIX / Win32 internals, system calls, networking protocols and IPC (9 years).

*       Master level expertise with C++, Java and C (10 years).

*       Experienced with Component Object Model (COM / DCOM).

*       Tools: UML, STL, IDL, Perl, Configuration Management (CVS), Purify, Quantify, Sybase, SQL 

*       Markup: XML, XSD, DOM, SAX, HTML

*       Operating Systems: Windows, Solaris, Linux, LynxOS, VxWorks T, AIX, BSD, HP-UX


System Development Experience

CitiGroup

New Jersey, January 2005 to Present.

 

OMM, Option Market Making

*       Architected, designed and implemented a quoting engine:

*       Subscribes to many different kinds of market data and conditions.

*       Allows traders to manipulate quoting parameters, both directly and through the database.

*       Evaluates market condition to calculate fair values of options.

*       Calculates quotes when fair value updates; quoting strategies includes defensive, NBBO matched, tight, and stepped backed.

*       Delivers new quotes to exchange if they have changed substantially.

*       Prioritizes quote updates to order messages to the exchange.

*       Challenges included:

·         Handling plethora to market data.

·         Providing low latency, high throughput communications.

·         Scheming efficient queuing and threading strategies.

·         Prioritizing quote updates over limited exchange connectivity.

·         Separating business logic from locking, threading, and communication concerns.

·         Layering protocol stack to increase modularity and substitution.

*       Participated in the implementation of several other trading components:

*       A trading machine that looks for opportunities in the market.

*       A hedging engine to mitigate delta risk accumulated through trading options.

*       A fair value calculation farm that provided option greeks to system.

 

OOMWorks, LLC

New Jersey, January 2002 to January 2005.

 

*       Solstice Integra Enterprise, CORBA Record and Replay:

*       Utilized Portable Interceptors to craft a logging tool to record CORBA requests and replies.

*       CORBA messages are converted into XML and recorded into a SQL database.

*       Replaying recorded messages involves parsing XML and using Dynamic Invocation Interface (DII) to reissue requests.

*       Original replies are compared with replies from replayed requests to ascertain system determinism.

*       Dynamic logging is based on TypeCodes and Dynamic Anys.

*       Static logging is based on automatically generated IDL specific logging code.

 

*       Dynamic Scheduling, Real-time CORBA 2.0:

*       Engineered middleware to enforce QoS requirements of dynamic distributed real-time systems.

*       Devised a framework for scheduling segments in Distributable Threads.

*       Implemented a pluggable scheduler framework to support multiple scheduling disciplines.

*       Modeled scheduling interactions between the ORB, scheduler and application.

 

*       Real-Time Notification Service, Distributed Event Service:

*       Achieved guaranteed end-to-end predictability for anonymous event communication.

*       Used real-time thread lanes to ensure event priority preservation.

*       Performed empirical experiments to verify minimal latency, high throughput and predictable behavior.

 

*       QoS enabled A/V Streaming, Unmanned Aerial Vehicle (UAV):

*       Applied QuO and A/V Streaming to develop a UAV based video distribution application.

*       Utilized QuO QoS contracts, IntServ reservations, DiffServ prioritization, and Real-time CORBA processing to achieve predictable and adaptive end-to-end behavior, even during restrictions in processing power and network bandwidth.

*       Significantly improved network fault-tolerance and QoS by using SCTP instead of TCP or UDP as transport protocol, especially during packet loss and link failures in the network.

 

Distributed Object Computing Laboratory

Washington University, St. Louis, August 1996 to December 2001.

 

*       TAO, Real-time CORBA project:

*       Led architecture design and implementation of many aspects of the ORB including:

·         Providing end-to-end real-time timeliness QoS guarantees.

·         Propagating and preserving priorities end-to-end.

·         Identifying and eliminating sources of unbounded priority inversions.

·         Implementing scalable, predictable, and efficient request demultiplexing and dispatching.

·         Designing several concurrency strategies: thread-pool, thread-per-priority, and leader-follower.

·         Caching, recycling, and purging of network connections.

·         Minimizing resource contention, locking, and memory allocations in critical path.

·         Subsetting and reducing ORB footprint.

·         Managing object and servant lifecycle.

·         Strategizing various time / space tradeoffs.

·         Buffering and batching remote invocations.

*       Contributed to the implementation of the following OMG Services: Naming, Trading, Event, Notification, and Audio/Video Streaming.

 

*       ACE, Adaptive Communication Environment:

*       Implemented several multi-threaded versions of the Reactor pattern, including one for Win32.

*       Ported the OS encapsulation layer of ACE to Win32. This layer includes IPC mechanisms, event multiplexing, concurrency, synchronization, dynamic linking, and memory mapping.

*       Implemented the Proactor pattern that allows applications to use asynchronous I/O.

*       Designed a set of Malloc utilities that work with transient, persistent, or shared memory.

 

*       JAWS, Adaptive Web Server:

*       Re-engineered JAWS to make protocol handlers independent of I/O and concurrency models.

 

*       DOVE, Distributed Object Visualization Environment:

*       Designed online visualization and control of network applications through Java applets.

 

Project Spectrum

Eastman Kodak, St. Louis, May 1995 to August 1996.

 

*       Analyzed a health care delivery system for bulk transport of images, video, and audio data.

*       Designed the architecture to provide location abstraction and high throughput over ATM networks.

*       Modeled the framework to support both synchronous and asynchronous timed data transfers.

 

Three-Tier Application Development

Technology Applications, Inc., St. Louis, January 1993 to September 1994.

 

*       Designed SQL databases using stored procedures/triggers and implemented cross-platform GUI clients.


Teaching Experience

University Courses

*       Java Programming (CST 310): Saint Louis University, Saint Louis, MO, Fall 1998.

*       C Programming (CST 160): Saint Louis University, Saint Louis, MO, Winter 1998.

 

Short Courses

*       Introduction to Distributed Computing: Vertecon, Saint Louis, MO, Spring 2001.

*       Introduction to Java: Islamic Foundation, Saint Louis, MO, Summer 1999.

 

Tutorials

*       A Guided Tour of Real-time CORBA: OMG Workshop, Reston, VA, Summer 2004.

*       Real-time CORBA using TAO: TAO Workshop, Saint Louis, MO, Fall 2001.

*       Patterns for High-performance RT-ORBs: OMG Workshop, Herndon, VA, Summer 2001.

*       Building Predictable Distributed Applications: COOTS, San Antonio, TX, Spring 2001.

 


Book Chapters

  1. Irfan Pyarali, Carlos O'Ryan, and Douglas C. Schmidt, A Pattern Language for Efficient, Predictable, Scalable, and Flexible Dispatching Components, Pattern Language of Program Design 5 (PLoPD 5), (Voelter, Noble, and Manolescu, eds.), Addison-Wesley, Reading, Massachusetts, 2006.
  2. Irfan Pyarali, Tim Harrison, Douglas C. Schmidt, and Thomas Jordan, Proactor: An Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Asynchronous Events, Pattern Languages of Program Design 4 (PLoPD 4), (Harrison, Foote, and Rohnert, eds.), Addison-Wesley, Reading, Massachusetts, 1999.
  3. Irfan Pyarali, Timothy H. Harrison, and Douglas C. Schmidt, Asynchronous Completion Token: An Object Behavioral Pattern for Efficient Asynchronous Event Handling, Pattern Languages of Program Design 3 (PLoPD 3), (Martin, Buschmann, and Riehl, eds.), Addison-Wesley, Reading, Massachusetts, 1997.

Journal Publications

  1. Christopher Gill, Yamuna Krishnamurthy, Douglas C. Schmidt, Irfan Pyarali, Louis Mgeta, Yuanfang Zhang, and Stephen Torri, Enhancing Adaptivity via Standard Dynamic Scheduling Middleware, the Journal of the Brazilian Computer Society (JBCS), special issue on Adaptive Software Systems, 2004.
  2. Carlos O'Ryan, Douglas C. Schmidt, Fred Kuhns, Marina Spivak, Jeff Parsons Irfan Pyarali, and David L. Levine, The Design and Performance of a Real-time CORBA ORB Endsystem, the Journal of Concurrency: Practice and Experience, special issue on Distributed Objects and Applications, Wiley and Sons, 2000.
  3. Irfan Pyarali, Carlos O'Ryan, Douglas C. Schmidt, Nanbor Wang, Vishal Kachroo, and Aniruddha Gokhale, Applying Optimization Principle Patterns to Real-time ORBs, IEEE Concurrency, Object-Oriented Systems Track, edited by Murthy Devarakonda, Volume 8, Number 1, January-March 2000.
  4. James Hu, Irfan Pyarali, and Douglas C. Schmidt, The Object-Oriented Design and Performance of JAWS: A High-performance Web Server Optimized for High-speed Networks, the Parallel and Distributed Computing Practices Journal, special issue on Distributed Object-Oriented Systems, edited by Maria Cobb, 2000.
  5. Irfan Pyarali and Douglas C. Schmidt, An Overview of the CORBA Portable Object Adapter, special issue on CORBA in the ACM StandardView, Volume 6, Number 1, March 1998.
  6. Irfan Pyarali, Douglas C. Schmidt, and Tim Harrison, Design and Performance of an Object-Oriented Framework for High-Speed Electronic Medical Imaging, USENIX Computing Systems, Volume 9, Number 4, November-December 1996.

Conference Publications

  1. Pradeep Gore, Irfan Pyarali, Douglas C. Schmidt, and Chris Gill, The Design and Performance of a Real-time Notification Service, proceedings of the 10th IEEE Real-time Technology and Application Symposium (RTAS '04) in Toronto, Canada, May 2004.
  2. Yamuna Krishnamurthy, Irfan Pyarali, Chris Gill, Douglas C. Schmidt, Louis Mgeta, Yuanfang Zhang, and Stephen Torri, The Design and Performance of Real-time CORBA 2.0: Dynamic Scheduling in TAO, proceedings of the 10th IEEE Real-time Technology and Application Symposium (RTAS '04) in Toronto, Canada, May 2004.
  3. David A. Karr, Craig Rodrigues, Joseph P. Loyall, Richard E. Schantz, Yamuna Krishnamurthy, Irfan Pyarali, and Douglas C. Schmidt, Application of the QuO Quality-of-Service Framework to a Distributed Video Application, proceedings of the 3rd International Symposium on Distributed Objects & Applications (DOA '01) in Rome, Italy, September 2001.
  4. Irfan Pyarali, Marina Spivak, Douglas C. Schmidt, and Ron Cytron, Optimizing Thread-Pool Strategies for Real-Time CORBA, proceedings of the ACM SIGPLAN Workshop on Optimization of Middleware and Distributed Systems (OM '01) in Snowbird, Utah, June 2001.
  5. Irfan Pyarali, Carlos O'Ryan, and Douglas C. Schmidt, Patterns for Efficient, Predictable, Scalable, and Flexible Dispatching Components, proceedings of the 7th Pattern Languages of Programs Conference (PLoP '00) in Allerton Park, Illinois, August 2000.
  6. Douglas C. Schmidt, Carlos O'Ryan, Irfan Pyarali, Michael Kircher, and Frank Buschmann, Leader/Followers: A Design Pattern for Efficient Multi-threaded Event Demultiplexing and Dispatching, proceedings of the 7th Pattern Languages of Programs Conference (PLoP '00) in Allerton Park, Illinois, August 2000.
  7. Carlos O'Ryan, Douglas C. Schmidt, Fred Kuhns, Marina Spivak, Jeff Parsons, Irfan Pyarali and David L. Levine, Evaluating Policies and Mechanisms for Supporting Embedded, Real-Time Applications with CORBA 3.0, proceedings of the 6th IEEE Real-Time Technology and Applications Symposium (RTAS '00) in Washington D.C., May-June, 2000.
  8. Irfan Pyarali, Carlos O'Ryan, and Douglas C. Schmidt, A Pattern Language for Efficient, Predictable, Scalable, and Flexible Dispatching Mechanisms for Distributed Object Computing Middleware, proceedings of the IEEE/IFIP International Symposium on Object-Oriented Real-time Distributed Computing (ISORC '00) in Newport Beach, California, March, 2000.
  9. Irfan Pyarali, Carlos O'Ryan, Douglas C. Schmidt, Nanbor Wang, Vishal Kachroo, and Aniruddha Gokhale Applying Optimization Patterns to Design Real-time ORBs, proceedings of the 5th USENIX Conference on Object-Oriented Technologies and Systems (COOTS '99) in San Diego, California, May 1999.
  10. James Hu, Irfan Pyarali, and Douglas C. Schmidt, Applying the Proactor Pattern to High-Performance Web Servers, proceedings of the 10th International Conference on Parallel and Distributed Computing and Systems (IASTED '98) in Las Vegas, Nevada, October 1998.
  11. James Hu, Irfan Pyarali, and Douglas C. Schmidt, Measuring the Impact of Event Dispatching and Concurrency Models on Web Server Performance Over High-speed Networks, proceedings of the 2nd Global Internet Conference (held as part of GLOBECOM '97) in Phoenix, Arizona, November 1997.
  12. Irfan Pyarali, Tim Harrison, Douglas C. Schmidt, and Thomas Jordan, Proactor: An Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Asynchronous Events, proceedings of the 4th Pattern Languages of Programs Conference (PLoP '97) in Allerton Park, Illinois, September 1997.
  13. Irfan Pyarali, Timothy H. Harrison, and Douglas C. Schmidt, Asynchronous Completion Token: An Object Behavioral Pattern for Efficient Asynchronous Event Handling, proceedings of the 3rd Pattern Languages of Programs Conference (PLoP '96) in Allerton Park, Illinois, September 1996.
  14. Irfan Pyarali, Tim Harrison, and Douglas. C. Schmidt, Design and Performance of an Object-Oriented Framework for High-Speed Electronic Medical Imaging, proceedings of the 2nd USENIX Conference on Object-Oriented Technologies and Systems (COOTS '96) in Toronto, Canada, June 1996.
  15. Irfan Pyarali, Timothy H. Harrison, and Douglas C. Schmidt, An Object-Oriented Framework for High-Performance Electronic Medical Imaging, proceedings of the Very High Resolution and Quality Imaging mini-conference at the Symposium on Electronic Imaging in the International Symposia Photonics West 1996, SPIE in San Jose, California, January-February 1996.

Workshop Publications

  1. Yamuna Krishnamurthy, Irfan Pyarali, Christopher Gill, Louis Mgeta, Yuanfang Zhang, Stephen Torri, and Douglas C. Schmidt, Experience Implementing and Evaluating Real-Time CORBA 2.0, OMG's Fifth Workshop On Real-Time And Embedded Distributed Object Computing in Reston, Virginia, July 2004.
  2. Pradeep Gore, Irfan Pyarali, Christopher Gill, and Douglas Schmidt, Design and Performance of a Real-time Notification Service, OMG's Fifth Workshop On Real-Time And Embedded Distributed Object Computing in Reston, Virginia, July 2004.
  3. Yamuna Krishnamurthy, Irfan Pyarali, Craig Rodrigues, Prakash Manghwani, and Gautam H. Thaker, Using SCTP to Improve QoS and Network Fault-Tolerance of DRE Systems, OMG's Fifth Workshop On Real-Time And Embedded Distributed Object Computing in Reston, Virginia, July 2004.
  4. Irfan Pyarali and Yamuna Krishnamurthy, CORBA Record and Replay, 4th Workshop on The ACE ORB (TAO) (TAO '04) in Arlington, Virginia, July 2004.
  5. Yamuna Krishnamurthy, Irfan Pyarali, Christopher D. Gill, and Victor Fay Wolfe, Design and Implementation Issues in the Dynamic Scheduling Real-time CORBA 2.0 Specification, OMG's Forth Workshop On Real-Time And Embedded Distributed Object Computing in Arlington, Virginia, July 2003.
  6. Irfan Pyarali, Achieving End-to-end Predictability in the TAO Real-time CORBA ORB, 2nd Workshop on The ACE ORB (TAO) (TAO '02) in Arlington, Virginia, July 2002.  
  7. Yamuna Krishnamurthy, Irfan Pyarali, Pradeep Gore, and Craig Rodrigues, Using Prioritized Network Traffic to Achieve End-to-End Predictability, OMG's Third Workshop On Real-Time And Embedded Distributed Object Computing in Arlington, Virginia, July 2002.
  8. Irfan Pyarali, Marina Spivak, and Ron Cytron, Evaluating Thread Pool Strategies For Real-time CORBA, OMG's Second Workshop On Real-Time And Embedded Distributed Object Computing in Herndon, Virginia, June 2001.
  9. Craig Rodrigues, David Karr, Yamuna Krishnamurthy, and Irfan Pyarali, QoS Control Of Video Streams Using Quality Objects And The CORBA Audio/Video Service, OMG's Second Workshop On Real-Time And Embedded Distributed Object Computing in Herndon, Virginia, June 2001.

Trade Journal Publications

  1. Douglas C. Schmidt and Irfan Pyarali, Strategies for Implementing POSIX Condition Variables on Win32,