Job Title: |
Graduate Computer Scientist, Software Developer, Independent Game Developer
|
Activities: |
Game development, especially multiplayer; Virtual Reality
Software analysis, design and implementation
Code reviews and quality assurance etc.
|
Specialties: |
Development of interactive 3D applications, in particular Virtual Reality (VR), games, game-based learning
for Windows, Mac, Linux, iOS, Android,
SteamVR, Oculus/Meta Quest, Sony PlayStation 5 and PS VR2
(Unity)
Training in the Unity area
Software development in the .NET environment (implementation language: C#)
Software development in the Java environment
Project management
|
Industries: |
Architecture, Events, Cinema Ticketing, Educational Software, Marketing,
Mechanical Engineering, News Services, Insurance, Economic Planning, Entertainment / Games
|
Hourly Rate:
Annual Salary: |
Depending on project scope: €80.00 - €100.00
€90,000.00 |
Availability: |
Available for projects in the games area through my company narayana games UG (limited liability) |
Area of Operation: |
On-site: Munich and surroundings up to 80km west of Munich (e.g., Ammersee, Wörthsee etc.)
Home Office: Worldwide ;-) |
Year of Birth: | 1975 |
Nationality: | German |
Education: |
1994: | High school diploma, overall grade: 2.0 |
from 1996: |
Study of computer science with
minor in communication studies
at the
LMU Munich
|
1998: | Diploma preliminary examination, overall grade: very good |
03/2003: |
Diploma examination (Diploma), overall grade: with distinction (1.0) |
|
Languages: |
German: Native,
English: fluent, translation activities at spiritual seminars
French: school knowledge,
Spanish / Italian: basic knowledge, which likes to get confusingly mixed up |
Professional Experience: |
1990 to 1994 as System Administrator / Consultant: side job alongside school
1995 to 1996 as IT Support: self-employed, full-time
1998 to 2003 as Software Developer: self-employed, alongside studies
2003 to 2015 as Software Developer: self-employed, full-time
2015 to 2021 Founder, Managing Director and "Chief Developer" of
narayana games ug
2021 to 2024 as Virtual Reality Game Developer: for Ramen VR
available from 06/2024 for new tasks |
Other Interests: |
Dolphins and Environmental Protection (see also Sleeping Dolphins - about the spinner dolphins off Hawaii)
Kung Fu and Tai Chi (see also Martial Arts School Ajahn Lao)
Meditation and Consciousness Development
|
Tools: |
Main IDEs / Authoring Tools
- MS Visual Studio 2002-2022 (.NET): all .NET projects since 2003, one C++ project ;-)
- JetBrains Rider
- Unity 2.0-2022.3: all game/real-time 3D projects since 2007
Member of most alpha and beta groups of Unity Technologies
Other IDEs / Tools
(+)
(-)
- Eclipse: all Java projects from 2002
- Borland JBuilder: all Java projects until 2002
- Togethersoft Together: several projects, until 2002
- MS eMbedded VC++: one project
- IBM Visual Age Java: evaluated
- Rational Rose: evaluated
- Prolifics JAM: used for one project
Build Tools
(+)
(-)
Version control
(+)
(-)
- Plastic: current game projects
- Git with Git LFS: current game projects
- Team Foundation Server (TFS): several projects
- Unity Asset Server: several game projects
- Subversion: several projects
- MS Visual Source Safe: several projects
- Subversion: one project (Java / Eclipse)
- CVS: good user knowledge, various frontends, also administration
Performance optimization
(+)
(-)
- Unity Profiler: for all game projects
- JProbe Profiler: used for one project
Other
(+)
(-)
- Dreamweaver: As HTML tool for web design
- Photoshop: Graphic preparations for web and games
- Flash: basic knowledge incl. ActionScript programming, several projects
- Cubase: Music and sound effects for games
- Komplete: Music and sound effects for games
- Cheetah 3D: 3D modeling for games
- Modo: 3D modeling for games
- FaceFX: Lip-sync facial animations
- Final Cut Studio: Preparations of trailers / webcasts for games
- Cosmo Worlds: private use (when VRML was still hip ;-) )
- RealSoft3D: private use
- XEmacs: used as an editor at times
|
Implementation: |
.NET / C#: my favorite ;-) - extensive project experience since 2003
(+)
(-)
- .NET Framework (many projects)
- .NET Compact Framework (for Pocket PC) (2 projects)
- ASP.NET (many projects)
- ADO.NET (many projects)
- NUnit, NUnitASP (one project)
- Visual Studio Team System (VSTS) Unit Tests (several projects)
- Selenium (quality assurance of web interface, one project)
- log4net (all .NET projects)
- NDoc (several .NET projects)
Java (JDK 1.0 to Java 2 SE 1.4, J2ME, J2EE): project experience;
Project experience with the following Java APIs
(+)
(-)
-
Collections Framework: used in almost all Java projects
-
Swing Components: two projects
- J2ME
with MIDP 1.0,
and proprietary extensions by
Nokia
and
Siemens:
two projects;
MMAPI etc., MIDP 2.0, Mobile 3D Graphics API for J2ME:
one project
-
Pluggable Look & Feel: one project
-
JDBC: basic functionality, two projects
-
JavaServer Pages: one project, taglibs only basic knowledge
-
Java Servlet: one project
-
Remote Method Invocation (RMI): one project
-
Java IDL: one project
-
J2EE Client Access Services (J2EETM CAS) COM Bridge 1.0: evaluated
-
JavaMail: one project, basic functionality
-
Java Media Framework: one project, basic functionality
-
Java Advanced Imaging: one project, basic functionality
-
JAXP: several projects, DOM and SAX
- JDOM: several projects
-
Jakarta Log4J: all Java projects from 2001
-
JTidy: one project
-
Jakarta ORO RegExp: one project
-
JUnit: one project, some test cases
-
JIntegra: one project
Small test projects with the following Java APIs
(+)
(-)
C/C++: project experience
(+)
(-)
- Pocket PC 2002
- Win32 API
- Microsoft Foundation Classes (MFC)
- ActiveSync
- Please no inquiries here - others can do this better and have more fun doing it
Other programming languages:
(+)
(-)
- Javascript: Knowledge for HTML-based user interface / Photoshop scripting
- Visual Basic, Visual Basic .NET: project experience (several projects), training
- PERL: basic knowledge, implemented a guestbook a long time ago
- JPL (Jam Prolifics Language): basic knowledge, one project, it's been a long time
- Assembler: academic basic knowledge
|
Analysis / Design: |
Unified Modelling Language
(+)
(-)
- Use Cases: frequently used in projects, analysis
- Class Diagrams: frequently used in projects, all project phases
- Sequence Diagrams: occasionally, with reverse engineering, for documentation
- Collaboration Diagrams: occasionally, with reverse engineering, for documentation
- Statechart Diagrams: occasionally used
- Activity Diagrams: frequently used in projects
- Component Diagrams: occasionally used
- Deployment Diagrams: occasionally used
Special Together Diagrams
(+)
(-)
- Web Application:
used in a project, as an
overview of the UI,
implemented with JSPs and Servlets
|
Databases: |
Query languages
(+)
(-)
- SQL: solid knowledge, including programming of Stored Procedures in Transact-SQL (SQL Server) and PL/SQL (Oracle)
Relational database systems
(+)
(-)
- PostgresQL: as persistence layer for multiplayer game project
- Microsoft SQL Server from 2000: installation, access via JDBC, ADO.NET, schema design including programming of Stored Procedures, various tools
- MySQL from 5.0: installation, setup for use with PHP-based web applications
- Oracle from 8i: installation, access via JDBC, ADO.NET, schema design including programming of Stored Procedures, TOAD
- Sybase SQL Anywhere: installation, access via JDBC, some tools used
- MS Access: several medium-sized projects, Access applications
Object-oriented database systems
(+)
(-)
|
Markup languages: |
- (X)HTML: especially the X - i.e., clean, handwritten HTML
(see below)
- CSS: for formatting of (X)HTML
- XML: developed some DTDs, processing via SAX/DOM/JDOM in Java
- XSL: solid knowledge
- VRML:
private use, with tool support, solid knowledge, but no longer relevant
|
Communication: |
- TCP/IP: academic knowledge of the entire protocol family
(including application protocols HTTP, POP3, SMTP, FTP etc.)
- CORBA: one project
- RMI: two projects
- (D)COM: one project, Java2COM bridge, communication with Delphi application
- ExitGames Photon: one project
- SpatialOS: one Unity project
|
Servers: |
- Microsoft Internet Information Server from 5.0: several projects, ASP.NET web applications, web services
- Apache HTTP Server 1.3, 2.2: administration skills (Linux)
- Jakarta Tomcat 4.0: administration skills, including Apache connection
- JBoss 3.2.3: several projects, simple administration
|
Operating systems: |
- MacOS X: user knowledge
- Windows 95/98/NT/NT-Server/2000/2000-Server/XP/2003 ... 8, 10, 11: administrator knowledge
- MS-DOS: administrator knowledge (lol, I'm that old)
- Unix (HP-UX, Linux, Solaris): user knowledge
|
09/2024-12/2024
Effort: 3 months
|
For Flat2VR Studios: Porting the VR music game Trombone Champ: Unflattened to PS VR2:
- Porting to Sony PlayStation 5 / PS VR2
- Fixing various platform-specific crashes and other errors
- Adapting the Save Game System to platform-specific peculiarities
- Implementation of Achievements / Trophies, Activities, and Leaderboards for PSN / PlayStation 5
- Implementation of platform-specific PS VR2 features: Advanced Haptics, Adaptive Triggers, HMD Rumble
- Successful release after Sony FQA
Tools / APIs / Servers:
- Unity Game Engine: Authoring
- Git: Version control
- ClickUp: Task management
|
03/2021-06/2024
Effort: 3 years
|
For Ramen VR: Console porting of the Virtual Reality MMO Zenith: The Last City:
- Porting to Sony PlayStation 4 / PSVR
- Porting to Sony PlayStation 5 / PS VR2
- Performance and memory optimization
- Development of various gameplay systems both client and server-side
- Team Lead for the engineering team (4 people)
- Implementation of a Microtransactions solution for Virtual Currency on all platforms (Steam, Oculus, PlayStation)
Tools / APIs / Servers:
- Unity Game Engine: Authoring
- ASP.NET Core: Web service for PlayStation Microtransactions
- Plastic SCM: Version control
- ClickUp: Task management
|
03/2015-03/2021
Effort: 6 years
|
Development of the Virtual Reality Rhythm Game Holodance:
- Game design
- Development of the game using the Unity Game Engine
- Production with an international team of about 25 people
- Server-Side Web API using ASP.NET Core
- Release via Steam
- Marketing: creation of trailers, press releases, etc.
Tools / APIs / Servers:
- Unity Game Engine: Authoring
- Git with Git LFS: Version control
References:
|
10/2006-03/2015
Effort: Years,
sometimes full-time,
sometimes 60%
|
Further development of an LMS (Learning Management System):
- Porting individual modules from .NET 1.1 to .NET 2.0, up to .NET 4.5
- Adapting the administration interface to a proprietary administration framework
- Quality assurance through automated testing
- Creation of automatic build scripts with MSBuild and PowerShell
- Enhancements in the seminar management module
- Development of an SQL-based reporting module
- Development of various tools for managing/editing localization files for different clients
- Implementation of new SCORM recommendations (import of learning programs, evaluation of learning progress, etc.)
- Enhancements with AJAX
- Major refactorings both at the business logic and database level to maintain and continuously improve maintainability in a
large project with many, sometimes changing developers
Tools / APIs / Servers:
- MS Visual Studio.NET 2005-2012: Implementation, Debugging (C#/ASP.NET)
- MS SQL Server 2000-2012 (Persistence)
- Team Foundation Server (Version control, Task Management, Bug Tracking)
- Visual Studio Team System (VSTS) Unit Testing (Quality assurance of business logic)
- Selenium (Quality assurance of web interface)
|
09/2013-11/2013
Effort approx. 20 days
|
Development of a company presentation software for touchscreen tables and mobile devices:
- Photoshop scripting to extract texts and images from a multilingual designer template
- Conversion of an existing window-based design in Unity with NGUI
- Design and implementation of a simple "Depth Manager" so that active windows always appear in the foreground and various Z-order issues resulting from the implementation of NGUI are cleverly concealed
- Development of an XML format for controlling the application and localization (multilingualism)
- Implementation of various gestures detection (move / zoom / rotate)
- Incorporation of product videos
Tools:
- MS Visual Studio 2012: Implementation (C#)
- Unity Game Engine: Authoring (later integration of real-time 3D is planned)
- Photoshop / JavaScript: Automated extraction of image and text data into XML for reading in Unity
- Unity Asset Server: Version control
|
08/2013
Effort approx. 5 days
|
Development of an architectural visualization for color selection in a room:
- Measurements taken on-site in a relatively complex room
- Precise modeling of the room in modo
- Integration and lighting of the room in Unity / Lightmapping
- Creation of a simple user interface that allows coloring of various wall segments according to a color chart
- Staging of the room with props (sofas, tables, etc.) from the Unity Asset Store, as well as original images
- Design and implementation of a simple text-based exchange format, so that various variants could be exchanged simply via copy and paste through Google Documents and discussed in a geographically distributed team
- Adjustments as a virtual reality application using Oculus Rift
- "Site supervision": Implementation of the color concept guided and monitored by a painter team
Tools:
- MS Visual Studio 2012: Implementation (C#)
- Unity Game Engine: Authoring
- modo: 3D Modeling
- Unity Asset Server: Version control
|
04/2013-06/2013
Effort approx. 10 days
|
Development of several product visualization demos in the medical and mechanical engineering fields:
- Design of a simple environmental scene for various products
- Inspection camera for mouse control and finger control on mobile devices (Zoom / Pan / Rotate)
- Visualization of an operating table light including control of various rotation possibilities
- Preparation of complex CAD models of devices from a mechanical engineer for real-time 3D, including animations
- Lightmapping for optimal performance with high visual quality
Tools:
- MS Visual Studio 2012: Implementation (C#)
- Unity Game Engine: Authoring
- NGUI: Implementation of the user interface (GUI)
- Unity Asset Server: Version control
|
01/2013-03/2013
Effort approx. 15 days
|
Development of the small RPG demo Resurrect:
- Selection of Art Assets (3D models, music, sound effects, etc.) from Unity Asset Store
- Development of a simple, magic-based combat system with targeting
- Integration of animations via Mecanim
- Development of various visual effects, particle effects, etc.
- Adjustments as a Virtual Reality application using Oculus Rift
Tools:
- MS Visual Studio 2012: Implementation (C#)
- Unity Game Engine: Authoring
- Unity Asset Server: Version control
|
09/2012-08/2023
Effort approx. 40 days
|
Development and marketing of the Unity Extension Score Flash:
- Extraction of a component from existing projects for marketing in the Unity Asset Store
- Extension of the component for the "mass market," including integration into the Unity Editor, development of custom inspectors, etc.
- Integration with tools from various other manufacturers (NGUI, EZ GUI, Playmaker, Text Box)
- Creation of tutorial and marketing videos
- Handling of support requests
- Several smaller consulting projects in the context of this extension
Tools:
- MS Visual Studio 2012: Implementation (C#)
- Unity Game Engine: Authoring
- NGUI: Integration as a rendering option
- EZ GUI: Integration as a rendering option
- Text Box: Integration as a rendering option
- Playmaker: Integration to control the component for non-programmers
- Unity Asset Server: Version control
References:
|
09/2012-10/2012
Effort approx. 12 days
|
Development of the puzzle game Tapuzzle:
- Design of a novel game mechanic for tap puzzle games, inspired by 15-Puzzle, but in 3D
- Implementation of the game mechanics with points and power-ups
- Selection of a collection of motifs
Tools:
- MS Visual Studio 2012: Implementation (C#)
- Unity Game Engine: Authoring
- Unity Asset Server: Version control
|
04/2012-06/2012
Effort approx. 6 days
|
Development of a split-screen JetPack game for a game show:
- 2 players fly through the air and must collect rings on two levels (top/bottom)
- Contributed to the design of webcam-based controls
- Development of a 2.5D "engine" based on Unity
- Development of a Unity extension allowing levels to be designed text-based
- Level design
- Development of the GUI and various effects
- Implementation of all relevant game mechanics
Tools:
- MS Visual Studio 2012: Implementation (C#)
- Unity Game Engine: Authoring
- Unity Asset Server: Version control
|
01/2012-03/2012
Effort approx. 8 days
|
Development of a multiplayer "Pac-Man" variant for a game show:
- 4 vs 1: The original design had 1 player catching 4 players in a maze,
but play-testing revealed that reversing the mechanic (4 players catching 1 player) worked better
- Built upon an existing webcam-controlled project
- Implementation of all relevant game mechanics
- Animation control for characters
- Particle effects / teleporting / collecting coins that appear randomly at different locations
Tools:
- MS Visual Studio 2012: Implementation (C#)
- Unity Game Engine: Authoring
- Unity Asset Server: Version control
|
12/2011
Effort approx. 10 days
|
Development of a demo for game-based learning:
- Selection and integration of engaging 3D characters with facial rigs for character animation (Rocketbox Libraries)
- Development of a Unity extension for designing branching dialogues
- Recording of male and female voice-overs for the dialogue
- Creation of lip-synced character animations for the dialogue using FaceFX
- Creation of an office scene as the setting for the dialogue
- Selection and adaptation of animations
- Dialogue and camera control with a simple user interface
Tools:
- MS Visual Studio 2010: Implementation (C#)
- Unity Game Engine: Authoring
- Unity Asset Server: Version control
- Steinberg Wavelab: Audio recording and processing
- FaceFX: Character animation creation
|
12/2007-11/2011
Effort so far approx. 210 days
|
The project is currently "on hold." A more detailed description will follow upon release.
Development of the multiplayer game Traces of Illumination, based on light cycles ("Tron") / Snake:
- Game design
- Development of the client software using the Unity Game Engine
- Development of server software and multiplayer functionality using Unity and Photon
- Modeling with Cheetah3D and Modo
- Level design using Cheetah3D, Modo, and Unity
- Customization of some shaders to meet the project's specific needs
- Composition and production of the entire soundtrack
- Sound effects design
- Design and implementation of the persistence layer (player states, etc.)
- Porting to iOS (iPhone 3GS, iPhone 4, iPad) and Google Android (Google Nexus One)
- Design and implementation of an award system
- Website with user management, blog, forums, high scores, etc., built using DotNetNuke
Tools / APIs / Servers:
- MS Visual Studio 2008-2012: Implementation (C#)
- Unity Game Engine: Authoring
- Unity Asset Server: Version control
- Unity Built-In Networking: Network layer (V1)
- Exit Games Photon: Network layer (V2)
- Cheetah3D: Modeling
- Modo: Modeling
- Cubase: Audio sequencer
- Komplete: Sound design
- MS SQL Server 2008: Persistence
- DotNetNuke: Portal system for the website
References:
|
09/2005-06/2006
Total effort approx. 80 days
|
Cinema ticketing with 2D and 3D seat selection for mobile phones:
- Developed idea and concept
- Sought and found clients, conducted price negotiations
- Implementation based on the Cinetixx-Ticketing System by CreateCtrl (see "Development of a complex web application for online ticketing for various end customers")
- Development of a bandwidth-saving transmission protocol optimized for GPRS/UMTS between web server and mobile phone
- Mobile-friendly user management (all complex functionalities run via the website, e.g., registration as a new user, restricting the cinema program to one's own city and personal settings)
- Concept and implementation of an elegant navigation through the cinema program, which automatically adapts to the user and his search habits
- Selection of seats in a 2D auditorium plan
- Selection of seats in a 3D auditorium plan with various views
- Execution of the purchase process (or reservation process)
- Charging of customer cards via credit card
- Testing and quality assurance on about 25 different mobile phone models
- Conducting a field test to assess functionality and customer acceptance
- Various evaluations and customer statistics in ongoing operation
- Second-level support
Tools / APIs / Servers:
- Eclipse: Implementation, debugging (Java/J2ME) for client
- MS Visual Studio.NET 2003: Implementation, debugging (C#/ASP.NET) for server
- Oracle (persistence)
- Subversion: Version control client (integrated in Eclipse)
- VSS: Version control server (integrated in VS.NET 2003)
|
09/2006-09/2006
Total effort approx. 13 days
|
Extension of a LMS (Learning Management System) to include a simple seminar management:
- Data modeling of attendance seminars
- State model for the seminars (bookings, invitations, etc.)
- Sending of emails at various events (booking, cancellation / by the user, by the administrator)
Tools / APIs / Servers:
- MS Visual Studio.NET 2003: Implementation, debugging (C#/ASP.NET)
- MS SQL Server (persistence)
- Excel integration (export of data to Excel files)
|
05/2006-08/2006
Total effort approx. 43 days
|
Integration of a broker database in a LMS (Learning Management System):
- A customer needed a broker database integrated into a web-based learning platform
- Relational design of the data model
- Development of all stored procedures for data changes and data retrieval
- Implementation of calculations necessary for ratings in the broker environment
- Development of the complete GUI in ASP.NET with CSS
- Import of data from CSV files provided by a mainframe
- Export of data for an offline client into an Excel workbook with multiple worksheets
Tools / APIs / Servers:
- MS Visual Studio.NET 2003: Implementation, debugging (C#/ASP.NET)
- MS SQL Server (persistence)
- Excel integration (export of data to Excel files)
|
06/2004-09/2005
Total effort approx. 200 days
|
Development of a complex web application for online ticketing for various end customers:
-
Design of a database and application abstraction layer for a web application that can access database models of
various (similar) ticketing applications through a unified interface
(differences include some being multi-tenant, some not, some multilingual, some not, etc.)
-
Design of a web GUI abstraction layer that allows different "skins" for different end customers,
and partly different business processes (especially different booking processes)
- Design of a common, modular application core
- Development of a Flash-based auditorium view
- Development of all processes (registration, booking process, orders and adding of customer cards, complete credit card processing, etc.)
- Various additional features such as "Postcards"
-
At peak times, over 1500 tickets per hour were sold through the system, including credit card transactions etc.
(Single web server, single DB server, www.ticketone.ch during the pre-sale for "Kino im HB" in Zurich, Switzerland)
- Second-level support
- See also: http://www.kitag.com, http://www.cinetixx.de, http://www.ticketone.ch
Tools / APIs / Servers:
- MS Visual Studio.NET 2003: Implementation, debugging (C#/ASP.NET)
- MS Visual Source Safe: Version control
- Oracle: Persistence
- IIS 5.0/6.0: Web server
|
03/2005-03/2005
Total effort approx. 8 days
|
Made an LMS (Learning Management Systems) Firefox-compatible:
-
Modified a complex web application that had display errors in some areas on the Firefox browser,
making the application partially unusable, so that the entire application is correctly displayed in
Firefox – especially some constructs that were solvable in Internet Explorer with HTML, but required
the use of JavaScript in Firefox
Tools / APIs / Servers:
- MS Visual Studio.NET 2003: Implementation, debugging (C#/ASP.NET)
- HTML / CSS / JavaScript
|
10/2004-11/2004
Total effort approx. 25 days
|
Customizing a learning platform for an end customer:
- Quality assurance using unit tests, implemented with NUnit and NUnitAsp (developed the corresponding test design, which other employees could build upon)
- Development of a module for attendance seminars
- Implementation of a "learning progress evaluation view", in which the current learning status of a learner can be checked or in which the learner can check his current learning status
- Coaching other employees in the use of the Microsoft Application Test Center for conducting load tests
- Use of web services to cleanly realize unit testing of ASP pages in complex web applications
- Extended course viewer for WBTs
Tools / APIs / Servers:
- MS Visual Studio.NET 2003: Implementation, debugging (C#/ASP.NET)
- MS Visual Source Safe: Version control
- MS SQL Server 2000: Persistence
|
09/2004-09/2004
Total effort approx. 15 days
|
Technical analysis WBTs, development of various small WinForms tools:
- Analyzed various approaches to implementing WBTs, evaluated and documented existing technical implementations, also checking SCORM compliance
-
Developed a Windows-based tool for translating resource files, including "standard terms"
that should always be translated the same way (with highlighting and automatic display of the standard translation)
- Designed and implemented a tool for checking IMS files
- Created a SCORM test WBT, with which various SCORM functionalities of the platform can be easily tested (including for cross-browser testing)
Tools / APIs / Servers:
- MS Visual Studio.NET 2003: Implementation, debugging (C#/WinForms)
- MS Visual Source Safe: Version control
- MS SQL Server 2000: Persistence
- XML as data format
- SCORM-API
|
03/2004-08/2004
Total effort approx. 75 days
|
Further development of a learning platform:
- Access to the MS SQL Server 2000 database with ADO.NET (Stored Procedures for changes and data retrieval)
- Implementation of "Educational Controlling", tracking various data of the learner and presenting evaluations in HTML views as well as CSV export, tracking using JavaScript
- Implementation of a JavaScript-based HTML tree structure for navigation in hierarchical data
- Developed concepts for quality assurance
- Various significant refactorings to increase the maintainability of the system (on all levels, from database schema to C# GUI classes)
- Significant adjustments for the multi-tenancy of the learning platform
- Introduction of clean logging using log4net
- Developed templates for MS Visual Studio to optimize the development process (including appropriate code style guidelines)
- Documentation using UML diagrams, as well as proprietary SQL Server table diagrams
- API documentation using NDoc
Tools / APIs / Servers:
- MS Visual Studio.NET 2003: Implementation, debugging (C#/ASP.NET)
- MS Visual Source Safe: Version control
- MS SQL Server 2000: Persistence
- IIS 5.0/6.0: Web server
|
11/2003-12/2003
Total effort approx. 15 days
|
Development of a web frontend for a ticket order system
with seat selection.
-
Access to the Oracle database with ADO.NET (Stored Procedures
for changes)
-
Development of a business logic layer to encapsulate database access
-
Representation of auditorium plans with dynamically generated HTML
-
User management and complete order process
Tools / APIs / Servers:
- MS Visual Studio.NET 2003: Implementation, debugging (C#/ASP.NET)
- MS Visual Source Safe: Version control
- Oracle: Persistence
|
09/2003-11/2003
Total effort approx. 20 days
|
Developed a web application that allows customers to perform calculations
for selecting air coolers.
-
Accessing a Fortran-implemented DLL from the .NET environment.
-
Development of the user interface.
-
Development of the database and logic, including user management.
Tools / APIs / Server:
- Visual Studio.NET 2003: Implementation, debugging (C#/ASP.NET)
- Eclipse and CVS: Version control
- iTextSharp: Generating PDFs for calculation results
- MS SQL Server: Persistence
- Windows 2003: Deployment, hosting
|
09/2003-10/2003
Total effort approx. 6 days
|
Consulting and development of a system for calculating commissions
based on Access and Excel using Visual Basic for Applications. Additionally,
provided training on VBA for two Bosch employees.
-
Development of an Access database for data storage.
-
Connecting a Pivot table in Excel to Access data.
-
Evaluation and formatting of the Pivot table using VBA.
-
Automatic generation of PDF files from VBA using MakePDF.
Tools / APIs / Server:
|
07/2003-09/2003
Total effort approx. 27 days
Scoring Client approx. 12 days
Scoring Server approx. 6 days
Popup Timer approx. 1 day
LiveTracking approx. 2 days
Project management approx. 5 days
|
Developed a Pocket PC 2002 application for the Golf BMW International Open 2003
as a promotional tool for the event.
The application ran on Pocket PC 2002 devices that were loaned to event visitors.
It consisted of multiple components: LiveScoring to
display and analyze player scores in real-time,
PopupTimer to welcome visitors and notify them of
various specials (questionnaire, test drive with the new BMW 5 Series),
and LiveTracking to track and graphically represent
the strokes of each player.
-
Developed a client/server architecture for LiveScoring, where XML data
from the PGA was cached and processed so that the Pocket PCs
only had to retrieve incremental updates via WLAN.
-
Developed a highly efficient and visually appealing table component
to display player data, including color-coded cells depending on
distance to PAR (Par, Birdie, Albatross, Bogey, etc.).
The entire development process focused on high rendering performance
even with large datasets.
-
Development of the LiveScoring client.
-
Development of the PopupTimer client.
-
Development of a simple JSP and XSL-based web application
as a framework for the LiveTracking client, with graphical data
prepared externally.
Tools / APIs / Server:
- Eclipse: Implementation, debugging (Java)
- Visual Studio.NET 2003: Implementation, debugging (C#/.NET)
- CVS / WinCVS / Eclipse: Version control
-
.NET Compact Framework with C# as the implementation language
for all client applications (LiveScoring, PopupTimer).
- J2EE with EJB-CMP for the servers
(LiveScoring, LiveTracking) on JBoss 3.2.1 with Jetty.
- JSPs/Servlets
- Debug logging with Log4J
- Accessing XML feeds from the PGA for LiveScoring using JDOM
-
Ant and XDoclet for a convenient, simple build process,
including automatic generation of required EJB files
(interfaces, implementations, configuration files).
|
12/2002-06/2003
Total effort approx. 37 days
Client approx. 30 days
Server approx. 7 days
|
Developed a sports news service for Pocket PC 2002 and Palm.
The project consisted of multiple components:
A Windows service that processed news packages from a supplier
and prepared them for Palm and Pocket PC.
Synchronization clients for Palm and Pocket PC that
downloaded the data from a server and transferred it to the devices.
Clients on the devices for displaying and navigating the data.
My main task was the development of the Pocket PC synchronization client
and the Pocket PC client for displaying the data.
During the project, I also took over the Windows service
and full system administration:
-
Embedded the Internet Explorer for Pocket PC ActiveX control
into a standalone application.
-
Developed an ActiveSync service provider that transferred news
from a web server to the devices.
-
Created a template engine that generated HTML news
from a data source for both Palm and Pocket PC in two languages.
-
HTML design for Internet Explorer for Pocket PC and
a proprietary HTML viewer for Palm OS:
Overview pages for navigating different sports categories,
news overviews with headlines and article links, news articles.
Each sport had its own design.
-
Extended functionality, bug fixes, and optimizations
for the Windows service that received and processed
news from an external provider.
-
Planned, implemented, and administered a server system
with very limited resources, consisting of:
A FreeBSD server where data was transmitted via SCP,
with pre-processing already happening there;
A Windows server for preparing data for the devices;
A Linux server providing processed data packages for devices
(uploaded to this web server via SCP).
Tools / APIs / Languages / Server:
-
MS eMbedded C++ 3.0: Implementation of the Pocket PC client
(as an MFC application) and the device component of the
ActiveSync provider.
-
MS Visual C++ 6.0: Implementation of the desktop component
of the ActiveSync provider.
-
MS Visual Studio.NET 2002: Enhancements to the Windows service
for processing data packages,
implementation language: Visual Basic.NET.
- CVS / Eclipse: Version control.
-
FreeBSD / Java: Preprocessing of data packages
(Java application executed as a cron job),
copying data to a Windows share using mount_smbfs.
-
SuSE Linux / Apache: Web server where the data was uploaded via SCP.
|
10/2002-06/2003
|
Concept and development of a news system for mobile phones.
The system provided users with a set of hierarchically
organized channels where news initially appeared as headlines.
If interested, users could view the full article with an optional graphic.
The client supported extensive customization options, including skins.
-
Concept, design, and implementation of server and client.
-
Development of a process to aggregate news from various sources
(XML data feeds, web pages, etc.).
-
Development of a billing system.
-
Quality assurance across multiple devices, including
Nokia 7650, Nokia 3650, Nokia 7210,
Siemens S55, Sony Ericsson P800, Samsung SGH-S100,
various BlackBerry devices, Motorola T720i.
-
Device-specific adjustments (e.g., playing sounds on
Nokia 7650 and 3650 when receiving specially marked messages).
Tools / APIs / Server:
- Together: Analysis, design.
- JBuilder: Implementation, debugging (at the beginning of the project).
- Eclipse: Implementation, debugging (from early 2003 onwards).
- CVS / WinCVS / Eclipse: Version control.
- J2EE with CMP-EJBs for the server, running on JBoss 3.2.1 with Jetty.
- Servlets (Controller).
- Debug logging with Log4J.
- Web scraping for news using JTidy.
- Accessing XML news feeds using JDOM.
- Custom XML formats for data transmission.
-
J2ME, MIDP 1.0, and proprietary APIs (e.g., from Nokia and
Siemens) for implementing the client as a MIDlet.
-
Antenna with preprocessor functionality
for the client build process, automatically generating
versions for specific devices.
-
Ant and XDoclet for a streamlined, simple build process,
including automatic generation of necessary EJB files
(interfaces, implementations, configuration files).
|
11/2000-12/2002
Effort approx. 90 days
|
Independently managed, partially as a project and thesis work
at the
Institute of Computer Science
at the Ludwig Maximilian University of Munich:
Concept and development of a system for collaborative
use of the World Wide Web
(Project page,
Tutorial for the software)
- Project idea, complete concept, etc.
- Literature research and analysis of similar projects
- Design and implementation of a prototype
in multiple iterative steps
- Deployment on SuSE Linux: JDK 1.3.1, Tomcat 4.0.1,
Apache 1.3.19
- User documentation / Developer documentation
-
Field test with the prototype and evaluation
(Questionnaire in HTML, evaluation via Servlet,
which stores responses in XML, XML responses
were transformed into SVG diagrams using XSL)
- Development of an XML-DTD for a document format for academic papers
-
Development of an XSL stylesheet for conversion into XML
(Description in English)
-
Writing of the
thesis
Tools / APIs / Server:
- Together: Analysis, design, overview of JSPs with linking
- JBuilder: Implementation, debugging
- CVS / WinCVS: Version control
- J2SE 1.4, later J2SE 1.3.1 with
JSSE 1.0.2
(for HTTPS connections)
- XHTML with CSS and JavaScript
- JSPs (View)
- Servlets (Controller)
- Debug logging with Log4J
- URL rewriting with JTidy and Jakarta ORO RegExp
- Custom XML formats for persistence, accessed via JDOM
- Flash movie for navigation bar (Graphic design by
Kernzeit)
- Email notification with JavaMail
Project scope:
- 3 general packages with a total of 10 general classes and interfaces
- 1 specific package with 2 sub-packages for a total
of specific classes and interfaces
- 55 Java Server Pages (some fragments), divided into
8 logical sections
|
02/2001-10/2001
Total effort approx. 70 days
ActionEngine approx. 15 days
UI refactoring approx. 20 days
Migration to Client/Server approx. 30 days
|
Contribution to the development department setup
in a startup company that was developing
business planning software using Java
and the OO database POET FastObjects j2.
Further development of an existing prototype,
solving design and implementation tasks, and performing optimizations:
-
Provided training on UML,
Together, and JBuilder
(for approx. 6 employees)
-
Set up version control and trained
employees (CVS, WinCVS)
- Defined code style conventions:
Code Conventions for the JavaTM Programming Language,
plus additional conventions for file structure and
Javadoc documentation.
- Introduced structured logging (Log4J)
-
Taught best practices to two junior developers
(e.g., use of the Collection Framework,
proper Javadoc documentation, etc.)
- Analyzed the Use Cases in the existing system
-
Documented the existing system with class,
sequence, and collaboration diagrams
-
Developed an API. To achieve this, the existing
classes and interfaces (over 100) were first
organized into packages. During the project,
a framework for business applications
was created (30 classes and interfaces distributed
across multiple packages and sub-packages,
including specialized GUI components).
-
Designed and implemented the ActionEngine.
The goal was to track and control all
changes to the data model. To achieve this,
Actions were introduced, which
abstracted the respective changes.
Proxies were implemented for persistent objects
to encapsulate changes.
Used class, sequence, and activity diagrams
for this purpose.
-
Migration from a standalone application to a Client/Server
architecture using RMI (Project planning and management,
design, implementation).
Generic proxy objects were introduced to avoid duplicating
complex server objects on the client and
to prevent performance issues due to frequent RMI calls
over slow connections.
- Accessed XML data using JDOM
- Developed test cases for some classes using JUnit
- Performed performance optimizations using JProbe Profiler
-
Contributed to planning future versions of the software
(long-term strategy)
|
11/2000-04/2001
Total effort approx. 20 days
Concept approx. 4 days
Design approx. 3 days
Implementation approx. 10 days
Documentation approx. 1 day
|
Design and development of a Java applet for
navigation in semantic networks
-
Development of an intuitive navigation approach for
complex semantic networks
-
Implementation with JDK 1.1 and
AWT (custom UI with popups, drag and drop, etc.)
-
Communication with the server via XML,
using NanoXML
-
Comprehensive documentation of the code using Javadoc and
class diagrams
Scope:
- 2 Packages (Logic/UI)
- 24 Classes and Interfaces
|
08/2000-09/2000
Effort approx. 3 days
|
Development of a Java applet that displays an animated
countdown:
- Designing the animation
- Implementation in JDK 1.0.2 (JBuilder)
- 3 Classes
- Compatibility tests on Windows:
Internet Explorer, Netscape Navigator
- Compatibility tests on MacOS:
Internet Explorer, Netscape Navigator
|
08/2000-09/2000
Effort approx. 10 days
|
Development of a Java applet that displays the positions
of the residents of the Big Brother house
- Concept for data updating and transmission under
extreme server load (loading a file via HTTP - the
file is overwritten with a new version every few seconds)
- Object-oriented system design using UML
- Implementation with some enhancements,
JDK 1.0.2 (JBuilder)
- Ensuring functionality across different
browsers and architectures
(Windows, MacOS,
Internet Explorer, and
Netscape Navigator)
-
Documentation (overview diagram, Javadoc, applet parameters, demo of both applets)
(Demos are under "Description")
|
02/2000-04/2001
Effort approx. 110 days
|
Development of a backend architecture for accessing Java,
CORBA, COM, XML, or RMI object-oriented data stored
on any system (relational / object-relational /
object-oriented):
- Object-oriented system design using UML
- Concept for data localization
- Development of an XML-based description language
for the data model
- Development of a Java tool for editing such
XML data models using
the DOM tree as the data structure (models for
UI components are directly the DOM nodes,
UI implemented with Swing,
the tool consists of 14 classes and interfaces)
- Specification of a thoroughly documented API for
the entire framework (4 sub-packages with a total
of around 60 classes and interfaces)
- Implementation of SQL database access
using JDBC (various DBMS, e.g.:
Oracle8i, Sybase SQL Anywhere,
MS SQL Server)
- Implementation of access with XML output
- Implementation of access via
COM (Java-COM bridge: JIntegra),
CORBA, and RMI
- Implementation of access with user permissions
|
08/1999-11/1999
Effort approx. 34 days
|
Development of components for a Java client for
industrial bill of materials management
- Design and implementation of an applet toolkit for
web designers (building the GUI layout within
applets using XML files)
- Programming of a split-pane component for Java
without Swing
- Programming of a table component for Java without
Swing (JDK 1.1) with high
external configurability via
parameters, sorting function, adjustable column width,
etc.
Interparts demo by belenus (opens new window).
- Design of an XML specification for transferring
table data (multilingual, with external links,
connection to image files)
- Mapping the data model within the database
to XML
- Localization separated for data and
user interface
|
01/1999-07/1999
Effort approx. 43 days
|
Development of a Java client for a multimedia database system
- Participation in database design
- Object-oriented analysis and design with UML /
Rational Rose
- Design and implementation of an application/
applet framework
- Design and implementation of a plugin framework
(for viewers and connection types, e.g., RMI, CORBA)
- Database connection via JDBC
- Design and implementation of a multi-tier architecture
with CORBA and RMI as alternatives (as plugins)
- Development of viewer plugins with Java Advanced Imaging
and Java Media Framework
Development of the corresponding Java backend:
- Mapping a relational data model to an
object-oriented structure
- Mapping search queries to objects
- Data retrieval via tree structure and various
search methods
|
11/1997-03/1998 |
At the university in a team of 3 people:
Development of a board game as a client/server applet in Java 1.1
- Object-oriented analysis and design with UML
- Implementation of a server with a player database
- Implementation of a graphical client with chat
- Presentation of the finished product
Our team's implementation was rated as the
best implementation.
|
07/1997-03/2009 |
For a mid-sized property management company:
- Consulting/training on hardware and software
- System administration in a Windows NT environment
- Design and implementation of a master database
(MS Access, Visual Basic) as well as its integration
into Microsoft Word (Visual Basic)
|
08/1998-06/1999 |
For effective music & media (site no longer exists)
(music promotion):
- System administration in a Windows 95 environment
- Training in Windows and MS Office
- Setting up a computer-based fax solution
- Concept and implementation of a web-based
information service (CGI, Perl)
- Setting up a network-wide internet connection via
a proxy (Sambar)
- Design and implementation of the
company website
|
04/1998-10/1998 |
For a software development company, working for corporations:
- Design of processing screens (Prolifics JAM)
- Implementation of database connections
(JAM, JPL, Sybase SQL Anywhere)
|
11/1995-03/1996 |
For DigiTeam GmbH (Service and Support):
- Installation and maintenance of Apple hardware and software
- Hotline support for office products (Mac and PC)
|
08/1990-05/1999 |
For the engineering firm Boehler (construction management, project management,
high-rise construction):
- System administration in a Windows NT environment (initially Novell)
- Consulting on hardware and software
- Training on MS Office, Sidoun WinAVA
- Design and implementation of a project management system
- Database design (MS Access)
- User guidance/interface
(MS Access, Visual Basic)
- Integration of project management into
office applications (MS Word, Visual Basic)
- Connecting the company network to the internet
(Sambar)
|