Joe currently resides in Urbana, Illiinois. Joseph evolved from the Software Architecture and Patterns group at the University of Illinois. Joe has worked on various projects during his career that has incorporated many technologies. These range from stand-alone to client-server applications, web applications, web services, cloud computing, service oriented architecture, micro-services, multi-tiered, various databases, object-oriented, frameworks, human-computer interaction, collaborative environments, and domain-specific visual-languages. In addition these projects have spanned many domains, including Medical Information Systems, Financial Systems, Ordering, Import, Invoicing, Print, Shipping, Warehouse Management, Manufacturing, Medical Examination, Statistical Analysis, Scenario Planning, Client-Server Relational Database System for keeping track of shared specifications in a multi-user environment, Telecommunications Billing System, and Business & Medical Decision Making.
Joe teaches Agile Methods, Architecture, Design Patterns, Object Design, Refactoring, Being Agile at Quality, and Testing in industrial settings. Additionally Joe has been providing assessments and evaluations, consulting and mentoring people on the above mentioned concepts, along with assisting agile teams in successfully building and deploying various systems. His work has also included deploying frameworks and Domain-Specific Languages for some of his clients.
Joe has presented many tutorials and talks, arranged workshops, given keynotes, and help organized leading technical conferences held throughout the world, including international conferences such as Agile, Agile Brazil, Agile Portugal, Encontro Ágil in Brazil, AOSD, CBSoft, GOTO, JAOO in Denmark, Israel Conference on Software Architecture, JDD in Poland, QCon, PLoP, AsianPLoP, SugarLoafPLoP, OOPSLA, ECOOP, SATURN, SPLASH, and YOW! in Australia. Joe thinks software is still too hard to change. He wants do something about this and believes that with good practices, putting the ability to change software into the hands of the people with the knowledge to change it, and bringing the business side closer to the development process is a promising avenue to solve this problem.

