Summary
- 20 years of software engineering experience spanning web, desktop, and mobile systems
- Ph.D. in Computer Science with a focus on software engineering, software architecture, and process (details)
- Award-winning research in the areas of changing software during runtime and software architecture
- 15 peer-reviewed publications, 10 patents issued, and 17 pending patents
Professional Experience
Founder, Dynamic Variable LLC & Launch21 LLC, 2006 to present
As an engineering consultant, I have lead the design and implementation of a wide range of systems, spanning web-based applications, Windows and OS X applications, and iPhone applications.
Major projects include:
Health123, 2011
I designed and implemented the website, from wireframes thru the first friends-and-family release. Technology: Ruby on RailsA Story Before Bed, Jackson Fish Market, 2009-2011
I designed and implemented significant new functionality spanning the website and iOS, including the ability to record stories on the iPad2, synchronize recordings to the website, and integration with Apple's subscription system. Technology: iOS, Ruby on RailsKing of the Web, 2010
I designed and implemented significant components for their first public beta, including authentication, user profiles, the newsfeed, and user notifications. Technology: Ruby on RailsMattel, 2010
I designed and implemented 2 iOS apps for Mattel: Barbie Fashionistas (iPad and iPhone) and Barbie "I Can Be" (iPad and iPhone)
Technology: iOSWindows Live Mesh, Microsoft Corp., 2010
I was the principal engineer of the networking and cryptography components of the Macintosh Mesh client. Major facets of my work included: reviewing system design, implementing the security stack, implementing the peer-to-peer networking stack, and porting code from Windows to the Mac.
Technology: Objective-C, C++, Cocoa, Apple CSP, SSL-based encryption, async networkingDecho, 2009
I designed and implemented a prototype web application and a Ruby library. Technology: Ruby, Ruby on Rails, JavaScript, Prototype.jsWindows Live Sync, Microsoft Corp., 2008
I was the principal engineer for the Macintosh version of Sync, a peer-to-peer file sharing application. Major facets of my work included: implementing the security stack, integrating with Microsoft LiveID, usability improvements, improving source code quality, and improving build automation tools.
Technology: Objective-C, Cocoa, Apple CSP APIs, SSL-based encryption, networkingXenAdmin, XenSource, 2007
My colleague and I were the principal designers and engineers of XenAdmin, XenSource's principal tool for managing virtual-machine server clusters. Our work spanned scoping the project, to determining feature sets, to architecting and implementing several critical aspects of the product, and to hiring full-time engineers to take over the project once version 1.0 was complete.
Technology: C#, .NET, Xen Server, OCamlTafiti, Microsoft Corp. 2007
I implemented major aspects of Tafiti, which was an experimental user interface for Microsoft's "Live" search engine built using "Silverlight", a Flash-like technology. It featured a "carousel" to switch between search domains, a "shelf" for saving search results, and rich, fluid animations. Tafiti was one of the first real-world applications built with Silverlight.
Technology: Silverlight, JavaScript, C#, ASP.NET, Live Search, SQL Server
Lead software engineer and technical lead, Microsoft Corp., 2001 to 2005
Windows Explorer As lead software engineer, I designed and implemented next generation communications and collaboration services for Windows that aimed to unify the numerous services providing user presence, instant messaging, telephony, audio/video chat, file transfer and file sharing into a single, integrated user experience.
Microsoft Max As technical lead and senior software engineer, I designed and implemented the product's networking stack, spanning client- and server-components.
Senior software engineer, Endeavors Technologies, Inc., 2001
Rainier I designed and implemented a peer-to-peer search engine that supported a broad spectrum of topologies, from peers crawling and indexing their own content (i.e., fully decentralized) to a distinguished peer responsible for crawling and indexing the entire network (i.e., fully centralized).
Scales I designed and implemented a highly-componentized, message-based HTTP server for embedded systems that supported dynamic self-reconfiguration, enabling new protocols and extensions to be loaded on-the-fly. Scales initially ran on the Palm Pilot.
Co-founder and principal software engineer, KnowNow, Inc., 1999 to 2000
I designed and implemented an open Web-based platform for two-way, event-based communication in support of low-latency event notifications. The service intelligently routed events to an appropriate personal communication device based on numerous factors. I designed and implemented our initial proof-of-concept system and planned features and development schedules. Our business plan won First Place in Garage.com's first annual PLANedu business plan competition.
Graduate student researcher, University of California at Irvine, 1995 to 2000
My research focused on using software architectural models as the basis for system design, analysis, code generation, system assembly and distribution, runtime monitoring and debugging, and runtime evolution.
Member, Evolutionary Design of Complex Systems Project
Member, Architecture-centric Dynamic Adaptation of Deeply Networked Embedded Systems Project
Member, Proteus: Assessment and Adaptation through Dynamic Architecture Technology Project
Co-founder, Gamut Imaging, 1997 to 1999
I designed, implemented, and marketed applications for the PhotoCD marketplace.
Research intern, Apple Computer, Summer 1995
I interned in Jim Spohrer's Advanced Technology Research Group. I studied multimedia scripting languages and language translation and implemented a prototype translator between Apple's SK8 multimedia authoring environment and Kaleida's ScriptX platform.
Education
Doctor of Philosophy (March 2000)
University of California, Irvine
School of Information and Computer Science
Dissertation: Open-architecture Software: A Flexible Approach to Decentralized Software Evolution (details)
Master of Science (June 1995)
University of California, Irvine
School of Information and Computer Science
Bachelor of Science (June 1993)
University of California, Irvine
School of Information and Computer Science
Honors and Awards
Most Influential Paper Award, International Conference on Software Engineering, May 2008. The award recognized my 1998 paper, Architecture-based Runtime Software Evolution, for having the most influence on the theory or practice of software engineering ten years after its publication. As a result, my co-authors and I were invited to give a talk and submit a paper at the 2008 conference. [Details]
Patents
Issued [Details]
- 7,730,134 Contact sidebar tile
- 7,730,131 Controlling publication of presence information
- 7,698,307 System and method for synchronizing between a file system and presence of contacts on a network
- 7,607,096 System and method for a user interface directed to discovering and publishing presence information on a network
- 7,593,988 Systems and methods for multiparty session invite
- 7,437,566 System and method for identity confirmation of a contact published on a network
- 7,433,920 Contact sidebar tile
- 7,379,963 Delivery of any type of information to anyone anytime anywhere
- 7,216,147 Controlling publication of presence information
- 7,185,285 User interface and content enhancements for real-time communication
Pending [Details]
- 20100235761 Contact Sidebar Tile
- 20090030998 Contact Sidebar Tile
- 20080189388 Delivery of Any Type of Information to Anyone Anytime Anywhere
- 20070165819 Controlling Publication of Presence Information
- 20060069727 System and method for synchronizing between an instant messenger client and a central contact store
- 20060047747 System and method for automatic selection of an instant messenger client
- 20050246636 System and method for a user interface that provides contact-based sharing of resources
- 20050246544 System and method for identity confirmation of a contact published on a network
- 20050246421 System and method for discovering and publishing of presence information on a network
- 20050246396 System and method for synchronizing between a file system and presence of contacts on a network
- 20050246369 System and method for a user interface directed to discovering and publishing presence information on a network
- 20050091314 Contact sidebar tile
- 20050091301 Systems and methods for multiparty session invite
- 20040193686 Controlling publication of presence information
- 20040172452 Service provider model for real-time services
- 20040162883 Prioritization of real-time communication addresses
- 20040162877 User interface and content enhancements for real-time communication
Publications
For a list of publications with citation counts, please see Google Scholar.
Refereed Journal Articles
Peyman Oreizy, Michael M. Gorlick, Richard N. Taylor, Dennis Heimbigner, Gregory Johnson, Nenad Medvidovic, Alex Quilici, David S. Rosenblum, and Alexander L. Wolf. "An architecture-based approach to self-adaptive software". IEEE Intelligent Systems, vol. 14, no. 3, pages 54-62. May/June 1999.
Peyman Oreizy, Richard N. Taylor. "On the role of software architectures in runtime system reconfiguration". IEE Proceedings—Software, vol. 145, no. 5, October 1998. This paper is a revised version of the ICCDS 1998 paper.
Roy T. Fielding, E. James Whitehead Jr., Kenneth M. Anderson, Gregory A. Bolcer, Peyman Oriezy, Richard N. Taylor. "Support for the Virtual Enterprise: Web-based Development of Complex Information Products". Communication of the ACM, vol. 41, no. 8, pages 84-92. August, 1998.
Richard N. Taylor, Nenad Medvidovic, Kenneth M. Anderson, E. James Whitehead, Jr., Jason E. Robbins, Kari A. Nies, Peyman Oreizy, Deborah L. Dubrow. "A component- and message-based architectural style for GUI software". IEEE Transactions on Software Engineering, vol. 22, no. 6, pages 390-406. June 1996.
Refereed Conference Publications
Richard N. Taylor, Nenad Medvidovic, Peyman Oreizy. "Architectural Styles for Runtime Software Adaptation", Joint Working IEEE/IFIP Conference on Software Architecture 2009 & European Conference on Software Architecture 2009.
Peyman Oreizy, Nenad Medvidovic, Richard N. Taylor. "Architecture-based runtime software evolution". Proceedings of the International Conference on Software Engineering 1998 (ICSE 1998), pages 177-186, Kyoto, Japan, April 19-25, 1998. This paper was awarded the "Most Influential Paper of ICSE 1998" ten years after its publication.
Peyman Oreizy. "Issues in Modeling and Analyzing Dynamic Software Architectures". Proceedings of the International Workshop on the Role of Software Architecture in Testing and Analysis, Marsala, Sicily, Italy. June 30 - July 3, 1998.
Peyman Oreizy, Richard N. Taylor. "On the Role of Software Architectures in Runtime System Reconfiguration". Proceedings of the Fourth International Conference on Configurable Distributed Systems (ICCDS 4), pages 61-70, Annapolis, Maryland, May 4-6, 1998.
Nenad Medvidovic, Peyman Oreizy, and Richard N. Taylor. "Reuse of Off-the-Shelf Components in C2-Style Architectures". Proceedings of the 1997 Symposium on Software Reusability (SSR'97), pages 190-198, Boston, MA, May 17-19, 1997. Reprinted in Proceedings of the 1997 International Conference on Software Engineering (ICSE'97), pages 692-700, Boston, MA, May 17-23, 1997. Also reprinted in Software Engineering Notes, vol. 22, no. 3, pages 190-198.
Peyman Oreizy. "Decentralized software evolution". Proceedings of the International Conference on the Principles of Software Evolution (IWPSE 1). Held in conjunction with ICSE’98. Kyoto, Japan. April 20-21, 1998.
Peyman Oreizy and Richard N. Taylor. "Coping with Application Inconsistency in Decentralized Software Evolution". Proceedings of the Second International Conference on the Principles of Software Evolution (IWPSE 2). Fukuoka, Japan. July 16-17, 1999.
Nenad Medvidovic, Peyman Oreizy, Jason E. Robbins, and Richard N. Taylor. "Using Object-Oriented Typing to Support Architectural Design in the C2 Style". Proceedings of the Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE4), pages 24-32, San Francisco, CA, October 16-18, 1996. Reprinted in Software Engineering Notes, vol. 21, no. 6, pages 24-32, November 1996.
Peyman Oreizy, Nenad Medvidovic, Richard N. Taylor, David S. Rosenblum. "Software Architecture and Component Technologies: Bridging the Gap". Proceedings of the OMG-DARPA Workshop on Compositional Software Architectures, Monterey, CA, January 6-8, 1998.
Richard N. Taylor, Nenad Medvidovic, and Peyman Oreizy. "Architectural Implications of Common Operator Interfaces" Proceedings of the Ground Systems Architectures Workshop (GSAW 98), El Segundo, CA, February 25-27, 1998.
Peyman Oreizy. "The WWW as an Enabling Technology for Software Engineering". Workshop on Software Engineering and the World Wide Web, held in conjunction with the International Conference on Software Engineering (ICSE 1997), Boston, MA, May 19, 1997.
Invited Publications
Peyman Oreizy, Nenad Medvidovic, Richard N. Taylor. "Runtime Software Adaptation: Framework, Approaches, and Styles". Proceedings of the International Conference on Software Engineering 2008 (ICSE 2008), Leipzig, Germany, May 10-18, 2008. Invited paper.
Peyman Oreizy, Gail Kaiser. "The Web as Enabling Technology for Software Development and Distribution". IEEE Internet Computing, Column on Collaborative Work, vol. 1, no. 6, pages 84-87, November/Decement 1997. This article is a revised and updated version of the workshop paper that appeared at the Workshop on Software Engineering and the World Wide Web.
Non-refereed Technical Reports
Peyman Oreizy , David S. Rosenblum, Richard N. Taylor, "On the Role of Connectors in Modeling and Implementing Software Architectures", Technical Report UCI-ICS-98-04, Department of Information and Computer Science, University of California, Irvine, February 1998.
Peyman Oreizy. "Issues in the Runtime Modification of Software Architectures", Technical Report UCI-ICS-96-35, Department of Information and Computer Science, University of California, Irvine, August 1996.
Roy T. Fielding, E. James Whitehead Jr., Kenneth M. Anderson, Gregory A. Bolcer, Peyman Oriezy, Richard N. Taylor. "Software Engineering and the WWW: The Cobbler's Barefoot Children, Revisted". UCI Technical Report 96-53. November 1, 1996.
Dissertation
Open-architecture Software: A Flexible Approach to Decentralized Software Evolution
Committee:
- Richard N. Taylor, UC Irvine (chair)
- David S. Rosenblum, University College London
- David Notkin, University of Washington
My dissertation describes a novel way of constructing software systems that are easy for third-party developers to change. The crux of the technique is to expose the software system's architectural model (i.e., its component parts, their interconnections, and the implementation mapping) as an explicit and malleable part of the software package. Third-parties can alter this model (by adding and removing components and altering their interconnections) -- thereby changing the corresponding implementation -- to adapt the system for their needs. My dissertation also describes a framework for comparing other such techniques, including APIs, plug-ins, open-source software, and event-based systems.
In 2008, Roy Fielding (of REST fame) gave a really nice keynote talk that discussed my dissertation work in the context of open-source software. You can watch a recording of Roy's talk titled "Open Architecture".
Research Systems
ArchStudio ArchStudio was the first software development environment to use software architectural models as the basis for system design, analysis, implementation and code generation, system assembly, runtime monitoring and debugging, and runtime evolution. ArchStudio was built as a team project, integrating several systems into an integrated environment. Programming done in Java.
ArchShell ArchShell pioneered the use of software architectures as the basis for runtime software evolution and dynamic adaptation (1996). By relating and deploying an application's architectural model with its executable components, the tool enabled made changes to one representation to effect corresponding changes to the other. Programming done in Java.
Research Grants
Proteus: Assessment and Adaptation through Dynamic Architecture Technology, Richard N. Taylor, David S. Rosenblum, David F. Redmiles, Adriaan W. van der Hoek, Will Tracz, Peyman Oreizy. DASADA Program funded by the Defense Advanced Research Projects Agency (DARPA), 2000-2002, $1.31 million.
Professional Activities
Advisory Roles
- Technical Expert, Dorsey and Whitney LLP, 2008
- Technical Advisor, Endeavors Technology Inc., purchased by Tadpole Technology Plc. in 2000
Reviewer
- IEEE Transactions on Software Engineering 1998-1999
- ACM Transactions on Software Engineering and Methodology 1997-1998
- Software - Practice & Experience 1999
Associations
- Association for Computing Machinery (ACM)
- ACM Special Interest Group on Software Engineering (SIGSOFT)
Last updated June 2010