TimeWerkes — Field Services Management Platform
Company Background
About DataWerkes
DataWerkes is an Alberta-based independent software vendor founded by Keith Courneyea, a working asset integrity professional with over 30 years of industrial field experience. DataWerkes operates in two markets: commercial field services management software for industrial contractors in the oil and gas sector, and donated software solutions for non-profit organizations including an animal rescue organization and a boutique pet foods franchise.
DataWerkes has been in operation for seven years. Its flagship commercial product, TimeWerkes, has been in active client use since late 2024.
About Keith Courneyea
Keith's career path is unusual in the software industry. He began as a fully certified welder in Alberta before transitioning into the asset integrity inspection world in 1992. The data-intensive nature of industrial inspection work sparked an early interest in databases — Keith became a self-taught Microsoft Access expert and began building tools to manage inspection data for his employer as well as tools for other domains for others.
That foundation led to a broader involvement in enterprise software. Keith was part of the implementation team for an Indus PassPort EAM system at his employer, eventually becoming the product subject matter expert (SME) which spanned 8 years. When the organization subsequently migrated to SAP ERP, the process was repeated — Keith spent eight years as the SAP SME, giving him a deep understanding of what enterprise software looks like from the inside: its strengths, its costs, and the gaps it leaves for smaller specialized contractors.
In 2019, Keith decided to pursue application development seriously. With no prior C# experience, he returned to DevExpress — a platform he had worked with briefly in the early 2000s and remembered positively — and chose XAF as his development framework. Within four months, he had designed, built, and deployed to Azure his first XAF application: a management system for a local animal rescue organization, donated in full by DataWerkes including all development and hosting costs. The application is still in use.
Keith holds API-510 (Pressure Vessel Inspector), API-570 (Piping Inspector), API-653 (Aboveground Storage Tank Inspector), ABSA ISI (In-Service Inspector), and Canadian Welding Bureau (CWB) Welding Inspector certifications. TimeWerkes is built on that 30-plus years of field knowledge.
Key Facts
- Years in business: 7
- Employees: 1 (Keith Courneyea, founder and product owner and developer)
- Development partner: Llamachant Technology Ltd. (Dave Hesketh)
- Primary market: Industrial contractors in the oil and gas sector, with emphasis on asset integrity
- Secondary: Animal rescue organizations, boutique pet foods
Project Description
TimeWerkes — Field Services Management Platform
TimeWerkes is a commercial, end-to-end field services management platform for industrial contractors. It manages the full business lifecycle of a contracting operation — from initial quoting through job execution, field ticketing (aka time reporting), inspection reporting, and final invoicing — within a single integrated application available as both a Windows desktop client and a Blazor Server web application. Currently the Blazor app in the primary client.
The platform is architected as a core business foundation with industry-specific modules that can be added as client requirements evolve. The core handles workflows common to all contractors: quotes, jobs, field tickets (aka timesheets) with labour and billable items, rate sheets, approval workflows, staff and certification management, equipment tracking, document management, and full invoicing. Specialized modules adapt this base for specific industries.
The first industry-specific module, developed in partnership with Llamachant Technology Ltd. under Keith's SME guidance, serves Crystal Clear Testing — an Alberta-based industrial inspection contractor. This module manages the full asset integrity inspection workflow alongside the standard contractor business operations: corrosion surveys with CML (Condition Monitoring Location) readings and MAW (Minimum Allowable Wall) calculations, magnetic particle NDE test reporting, staff certification tracking with credential management and renewal periods, measuring and test equipment calibration records, and client-facing inspection report delivery that meets industry documentation standards. Additional inspection related modules are planned for 2026.
TimeWerkes is offered commercially. It is built on Microsoft SQL Server with Azure SQL in production and uses Azure Blob Storage for all document/image attachments, Azure Functions for background workflow processing, and Azure Communication Services for automated email notifications.
Who It Is Built For
TimeWerkes is built for small to mid-sized industrial contracting companies — particularly those in inspection, integrity, and related technical services — who need more operational depth than a generic field ticketing tool provides but cannot justify the cost and complexity of a large ERP system. Keith's background as both an inspection professional and a former SAP SME gave him a precise understanding of that gap.
Biggest Obstacle During Development
Deploying to Azure with a CI/CD Pipeline
The most persistent technical obstacle during development was establishing a reliable continuous integration and deployment pipeline to Azure. The resolution was to establish a self-hosted Azure VM build agent — a solution implemented by Dave Hesketh at Llamachant Technology Ltd. — which gave the pipeline a controlled environment. The monthly cost of the VM is under $100, making it a practical and cost-effective solution for a small ISV operating at this scale.
This experience reinforced the value of the Llamachant partnership. The combination of Keith's domain knowledge driving product requirements and Llamachant's deep XAF infrastructure expertise handling the technical deployment challenges means the product gets the benefit of both without requiring a larger internal team.
Modelling Inspection Results: Calculated Fields and Custom Editors
A second, equally significant challenge arose not from infrastructure but from the domain itself: how to accurately model inspection calculations and present them to field technicians in a usable form.
The inspection industry operates on numbers that matter: measured wall thickness, minimum allowable wall thickness (Tmin) calculations, remaining life estimates, and retirement flags. In the Crystal Clear Testing module, each Condition Monitoring Location (CML) carries raw measurement readings that must be evaluated against code-driven formulas — API 510, ASME B31.3, or similar standards — with results that determine whether a piece of equipment remains fit for service. Getting that math right and surfacing the results without burdening the technician with the underlying formulas, required a purpose-built approach.
XPO's calculated expression (persistent alias) system was used to implement the formula-driven fields. Values such as remaining wall percentage and retirement flags are always derived from raw measurement data, with no manual re-entry or separate calculation step. The domain model carries the inspection logic. When a technician enters or imports CML readings, the system evaluates fitness for service automatically.
Alongside that, Llamachant developed a custom property editor to present CML data and its associated calculations in a purpose-built control. Rather than scattering numbers across a standard grid, the editor organizes readings, calculated outcomes, and status flags in a layout that matches how a working inspector or SME thinks about the data. The result is an application that does the inspection math transparently.

Ticket Summary by Client Dashboard

Job Scheduler View

Job Detail View

Corrosion Survey Report
Why We Chose DevExpress
A Return to a Trusted Platform
Keith's decision to build on DevExpress in 2019 was not the result of a product evaluation or a recommendation — it was a return. He had worked with DevExpress components in the early 2000s and had a positive experience that stayed with him. When he decided to pursue serious application development, DevExpress was the first place he went back to.
The specific choice of XAF as the framework was driven by what Keith needed as a first-time C# developer with a clear vision of what he wanted to build. XAF's model-driven approach — where defining a domain class in XPO produces a working UI, security system, and data layer without writing boilerplate infrastructure code — meant that Keith could focus on the business logic he understood deeply and let the framework handle the rest.
The proof of that was immediate: his first XAF application, the animal rescue management system, was designed, built, and deployed in approximately four months of part time work — by a developer who had never written C# before. That application has been in production use ever since, fully donated by DataWerkes including all ongoing hosting costs.
What XAF Made Possible
TimeWerkes uses the full breadth of the XAF module ecosystem. The Security System provides role-based access control across the entire application without custom authentication code. The Audit Trail module — extended through Llamachant's enhanced implementation — tracks every change across all 120 domain entities. The Validation module enforces business rules declaratively. Conditional Appearance drives dynamic UI behaviour. The Scheduler handles staff and job scheduling. Reports Module V2 powers 34 reports covering every business document in the system, from client-facing inspection reports to internal job cost summaries and invoices.
Critically, XAF's cross-platform architecture meant that the same core module and XPO domain model powers three deployment targets simultaneously: a WinForms desktop client, a Blazor Server web application, and an Azure Functions background processing host. A team of any size would find that a significant time saving. For a product owned by one person and built in partnership with a small development firm, it is what made the product possible at all.
Dave Hesketh of Llamachant Technology Ltd., whose team serves as the primary development partner on TimeWerkes, describes the XAF ecosystem as central to how Llamachant approaches every engagement. Llamachant's own framework extensions — including the workflow engine, Azure Blob file attachment integration, AutoIncrementingID, and LlamaLogger — are themselves built on top of XAF, which is a measure of how extensible and production-ready the platform is.
DevExpress Products and Libraries Used
XAF Framework
- DevExpress XAF (eXpressApp Framework) — Cross-Platform .NET App UI
- DevExpress XPO (eXpress Persistent Objects) — ORM
- XAF WinForms UI
- XAF Blazor Server UI
XAF Modules
- Security Module (role-based permissions, integrated mode with lockout)
- Audit Trail Module (extended via Llamachant)
- Validation Module
- Conditional Appearance Module
- Reports Module V2 (XtraReports)
- Scheduler Module
- Dashboards Module
- Notifications Module
- Office Module (rich text / document integration)
- Chart Module
- Pivot Grid Module
- Tree List Editors Module
- File Attachments Module (extended for Azure Blob Storage)
- Clone Object Module
- View Variants Module
Supporting DevExpress Components
- DevExpress Drawing / Document Processor
- DevExpress RichEdit
- DevExpress Blazor PDF Viewer
- DevExpress Code Analysis
Specific Challenge: Approval Workflows Across a Full Business Lifecycle
One of the most complex requirements in TimeWerkes is the approval workflow system — and it represents a significant departure from standard XAF practices that illustrates both the framework's extensibility and what the Llamachant partnership made achievable.
Industrial inspection contractors operate in a regulated environment where documentation and sign-off are not optional. A quote must be approved before becoming a job. A field ticket must be approved before being invoiced. An inspection report must be approved before being delivered to the client. Equipment that was inspected needs a formal closure process chain. These are not edge cases — they are the normal rhythm of how the business operates.
In TimeWerkes, six different business objects — Jobs, Tickets, Invoices, Quotes, Job Equipment Inspections, and Corrosion Surveys — all participate in the approval workflow system through a shared IApprovalObject interface. Approval templates define multi-step sequences with conditional logic, role assignments, and approval group membership. The workflow engine, provided by Llamachant's XAF framework extensions, utilizes an Azure Functions timer-triggered background process that evaluates workflow state every five minutes. When action is required, email notifications are sent automatically via Azure Communication Services with relevant documents attached.
The result is that a field ticket created by a technician on site moves through review, approval, and invoicing without manual chasing — with a complete audit trail at every step, and client-facing documents generated and delivered directly from the same system that captured the original field data.
The departure from standard XAF practices lies in how deeply the workflow cuts across the application's domain model. XAF's built-in approval and state machine capabilities provide a solid foundation, but TimeWerkes required a system where a single workflow engine governs six structurally different business objects, each with its own conditional logic, role assignments, and notification triggers — while still participating in the same audit trail, security model, and UI patterns that XAF provides out of the box. Rather than abandoning XAF conventions, the solution extended them: Llamachant's workflow engine is itself built as an XAF module, which means it inherits and respects the full framework stack rather than operating outside it. Building a workflow engine of this sophistication from scratch would have been a significant undertaking for any team. The combination of XAF's module architecture, Llamachant's workflow framework built on top of it, and Keith's precise understanding of what the inspection industry actually requires at each approval step produced a system that works the way the business works — not the way a generic workflow tool assumes it does.

Approval Template Detail View
Company Name: DataWerkes
Company Website: https://www.datawerkes.ca
