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
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- Irfan Pyarali and Yamuna Krishnamurthy, CORBA Record and Replay, 4th Workshop on The
ACE ORB (TAO) (TAO '04) in Arlington, Virginia,
July 2004.
- 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.
- 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.
- 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.
- 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.
- 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
- Douglas C. Schmidt and Irfan Pyarali, Strategies for Implementing POSIX
Condition Variables on Win32,