Senior Fullstack Developer C# Angular
Profile DDO-002 · Deep Data Ocean
Senior full-stack developer with more than 25 years of professional software development, the last 18 of them on the Microsoft stack: C# from the .NET Compact Framework and WPF era through ASP.NET Core to .NET 10, and on the web side from jQuery and Angular.JS to signal-based, zoneless Angular 21 with Ionic and Tailwind. Designs and builds complete line-of-business systems: REST and OData APIs with Entity Framework on MS SQL Server and Azure SQL, scheduled background processing with Azure Functions and Quartz.NET, HTML-to-PDF services in Docker, and mobile clients as PWAs or with Xamarin Forms for Android and iOS. Has repeatedly taken over existing applications, stabilised them and rewritten them step by step, and was lead developer of a revision-safe documentation system for several years. Builds reusable foundations alongside product work, including an own component and utility library and a code generator for data models, controllers and views. Earlier background in C and XML technologies, with open-source contributions to the libxml2 and libxslt libraries, among them their XML Schema and XSLT processors. Uses AI-assisted development with Claude in current projects. Native German speaker, business fluent in English.
Born 1972. Kiel. German (native), English (business fluent).
Available from 15 Okt. 2026 · 100 % capacity · remote with on-site visits · Day rate on request
Technologies
Experience derived from the projects listed below; overlapping periods counted once.
| Technology | Experience |
|---|---|
| .NET | 16 years |
| C# | 16 years |
| SQL | 10.5 years |
| Casimodo.Lib | 9.5 years |
| REST API | 9 years |
| EntityFramework | 8.5 years |
| MS SQL Server | 8 years |
| HTML | 7.5 years |
| JavaScript | 7.5 years |
| SCSS | 7.5 years |
| TypeScript | 7.5 years |
| ASP.NET MVC | 7 years |
| Angular | 6.5 years |
| ASP.NET | 6.5 years |
| XML | 6.5 years |
| OData | 6 years |
| .NET Framework | 6 years |
| Azure | 6 years |
| Limilabs Mail | 5.5 years |
| SOAP | 5 years |
| ASP.NET Core | 5 years |
| .NET Core | 5 years |
| Google Maps | 5 years |
| jQuery | 5 years |
| Kendo UI | 5 years |
| Mojen | 5 years |
| WPF | 5 years |
| Angular.JS | 4 years |
| IIS | 4 years |
| Kendo UI for jQuery | 4 years |
| Mojen code generator | 4 years |
| MS Reporting Services | 4 years |
| CRM | 4 years |
| Delphi | 4 years |
| DOM | 4 years |
| HTTP | 4 years |
| Kylix | 4 years |
| Libxml2 | 4 years |
| Libxslt | 4 years |
| SMTP | 4 years |
| XML-RPC | 4 years |
| XPath | 4 years |
| XSLT | 4 years |
| C | 3 years |
| Python | 3 years |
| Windows Forms | 3 years |
| Technology | Experience |
|---|---|
| XML Schema | 3 years |
| DevComponents | 3 years |
| Web API | 2.5 years |
| WCF | 2.5 years |
| Tailwind | 2 years |
| SQLite | 1.5 years |
| Xamarin Forms | 1.5 years |
| Entity Framework | 1.5 years |
| Prism | 1.5 years |
| .NET Compact Framework | 1 year |
| Claude | 1 year |
| DevExtreme | 1 year |
| iBATIS.NET | 1 year |
| Socket Mobile API | 1 year |
| TCP | 1 year |
| Win32 API | 1 year |
| Ionic | 1 year |
| MailKit | 1 year |
| Quartz.NET | 1 year |
| Serilog | 1 year |
| Source Generators | 1 year |
| Angular Material | 1 year |
| Azure BLOB storage | 1 year |
| Azure Functions | 1 year |
| Azure SQL | 1 year |
| Chromium | 1 year |
| Docker | 1 year |
| JWT | 1 year |
| Playwright | 1 year |
| PWA | 1 year |
| Silverlight | 11 months |
| WCF RIA Services | 11 months |
| DotSpatial | 7 months |
| Dragon NaturallySpeaking | 7 months |
| GeoFramework | 7 months |
| MEF | 7 months |
| Bootstrap | 6 months |
| Blazor | 3 months |
| CSS | 3 months |
| DevExpress | 3 months |
| EntityFramework Core | 3 months |
| PrimeNg | 3 months |
| SOA | 3 months |
| Telerik | 3 months |
| ADO.NET | 2 months |
Projects
Clients are named by sector, not by name.
Developer — PEP Profilverwaltung App
10/2025 – 10/2026
The company wants to acquire IT projects for their employees. The PEP Profilverwaltung is an application for input, management and export of employee profiles intended for presentation to potential customers. It includes a profile analysis system to inform employees of various inconsistencies and potential improvements of their profiles.
The frontend of the application was developed using Angular 21 and TypeScript. This Angular app is zoneless (i.e. does not rely on zone.js) and uses only signals for data binding and property computation. Ionic was used as the primary component library (using the material design theme), though wrappers for all Ionic components were developed to allow for an easy switch of technology in the future and simplification of the HTML. Additionally custom controls were developed. A custom "Angular signal forms" implementation was used (since the original was in preview), which was developed using Anthropic’s Claude. Styling was done using SCSS and Tailwind.
Technologies: TypeScript, Angular 21, Ionic, Tailwind, HTML, SCSS, Claude
Developer — PEP Profilverwaltung Backend
10/2025 – 10/2026
The company wants to acquire IT projects for their employees. The PEP Profilverwaltung is an application for input, management and export of employee profiles intended for presentation to potential customers. It includes a profile analysis system to inform employees of various inconsistencies and potential improvements of their profiles.
The backend of the application was developed in C#. ASP.NET 10 was used to implement REST API (Web API) endpoints. EntityFramework 10 was used as ORM mapper for access to MS SQL Server Database. A data migration from EF 4.8 to EF 10 was also performed. Source Generators were used to automate code generation for entity metadata, entity copying functions, allowing for auto-updated deep-copy functionality of entity graphs. Quartz.NET was used for scheduling of background jobs like execution of email notifications based on analysis results or clean-up of stale data. Serilog was used for logging of the entire application e.g. for auditing, crash reports etc. to database, file and email. MailKit was used for sending emails.
Technologies: C#, ASP.NET 10, Web API, EntityFramework 10, Source Generators, Quartz.NET, Serilog, MailKit, MS SQL Server, REST API
Developer — AIR Reporting App
06/2025 – 10/2026
Business reports are needed by management. AIR is an internal application for management and ad-hoc or scheduled execution of various business reports. E.g., financial reports, employee timesheets, etc. Business and master data can be manipulated via the application. The report definitions are hard-coded in the backend.
The backend of the application is written in C# using .NET 4.8. Communication between frontend and backend is done via REST API (ASP.NET 4.8, Web API). The data is held in multiple MS SQL Server databases and accessed via iBATIS.NET, which is an ORM mapper that uses raw SQL statements expressed in XML. The frontend is written in Angular 20 and TypeScript, while heavily relying on DevExtreme's Angular components.
I removed dependencies on obsolete department/team/supervisor/employee data sources and implemented a new department/team/supervisor/employee system. Added REST API endpoints. Added various business objects and data store objects. Added various SQL queries. Optimized loading of various business objects (lazy loading was changed to eager loading of lists). Performance profiling via Visual Studio 2026. Added an experimental iBATIS parser (SQL/XML) using Anthropic’s Claude for a potential migration to .NET 10.
A new supervisor/team/employee selection UI was added to the Angular frontend using HTML and styled using SCSS.
Technologies: C#, ASP.NET 4.8, Web API, SQL, iBATIS.NET, Angular 20, DevExtreme, HTML, SCSS, Claude, REST API, .NET 4.8, TypeScript, MS SQL Server, XML
Developer — Field Job PWA
04/2023 – 03/2024
The client needs a mobile PWA app for employees working in the field of detection of unexploded ordnance at construction sites. Jobs are downloaded to phones and details of performed jobs were sent back. Offline capability (local photo database) is needed to ensure jobs could be performed in areas without connectivity. Additionally the employee's times can be tracked.
The app (PWA – Progressive Web Application) was developed using Angular 18 and TypeScript with a signal based and zoneless approach. The app was used on Android and iOS phones. I used Angular Material as the basic blocks for wrapping and building our own UI components. Non-proprietary library code was then moved to my Casimodo.Lib. OData and REST API were used for communication with the backend. HTML was used for Angular's templating and Tailwind and SCSS for styling.
Technologies: TypeScript, Angular 18, Casimodo.Lib, Angular Material, OData, Tailwind, HTML, SCSS, PWA
Developer — Job Scheduling Portal Server
04/2023 – 03/2024
The client needs an application for scheduling of jobs related to detection of unexploded ordnance, which are downloaded to an Angular phone app by employees working at construction sites. The state of customer orders and the jobs related to it can be monitored and at the end of the month invoices for all orders can be generated as PDFs. Customers, employees, orders and other master data needed for the company's everyday work are managed by this application.
The backend of the application was developed in C# and .NET 8. ASP.NET 8 was used to implement a REST API (Web API). EntityFramework 8 was used as the ORM mapper for access to the Azure SQL Database. Added Azure BLOB storage for files. Added JWT auth (side-by-side with basic auth). Added scheduled (Azure Functions) machinery for data cleanup and BLOB processing. Added new REST API (Web API) and OData endpoints for the new Angular Portal Client. Added employee work time recording. Bug-fixing and Refactoring.
Added a new HTML to PDF converter App service using headless Chromium and Playwright. This converter was deployed as a Docker image.
My Casimodo.Lib library was used for the HTML to PDF converter and common functionality.
Technologies: C#, .NET 8, ASP.NET 8, REST API, Web API, Azure SQL, Azure Functions, Casimodo.Lib, Docker, OData, Playwright, Chromium, JWT, EntityFramework 8, Azure BLOB storage
Developer — Job Scheduling Portal Client
04/2023 – 03/2024
The client needs an application for scheduling of jobs related to detection of unexploded ordnance, which are downloaded to an Angular phone app by employees working at construction sites. The state of customer orders and the jobs related to it can be monitored and at the end of the month invoices for all orders can be generated as PDFs. Customers, employees, orders and other master data needed for the company's everyday work are managed by this application.
The browser app was developed using Angular 18 and TypeScript with a signal based and zoneless approach. I used Angular Material as the basic blocks for wrapping and building our own UI components. Non-proprietary library code was then moved to my Casimodo.Lib. OData and REST API were used for communication with the backend. HTML was used for Angular's templating and Tailwind and SCSS for styling.
Technologies: TypeScript, Angular 18, Casimodo.Lib, OData, Tailwind, HTML, SCSS, Angular Material, REST API
Developer — Container Tracking App
01/2022 – 12/2022
An offline/online mobile application (Android/iOS) used for tracking of containers (material, rubble, etc.). Those containers were scanned via QR-codes at different stages of delivery and their position was determined (GPS). The data was stored locally if no internet connection was available, then sent automatically when connection was available again.
The app was implemented using C# and Xamarin Forms. It used a REST API for communication with the backend. Data was persisted on phones using EntityFramework and SQLite. This app was mostly built using the library of models and components that I previously developed for the lab results app.
Technologies: C#, Xamarin Forms, EntityFramework, REST API
Developer — Lab Results App
09/2021 – 03/2023
The medical software company needs a mobile app (Android/iOS) in order to display medical laboratory results of patients in textual and graphical form. The app is used by medical practitioners. The laboratory results can be displayed per laboratory or per patient.
The app was implemented using C# and Xamarin Forms. It used a REST API for communication with the backend. Data was persisted on phones using EntityFramework and SQLite. I also developed a library of reusable models and custom UI components. Additionally I wrote a Web UI automation and Xamarin Forms UI testing machinery.
Technologies: C#, Xamarin Forms, REST API, EntityFramework, SQLite
Developer (supporting role) — Medical Order Entry Application
06/2021 – 08/2021
The company's product is an application for medical order entry by medical personnel in doctor's offices or hospitals. The sending and receiving of medical laboratory orders and results is automated. The application also computes the best container sizes for the orders and prints labels.
The HTML frontend was written in JavaScript and used Bootstrap 4 and CSS for styling. The backend was implemented using C# and ASP.NET 4.8.
My role was to implement two-factor authentication, filtering of the main orders view and small bits of UI (HTML) and JavaScript coding.
Technologies: JavaScript, C#, ASP.NET, HTML, CSS, Bootstrap 4
Developer — Port Parking
06/2020 – 08/2020
A seaport operator uses a mobile app for verification of booked vehicles in parking locations. Employees selected a list of car plates for a day in the app's calendar and went through the parking lots in order to record which cars were actually present at that day. Illegal parking and missing cars could be detected this way.
The frontend app was implemented using TypeScript and Angular 10. Naturally the UI was implemented using HTML and PrimeNg components. Bootstrap 4 and SCSS were used for styling.
The backend was implemented using C# and ASP.NET Core. REST API (Web API) was mainly used for communication, beside that a few OData endpoints were used. The backend used EntityFramework Core for persisting and querying of data of MS SQL Server.
Technologies: TypeScript, C#, Angular 10, HTML, SCSS, Bootstrap 4, PrimeNg, ASP.NET Core, Web API, OData, MS SQL Server, REST API, EntityFramework Core
Developer — Terminal Operations App
06/2020 – 08/2020
A seaport operator uses an app for managing the loading and unloading of cargo units to and from ships. Each of the employees was individually instructed by this app to transport a cargo unit from A to B. The current location of the cargo units was tracked.
The frontend of the app was implemented using C# and Blazor (Blazor is a front-end web framework of Microsoft). HTML was used for the Blazor components. I was evaluating DevExpress and Telerik components. We finally decided to use the DevExpress Blazor components. Styling was done with Bootstrap 4 and SCSS. Communication with the backend used REST API.
Technologies: C#, Blazor, HTML, SCSS, Bootstrap 4, DevExpress, Telerik, REST API
Developer — Ordnance Detection Project Portal
05/2015 – 04/2020
This is a web based LOB application mainly for management of projects and jobs related to unexploded ordnance detection. It included an employee job scheduler, job analysis and job-result validation, template based document and email generator, HTML to PDF service, to-do engine. Further, each project had a database based filesystem for storage of files, e.g. images of transmission/water lines, miscellaneous information for the employees.
The backend was implemented using C# and .NET Core. ASP.NET Core was used for communication via OData. OData is a standardized way to build and use a REST API (Web API). The persistence layer consisted of EntityFramework Core and an Azure SQL database. The Azure cloud was used for hosting of the web app, the Azure SQL database. Azure functions were used for scheduled background jobs (e.g. data cleanup). I used my Casimodo.Lib and my Mojen code generator for definition and generation of various HTML views, TypeScript view models and the data communication code. Limilabs Mail was used for sending and receiving of emails. Google Maps was used to acquire and display the location of employee jobs and additional emergency related data.
The frontend was implemented using HTML and jQuery. Initially I used JavaScript, but migrated to TypeScript later on. For data input and dialogs I used Kendo UI components. Styling was done with SCSS.
Technologies: C#, TypeScript, JavaScript, OData, EntityFramework, Azure, HTML, SCSS, Kendo UI, jQuery, Limilabs Mail, Casimodo.Lib, Mojen, .NET Core, REST API, ASP.NET Core, Google Maps
Developer — KamiJob App
05/2015 – 06/2019
The KamiJob App is a mobile application for processing of unexploded ordnance detection jobs. The scheduled jobs are downloaded by employees working on construction sites. After the data has been filled out by the employee, the job's result data is sent back to the project portal backend.
The mobile application was implemented using JavaScript and Angular.JS. The OData REST API technology was used for communication with the server. Kendo UI's Angular.JS widgets were used for input and navigation. I used my Casimodo.Lib and my Mojen code generator for definition and generation of a few HTML views and JavaScript models, all other HTML/JS was hand-coded. SCSS was used for styling.
An experimental TypeScript and Angular 8 prototype of the app was started at the end of my work.
Technologies: JavaScript, Angular.JS, OData, REST API, HTML, SCSS, Kendo UI, TypeScript, Angular 8, Casimodo.Lib, Mojen code generator
Author — Mojen code generator
05/2015 – 06/2019
Code generator for definition and generation of application parts. E.g. data entities, data models, EntityFramework models, OData models, OData controllers, ASP.NET MVC controllers, HTML views.
Implemented using C# and .NET. This code generator generated code for the following technologies: OData (controllers, queries, actions, functions), EntityFramework (models, entities, context, various functionality), HTML, ASP.NET MVC, JavaScript, Kendo UI for jQuery.
Technologies: C#, .NET, OData, EntityFramework, HTML, ASP.NET MVC, JavaScript, Kendo UI for jQuery
Author — Casimodo.Lib
05/2015 – 06/2019
During my official work at that time I created my own library. Abstract base functionality for work mainly with .NET generally, EntityFramework, ASP.NET, Kendo UI for jQuery, jQuery, Google Maps and WPF. Furthermore for templating, simple parsing, custom authorization and web related parts and pieces.
The library was written using C# and TypeScript. It provides functionality using the following technologies: .NET, EntityFramework, ASP.NET, Kendo UI for jQuery, jQuery, Google Maps and WPF.
Technologies: C#, TypeScript, EntityFramework, ASP.NET, Kendo UI for jQuery, jQuery, WPF, Google Maps, .NET
Lead developer — DocSetMinder
04/2011 – 06/2014
DocSetMinder is a revision-safe documentation system. Various standards and norms (e.g. BSI IT-Grundschutz) are implemented by the application's modules. Users can then satisfy these standards and norms by filling out the various parts of such modules. The data is validated, and can also be monitored via triggers, driving specific user-definable actions.
Responsible for the take-over, successive complete rewrite and further development and invention of all aspects of the application, which – among other things – include:
– Core domain model, dynamic and programmable class/object/property/data/attribute system, domain context for data storage/querying (similar to Entity Framework).
– Class/property/data designer with a code behind facility allowing for programming of the behaviour of the designed classes, validation rules, etc.
– Module system
– Implementation of the IT-Grundschutz module
– Workflow/task system: custom workflow server (with Azure like worker roles), workflow definitions, custom/system tasks, data/scheduled triggers, trigger language, email notifications, UI designers and viewers,
– UI: custom framework, view models, controllers, views, controls, infrastructure, localization
– Document editors (dynamic forms, HTML-, Flowchart-editors, etc.)
– Document and revision navigation, filtering, on-demand loading, dependency visualization
– Role/group based user management
– Data views/permissions/security
– Data search facility and server side
– Data to HTML rendering/transformation system, lots of XML processors
– Documentation export framework/engines/strategies to MS Word and HTML
– Data export/import framework/engines/strategies/UI/tasks
– Read-only Web-Client (mostly the server side)
– Repositories/DAL/serialization/encryption/entity generator/custom mini ORM/SQL
– Transformation to reportable relational data
– Report definition generator and manual reports (MS Reporting Services)
– Library, tools, technical investigation and customer support
Implemented in C#, used .NET Framework 3.5 – 4.0, Windows Forms, DevComponents, MS SQL Server 2005-2011, ASP.NET MVC 3-4, Casimodo.Lib, MS Reporting Services, IIS
Technologies: C#, .NET Framework, Windows Forms, DevComponents, MS SQL Server, ASP.NET MVC, Casimodo.Lib, MS Reporting Services, IIS
Developer — Telecom Reports
01/2011 – 03/2011
A telecommunications company needed to analyze, compute and visualize old data. Since the computational part – the missing link – was long lost, we had to analyse the source data and its results, in order to reverse-engineer the algorithm that mapped the data to the results. This was done manually by me.
The result data was visualized using MS Reporting Services. The data was stored in MS SQL Server. The query algorithms were implemented using SQL.
Technologies: MS Reporting Services, SQL, MS SQL Server
Designer & developer — Geo Field Assistant
06/2010 – 12/2010
Geo Field Assistant is a mobile (tablet PC) and desktop application for geotechnical soil investigation purposes in rough outdoor scenarios. It allows outdoor employees to acquire data of borehole acquisitions, dynamic probing and levelling. Result data was sent to the office and processed using the desktop variant of the application. Labels for containers of acquired soil samples can be printed. The data was also exportable to GeODin (geotechnical data management software).
The entire application was written in C#, from the input forms down to the data access layer. As the platform underneath, .NET 3.5 and later 4.0 supplied the runtime and base class library for both the tablet and the desktop variant. The user interface was built with WPF, whose custom templates and controls, among them a virtual keyboard, make input on a tablet in the field ergonomic. Persistence of projects, boreholes and probing results goes through Entity Framework, which maps the domain objects to the database. All acquired field data and the project master data live in MS SQL Server.
The individual modules such as borehole acquisition, dynamic probing, levelling, GPS, photo and label printing are discovered and composed at start-up by MEF, so each of them can be developed and shipped independently. Within the client, Prism provides the MVVM structure, regions and loosely coupled communication between those modules. Reusable UI and data components shared across all modules come from Casimodo.Lib. The email hub that carries projects between the field and the office is implemented with Limilabs Mail. Printable reports are rendered by MS Reporting Services alongside the Excel exports. Labels were laid out using WPF and printed using .NET.
Positions recorded by the GPS module are converted between coordinate systems by GeoFramework. The borehole positions are displayed and processed on a map with DotSpatial. For hands-free work on site, field observations can be dictated with Dragon NaturallySpeaking.
Technologies: C#, .NET, WPF, Entity Framework, MS SQL Server, MEF, Prism, Casimodo.Lib, Limilabs Mail, MS Reporting Services, GeoFramework, DotSpatial, Dragon NaturallySpeaking
Designer & developer — UMKS
07/2009 – 05/2010
UMKS is a Rich Internet Application designed to enhance internal communication and collaboration within a large organization. It serves as a central platform for employees to connect, share knowledge, and access company-wide information. The system includes a comprehensive company knowledge base and visualizes the organizational hierarchy to support efficient information retrieval and team coordination.
Both the client and the server side of the application were written in C#, so business rules and validation logic could be shared between them. In the browser, the rich interface with its knowledge-base views and the interactive organisational chart runs on Silverlight 3. Its modular structure, the MVVM pattern and the loosely coupled navigation between the modules are built on Prism. Data access from the client goes through WCF RIA Services, which project the domain model to the Silverlight side together with its queries and validation rules. Further services for authentication and cross-domain communication are exposed via WCF.
On the server, persistence and object-relational mapping of the domain model are handled by Entity Framework. The company knowledge base, the user data and the organisational hierarchy are stored in MS SQL Server. All server-side components run on the .NET Framework. The web services and the Silverlight client itself are hosted and delivered to the users by IIS.
Technologies: C#, Silverlight 3, Prism, WCF RIA Services, WCF, Entity Framework, MS SQL Server, .NET Framework, IIS
Developer — Ship Sanitation Inspection App
11/2008 – 12/2008
The application is used by a port health authority for management, inspection and certification of a ship's sanitation. Employees used Windows tablet PCs to acquire data of ships based on ISO specifications. The result data and the certificates were then printed.
The application was implemented using C# and the .NET Framework 2.0. The UI was built using Windows Forms. Microsoft's ADO.NET was used for persisting of data in a locally installed MS SQL Server 2005.
Technologies: C#, .NET Framework, MS SQL Server, ADO.NET, Windows Forms
Designer & developer — Bank IT Help Desk prototype
06/2008 – 08/2008
The Bank IT Help Desk is a trouble ticket system for the internal IT support of a bank service company, where clients report incidents and requests and the support team tracks each ticket from intake to resolution. Tickets are routed as service requests to the responsible team, so every issue has a clear owner and its current state is visible at any time. The application was built as a prototype to show what the then brand-new WPF could do for an ergonomic, modern desktop interface in day-to-day support work.
The prototype is split into a desktop client, a standalone service host and an entity layer which, at this stage, works on test data instead of a database. Both the client and the service host were written in C#, sharing the ticket and service-request contracts as common assemblies. As the runtime for all three parts, the .NET Framework 3.5 supplied the base class library together with the then new UI and communication stacks. The desktop client was built with WPF, using data binding, templates and styles to give the ticket lists and detail views a modern, ergonomic interface. Communication between the client and the ticket services runs over WCF, with the ticket operations exposed as service contracts that the client consumes through generated proxies. The overall design follows SOA, so ticket intake, routing and status tracking are offered as independent services that other internal applications can call as well.
Technologies: C#, .NET Framework, WPF, WCF, SOA
Designer & developer — MindPic Mobile, Framework & Server
01/2007 – 05/2008
MindPic Mobile is a PocketPC application with which field staff download XML-based forms, fill them in, view and store the data on the device and send the results back, including barcode scanning with Socket Mobile scanners. Behind it stands the MindPic Mobile Framework, a declarative XML scripting toolkit designed so that new mobile forms and workflows could be built quickly and reliably on the limited hardware of the time. MindPic Server is the counterpart in the back office: a web service server that receives the data from the devices and stores it in a central database, with a code generator that keeps server and mobile business objects in sync. I took over the original application, redesigned and successively rewrote it completely, and designed and implemented the framework and the server from scratch.
The system has three parts: the PocketPC client, the mobile framework underneath it and a standalone web service server in the back office. All three were written in C#, which I learned on this very project while taking over and rewriting the client. On the device, the client and the framework run on the .NET Compact Framework 3.5, whose limitations shaped the design: reflection is very slow there, so business entities described in proprietary schemas are projected into generic data-bindable objects instead. Functions missing from the compact framework, such as device and display control, were reached directly through the Win32 API. The framework itself is built around XML, with a declarative, functional scripting language for validation rules and XSLT-like transformations of business objects, a small XML database optimised for PocketPCs with an XPath-like query language, scripted background jobs and WPF-like UI definitions with data binding. Form data is downloaded to and uploaded from the device over plain TCP connections. For calls into the server, the client speaks SOAP, which the compact framework supports out of the box. On the server side, those services are implemented with WCF as a standalone, self-hosted web service server. That server runs on the full .NET Framework 3.5 and contains a code generator fed with the framework's business object schemas, so server and mobile business objects stay in sync. All data received from the devices is persisted in MS SQL Server 2008, which the framework also reaches through its own adapter. Barcode scanners attached to the PocketPCs are driven through the Socket Mobile API.
Technologies: C#, .NET Compact Framework, Win32 API, XML, TCP, SOAP, WCF, .NET Framework, MS SQL Server, Socket Mobile API
Designer & developer — MIME-type-evaluator
10/2005 – 01/2006
Designer & developer — ExContacts
07/2005 – 07/2005
Developer — Xcl2Delphi
04/2005 – 04/2006
Designer & developer — Epsilon
02/2005 – 03/2005
Epsilon is a small XML script driven processor for the execution of external applications via named pipes. A tray-icon keeps the user informed of 3 positions in the script: initialization, execution, and finalization; intended for the convenient opening/closing of a VPN tunnel on notebooks.
Responsible for the design and implementation of Epsilon; maintenance.
Implemented in Delphi; used XML.
Technologies: Delphi, XML
Developer — Lambda
10/2004 – 08/2006
Developer — Go.Omega
08/2004 – 11/2004
Designer & developer — Database-Workbench
02/2004 – 05/2004
Designer & developer — Tau
06/2003 – 12/2004
Open-source contributor — Libxml2 and Libxslt
04/2003 – 08/2006
Work on the open-source Libxml2/Libxslt libraries (www.xmlsoft.org). The work was motivated by my implementation of a W3C compliant XML processing suite in Delphi which uses those libraries as its underlying machinery. I enjoyed being involved in this community.
Besides miscellaneous enhancements/fixing/testing the main tasks were:
– Implementation of DOM based code for wrappers.
– Implementation/testing/maintenance of the XML Schema processor.
– Refactoring/optimization/fixing of the XSLT processor.
– Optimization of the XPath processor
Implemented in C; used XML and related, DOM and related, XSLT 1.0/2.0, XPath 1.0, streaming XPath, XML Schema, Python (for tests).
Technologies: C, XML, DOM, XSLT, XPath, XML Schema, Python
Developer — Omega
09/2002 – 08/2006
Collaboration on Omega: a web application mainly focused on CRM, BRM, Document Management, using an XSL-Transformation based web application server (Lambda).
Responsible for the implementation of a XML-document search module, a SOAP module, a data-limiter module; analysis/enhancement/fixing of XSLT stylesheets, fixing-tools for XML documents, daily database import machinery (XML script driven), testing.
Implemented in Delphi/Kylix, XSLT; used SMTP (Indy), HTTP, DOM, XML, XPath, XML-RPC, SOAP, Libxml2/Libxslt, CRM, BRM, Document Management.
Technologies: Delphi, Kylix, XSLT, SMTP, HTTP, DOM, XML, XPath, XML-RPC, SOAP, Libxml2, Libxslt, CRM
Designer & developer — XML-script processor
09/2002 – 10/2002
Designer & developer — OzXml
07/2002 – 08/2006
Developer — Frameworks and libraries
06/2002 – 12/2004
Designer & developer — XML-Editor
05/2002 – 05/2002
Designer & developer — Audio-CD ripper
07/2001 – 08/2001
Developer — DECT communication
04/2001 – 05/2001
Designer & developer — Elenoah
11/2000 – 03/2002
Designer & developer — Elenoah
05/2000 – 10/2000
Designer & developer — Web presence for an antiques dealer
01/1998 – 12/1998
Collaborator — Some unknown financial application
01/1991 – 12/1991
Does this profile fit your project?
Send us the requirements and quote profile number DDO-002. You will get a clear answer: whether it fits and from when.
