Following the lean startup & agile development ideas, I'm involved in several projects that might become full-fledged startups sometime. The main projects I'm working on or worked on are listed below - please note that academic prototypes are presented in the research section.
With more than ten years experience from several jobs in the IT industry as well as three years of continuous software development activities, I have acquired in-depth understanding of different technologies and methodologies for the rapid but systematic engineering of software. This knowledge helped me to become more proficient in accomplishing projects in a lean and agile way.
Development of websites using Grails, Groovy, and Java. Typical with the help of Spring Security, Spring Social, Facebook Graph, Twitter, Mail, LiquiBase, and log4j. Usage of libraries for data mining (such as WEKA or KEA) and information retrieval / search (such as Lucene).
Usage of databases such as MySQL, PostgreSQL, hSQLdb, h2, and Derby using the query language SQL (and HQL) via JDBC, Hibernate, and GORM.
Hosting and deployment of web applications on servers using Apache and Tomcat as well as PaaS & IaaS provider such as Amazon AWS, Cloudfoundry, and Heroku.
Development of plugins for the IDE eclipse (OSGI) and for the Grails Framework.
Usage of the Facebook API, Google Maps API, Bing Maps API, Nokia Maps API, OSM Maps API, Youtube API, and Hunch API
Development of native mobile apps with Objective-C for iOS (iPad, iPhone) as well as cross-platform mobile web apps with PhoneGap (incl. jQuery Mobile, HTML5) and native mobile apps with Java for Android.
Usage of Firebug and Developer Tools (IE, Chrome, Safari) with the remote mobile debugging tool Weinre.
Usage of plugins & APIs for Barcode Scanning, Google Maps, etc.
Methods & Tools
Agile Software Engineering with rapid prototyping and fast evaluation cycles using Scrum, the development environment eclipse (SpringSource Tool Suite and Groovy & Grails Tool Suite), Netbeans, and XCode, the test environment jUnit, the task management with JIRA and Wikis, the modelling with UML (e.g., Topcased or ArgoUML) and the versioning systems Subversion, Git, and CVS.
Continuous Integration and Continuous Deployment / Continuous Delivery of software systems using Jenkins/Hudson, Artifactory, Maven, Gradle, and Tomcat with plugins such as Deploy, Artifactory, Violations, or Grails.
Testing & Debugging
Automated inspection of source code using CodeNarc, Checkstyle, and Findbugs.
Documentation of source code, scripts, and style sheets using CSSDoc, JavaDoc, and Doxygen.
Documentation of data, information, and knowledge using OWL, RDF, and XML. Data Processing of CSV and vCard. Microformats like hCards and hResume.
Microsoft Word, Excel, Powerpoint, Project, Visio, Outlook, MindManager, LaTeX
Photoshop CS4, Illustrator CS4
Jing, Wink, Snag It
Protege (Ontology Editor), Dropbox (File Exchange, Website Hosting), RapidMiner (Data Mining, Web Scraping)
German (mother language), English (fluent)
Solution- and customer-oriented, creative problem solver, reliable, self-motivated, independent worker, hard-working, flexible, team player, strategic thinker, with the ability to abstract.
Ph.D. (Ger: "Dr. rer. nat.") in Software Engineering about the "Context-sensitive Diagnosis of Quality Defects in Object-Oriented Software System". My research was conducted at Fraunhofer IESE and the Research Group Prof. Klaus-Dieter Althoff of the University of Hildesheim, Germany. I was awarded with a magna cum laude.
Master of Computer Science
Master of Computer Science (Ger.: Diplom-Informatiker) with a minor electrical engineering from the Technical University of Kaiserslautern, Germany.
University-entrance diploma (Ger: "Abitur") from the German secondary school qualifying for university admission from the "Berufsbildenden Schule Technik 1" in Ludwigshafen, Germany.
Four-day seminar on Scrum of SAP including an introduction to lean, Scrum basics, and a two-day special on the Scrum Master role (2011).
Nine-day seminar on project management of SAP including stakeholder management, starting projects, project planning, project communication, project monitoring, risc management, negotiation, team management, closing projects, and inter-cultural projects (2010).
One-day seminar on entrepeneurship (Ger: "Existenzgründerseminar") of BIC Kaiserslautern including an introduction to business plans, financing, legal and marketing (2008).
Three-day seminar on entrepreneurial management (Ger: "Aufbauseminar für unternehmerische Führungskräfte") of [LP]Group including an introduction to benchmarking, financial controlling, negotiation, leadership, and strategic repositioning (2007).
Four-day seminar on the management of IT projects (Ger: "IT-Projekt Management") of Fraunhofer and PC Plus including an introduction to IT projects, project organization, controlling projects, and leadership (2005).
Four-day seminar on developing eclipse plugins (Ger: "Eclipse Plugin Entwicklung") of Innoopract including an introduction to the structure of plugins and feature, extension points, editors, views, wizards, marker, and code assist (2003).
I'm an Freelancer in the field Software Engineering from Germany interested in the development of new software systems and building innovative prototypes or proof of concepts. After almost 10 years in applied research I'm working now as a freelancing software engineer and conducted the following projects:
Website for Licence Management (May 2012 - June 2013 / ongoing) In this project I was commissioned to prepare and participate in the development of a web-based system for licence management. The new system was envisioned as a standard product that could be configured for the needs of a customer and replace several existing legacy systems that where developed for different customers. Beside the evaluation of Grails for the use as the base technology the project needed the setup of a lean development environment using Scrum as well as the continuous testing, integration and deploying using Jenkins.
I'm always driven to create new things - either in form of empircal research or usable software. To support my entrepreneurial activities I founded the following company that acts as a shelter for my projects and future startups.
Founder and CEO of Semantic Technologies: Semantic Technologies is working on web applications and technologies in the area of Web 2.0, Web 3.0 and the Semantic Web. Core technology is our social semantic network xomni, which is used to build modern social networks for other companies, organizations, or societies. My tasks are the development of the business, the marketing campaigns for the initial product xomni, and the technical development of the plattform xomni.
After university I was interested in research (esp. software engineering) and worked for several research organizations in Germany. My jobs were mostly concerned with researching in the Area of Software Engineering and managing research projects. During this time I wrote and acquired funding from organizations such as the EU, the BMBF (Germany), or Fraunhofer.
Project Manager and Senior Scientist at SAP Research: SAP Research is the global technology research and innovation unit of SAP, with a network of 19 research locations worldwide. By exploring emerging IT trends, SAP Research significantly drives innovation for SAP and its ecosystem. Activities span from collaborative research with academic partners to co-innovation with industry partners and customers. The best validated results and technologies are further developed into prototypes and potential business opportunities within SAP.
Project Manager and Senior Scientist at Fraunhofer IESE: The Fraunhofer Institute for Experimental Software Engineering (IESE) is involved in research and development in all areas related to the systematic engineering of software. The IESE is a bridge between basic research and the practice with the main objective to support industrial partners in making quality improvement a part of everyday practice. My tasks were concerned with research in the range software engineering, quality assurance, experience management and knowledge management under the direction of Professor Klaus-Dieter Althoff und Dr. Markus Nick.
Junior Scientist at University of Kaiserslautern: The research group "Software Engineering" (AGSE) of Prof. Dieter Rombach at the Technical University of Kaiserslautern is doing basic research in key software engineering areas. My responsibilities were the support and execution of exercises and seminars related to the course "software engineering" as well as the support of student work (practical lectures and theses). Parallel to the work with the research group I cooperated with the department of "Systematic Learning and Improvement" (SLI) of the Fraunhofer Institute for Experimental Software Engineering (IESE).
In my work at the University of Kaiserslautern I had the opportunity to teach in the following lectures:
My research interests focus on the fields Software Engineering and Data Mining (applied to software-documents). In particular I'm interested in software diagnostics (quality assurance), refactoring (software evolution), experience-based resp. pattern-based Software Engineering and model-driven software development (MDSD). More specific I'm working on the diagnosis of quality defects (Antipatterns, Code Smells, Design flaws, etc.), the quality assurance in MDSD, plug-in based software development as well as knowledge discovery in code and defect repositories.
This area of research is concerned with problems in software systems (esp. software products) that have a negative effect on the software quality. Today, a vast number of these defects are known and documented in various communities under various names. Typically, they are collected and described by practitioners and consult-ants and represent condensed experiences from multiple projects they were involved in. A systematic literature review conducted in 2007 revealed 43 different names that were used in the literature to describe these kind of problems - 22 of them with larger collections of quality defects.
The term "quality defect" is used as an umbrella term for the concepts antipattern, smell, flaw, pitfall, bug pattern, defect pattern, negative pattern, (bad) heuristic, (bad) characteristic, antiidiom, (design) problem, (design) defect, refactoring candidate, puzzlers, traps, anomalies, and many more (typically with an additional focus on a quality aspect, development phase, or abstraction level, e.g., performance antipatterns, test smells, or architectural anomalies) that have a negative effect on a quality aspect (e.g., maintainability, efficiency, or reusability).
Model-driven software development (MDSD) focuses on the idea of constructing software systems not by programming in a specific programming language but by designing models that are translated into executable software systems by generators. In theory, this process makes it unnecessary to care for an executable system's quality, as it is "optimized" by the generators. However, the designed models are also a work product that requires a minimal set of quality aspects (e.g., the maintainability of models over a longer life-time).
The goals of quality assurance for model-driven software development are diverse and include the improvement of quality aspects such as maintainability, reusability, security, or performance. Quality assurance for model-driven software development will play an important role for the future wide-spread usage of model-driven architectures in general, as well as in specific application domains.
Intelligent assistance in software engineering is a relatively old research field that is nevertheless of high interest for software engineers today. Giving support to the software engineers in programming, design, requirements, or other software-related environments is necessary, as the work product is typically very complex, large, and influenced by many persons. The core objective of intelligent assistance is to enable and improve the automation, insight, and interaction with a software system through an IDE. One main topic for intelligent assistance was the context-specific diagnosis of quality defects during development.
Object oriented source code occurs in diverse programming languages with documentation using miscellaneous standards, comments in individual styles, or associated test cases that are hard to exploit through information retrieval or knowledge discovery techniques. Typically, the information about object-oriented source code for a software system is distributed across several different sources, which makes processing complex.
This area of research is concerned with problems regarding the retrieval, mining, and interconnection of all information concerning a software system.
Jörg Rech is an entrepreneur as well as project manager and senior scientist at SAP Research Karlsruhe, Germany. Contact him at Joerg.Rech@gmail.com.
Jörg Rech is an entrepreneur and founder of the company Semantic Technologies, which is working on systems in the area of Web 2.0, Web 3.0 and the Semantic Web. Currently, he works as a senior scientist and project manager at SAP Research Karlsruhe, after managing several research projects at Fraunhofer IESE and the University of Kaiserslautern. He received a Ph.D. in Quality Defect Diagnosis from the University of Hildesheim and a M.S. (Diplom) in computer science from the University of Kaiserslautern. His research mainly concerned software engineering, semantic technologies, knowledge management, and data mining, where he published over fourty papers. Contact him at Joerg.Rech@gmail.com.
Jörg Rech is a senior scientist and project manager at SAP Research Karlsruhe, Germany. He was a scientist and project manager at Fraunhofer IESE in Kaiserslautern and a research assistant at the software engineering research group (AGSE) of Prof. Dieter Rombach. Jörg received his Ph.D from the University of Hildesheim, Germany and his BSc (Vordiplom) his MSc (Diplom) in computer science with a minor in electrical science from the University of Kaiserslautern, Germany. His research mainly concerns context-sensitive diagnosis of quality-defects, their refactoring and treatment, semantic technologies in software organizations, experience and knowledge management, knowledge patterns, and software engineering, with a focus on model-driven software engineering. Previously he also researched code mining and code retrieval. Jörg authored over 40 international journal articles, book chapters, and refereed conference papers, mainly on software engineering and knowledge management, edited several books in the domain of software engineering and knowledge management, was the speaker of the GI working group on architectural and design patterns, and is a member of the German Computer Society (Gesellschaft für Informatik, GI).Contact him at Joerg.Rech@gmail.com.
Dr. Jörg Rech is a senior scientist and project manager at SAP Research Karlsruhe, the global technology research and innovation unit of SAP, in Germany. Previously, he worked for Fraunhofer IESE in Kaiserslautern and the University of Kaiserslautern, Germany. Dr. Rech worked on different German and European research projects in the areas of software engineering and knowledge management. In several industrial projects he was engaged with analyzing, evaluating, and improving the software development process and product for the diagnosis of defects and the indications of improvements. He has consulted for various European companies, including T-Com, empolis, and brainbot. Dr. Rech received his Ph.D from the University of Hildesheim, Germany and his BSc (Vordiplom) his MSc (Diplom) in computer science with a minor in electrical science from the University of Kaiserslautern, Germany. His research mainly concerns the context-sensitive diagnosis of quality-defects, their refactoring and treatment, semantic technologies in software organizations, experience and knowledge management, knowledge patterns, and software engineering, with a focus on model-driven software engineering. Previously he also researched code mining and code retrieval. Dr. Rech authored over 40 international journal articles, book chapters, and refereed conference papers, mainly on software engineering and knowledge management, edited several books in the domain of software engineering and knowledge management, was the speaker of the GI working group on architectural and design patterns, and is a member of the German Computer Society (Gesellschaft für Informatik, GI). Contact him at Joerg.Rech@gmail.com.