---
title: Software expertise and projects | Karbonic
canonical: https://www.karbonic.net/expertise-en.html
description: 'ERP, custom software, security and document processing: explore Karbonic
  projects and software engineering methods.'
meta-description: 'ERP, custom software, security and document processing: explore
  Karbonic projects and software engineering methods.'
language: en
og:title: Software expertise and projects | Karbonic
og:description: 'ERP, custom software, security and document processing: explore Karbonic
  projects and software engineering methods.'
og:image: https://www.karbonic.net/assets/expertise-structure-v14.webp
og:locale: en_GB
og:type: website
og:url: https://www.karbonic.net/expertise-en.html
twitter:card: summary_large_image
twitter:title: Software expertise and projects | Karbonic
twitter:description: 'ERP, custom software, security and document processing: explore
  Karbonic projects and software engineering methods.'
twitter:image: https://www.karbonic.net/assets/expertise-structure-v14.webp
theme-color: '#17212c'
---
# Software. Systems.

Our work is information processing. Software is designed to structure, check and protect information, and move it between your tools.

![An organised software interface connects to three intact glass modules assembled on a shared base.](/assets/expertise-structure-v14.webp)

## Understand the business, then build

**“I want someone who understands what my software needs to do.”**

A quotation, a stock movement or an accounting calculation depends on precise rules. Screens, data exchanges and checks are defined around those rules.

This practice draws on more than twenty-five years in IT: a qualification in business information technology completed in 1997, a first financial consolidation ERP delivered in 1999, followed by several ERP developments alongside accountants.

The experience also includes leading a team and substantial IT systems. Today, Karbonic is a small business with a single point of contact from understanding the business requirement through to deployment.

- Understand operations, exceptions and authoritative data.
- Connect the application to existing equipment, access controls and tools.
- Plan checks, data migration and maintenance.

**Getting started**

A real operation, an example of the expected result and the limitations you face are enough for an initial discussion.

[Custom software development — FR](logiciels-sur-mesure.html) · [Work organisation and budget — FR](accompagnement.html)

## Work we have already carried out

**“I want to know what experience my project can draw on.”**

**Sectors and contexts:** industry, printing, semiconductor inspection, welding systems for plumbing, financial management and law firms.

### Develop software for business operations

A first ERP system for financial consolidation was delivered in 1999. Further ERP systems were then developed alongside accountants, translating business operations into processing rules and checks.

### Keep software in use over time

Technical documentation management software developed in 2006 remained in use within an industrial group until 2024. This experience covers both the development of the tool and the organisation of the information it manages.

### Make technical subjects understandable

Writing and translation work has covered high-speed printing machinery, semiconductor inspection equipment and welding systems for plumbing. The operation, procedures and specialist terminology must be understood before they can be explained.

### Manage and secure systems

Assignments include managing IT estates, virtualised or physical servers and communication systems. Equipment, access rights and protection are considered together; telephony can be integrated into this organisation.

### Examine digital traces

Forensic analysis of workstations and phones, together with detailed log audits, is carried out for clients including law firms. Depending on the information available, examinations cover deleted data, system or firewall logs and location traces. Findings are distinguished from hypotheses and information that cannot be established.

[IT estate and server management — FR](gestion-parc.html) · [Writing and translation — FR](documentation-technique.html)

## Distributed products

**“I am looking for an established tool for a specific need.”**

K-Shield, NetWatch and HTML Editor are software tools developed by Karbonic. Their provision and the support required are defined according to your situation.

### K-Shield — restore a website and improve its security

A compromised website needs to be examined, repaired and monitored. K-Shield combines reinstalling a clean core with signature-based and heuristic detection of backdoors.

- Detected items are named in the report; reversible quarantine allows affected files to be handled.
- Database cleaning and hardening are part of the recovery functions.
- Depending on the configuration, a web application firewall and behavioural analysis complement monitoring.

Recovery is carried out while preserving your control over access. Findings and the limits of the analysis remain identifiable.

**Getting started**

The website address and the symptoms you have observed, without sending a password in your first message.

[Explore K-Shield — FR](kshield.html)

### NetWatch — see the estate and endpoint protection

Having protection software installed does not describe the state of an entire IT estate. Deployed at customer sites, NetWatch brings together the local network inventory and endpoint protection information.

- Equipment and protection coverage are inventoried.
- Gaps are made visible in reports and alerts.
- Commands can be executed from a workstation on the network, within the agreed scope of intervention.

**Getting started**

An inventory, even if incomplete, and the management and security tools already in use.

[Explore NetWatch — FR](netwatch.html) · [IT estate and server management — FR](gestion-parc.html)

### HTML Editor — structure and publish documentation

Documentation needs to keep pace with product changes. HTML Editor brings together structured editing, PDF publishing and exchanges with word-processing documents, using DITA or DocBook according to the need.

- Content is organised for reuse and maintenance.
- Document exchanges and outputs are checked against representative examples.
- AI-driven operation is part of the authoring and review process.

**Getting started**

A representative document, its variants and the formats in which it needs to be published.

[Explore HTML Editor — FR](html-editor.html) · [Technical writing and translation — FR](documentation-technique.html)

## Expertise & R&D

**“My requirement does not fit a ready-made application.”**

The work below illustrates ongoing development. It presents skills being applied; its inclusion here does not mean that a complete product is available for sale.

### An ERP built around business operations

Development covers quotations, invoices, purchasing, stock, time, accounting and payroll. A bridge to an existing desktop application prepares a gradual transition towards its replacement.

- The relationships between operations and their accounting consequences are taken into account.
- Data migration and exchanges with the existing tool are part of development.

**Getting started**

A business workflow, from the initial document to the accounting result, and the data that must be retained.

### Email connected to several services

A desktop client brings together several email and calendar connectors. Heavy processing is organised separately from the interface.

- Connections to mailboxes and calendars are integrated into one tool.
- Background processing and synchronisation are taken into account in the architecture.

**Getting started**

The services to connect and the operations that currently require switching between tools.

### Summaries whose facts remain linked to source documents

A document summarisation engine is being developed around a fidelity framework: every fact must be linked to its source and pass defined checks. Items that fail those checks are excluded from the summary and flagged for review.

- The document and passage used remain identifiable.
- Accepted facts and items requiring verification are kept separate.
- The correspondence between a statement and its source must be checked: a reference alone does not establish it.

**Getting started**

An anonymised case file, the questions to answer and the documents that should serve as references.

### Document management that keeps files accessible

A document management system is being developed around one principle: folders and files remain readable without the application.

- Text recognition and automatic classification support document processing.
- Approval workflows organise work around the folders.
- Access to files is retained independently of the management interface.

**Getting started**

A typical folder, its current organisation and the processing or approval stages.

[Discuss custom software — FR](logiciels-sur-mesure.html) · [Automate tasks — FR](logiciels-automatisation.html) · [Control data and its processing — FR](donnees-ia.html)

## How we build

**“I want to know how errors are identified and results checked.”**

A new application, an existing system or an AI-generated prototype is examined against its intended use: inputs, business rules, expected results and failure cases.

The following examples illustrate engineering principles. They are generic and simplified, not extracts from Karbonic products.

### Migrate data with explicit checks

For an import, field mappings are defined before the transfer. Processing is grouped where appropriate, then checked: record counts, keys, relationships, values and totals relevant to the business.

SQL example for MariaDB: the source remains unchanged during the check, the target is empty, field types match, and `ref` is a unique, non-null key. Data is transferred in one query, then the same fields are compared on both sides.

```sql
-- Same field types; stable source, empty target, unique non-null ref.
INSERT INTO cible (ref, libelle, montant)
SELECT ref, libelle, montant FROM source_normalisee;

-- Compare all keys and row hashes, including missing or extra keys.
SELECT ref, MD5(JSON_ARRAY(ref, libelle, montant)) AS empreinte
FROM source_normalisee ORDER BY ref;
SELECT ref, MD5(JSON_ARRAY(ref, libelle, montant)) AS empreinte
FROM cible ORDER BY ref;
```

The two result sets must then be compared by key: different checksums, missing keys and extra keys. Row counts are checked too. A checksum per row avoids relying on the maximum length of a combined string; it is not proof of authenticity.

A fingerprint calculated from normalised data can supplement the comparison. It replaces neither the checks on transformation rules nor those on the business result. Acceptance and rollback conditions are defined before the switch.

### Measure a stage to locate a slowdown

A log can identify the stage, its duration and any failure. Stage names are defined in advance; the content of processed documents does not need to be included in the log.

```python
import logging
from time import perf_counter

def run_step(name, operation):
    start = perf_counter()
    try:
        return operation()
    except Exception:
        logging.error("step=%s status=failed", name)
        raise
    finally:
        # Record timing without logging the processed content.
        logging.info("step=%s elapsed_ms=%.1f",
                     name, (perf_counter() - start) * 1000)
```

Measurement provides a starting point for investigation. It helps distinguish slow processing from a network wait or an error at a specific stage.

### Separate a checked fact from an item requiring review

```python
def select_supported(facts, sources):
    accepted, pending = [], []
    for fact in facts:
        source = sources.get(fact.get("source_ref"))
        # A reference alone does not validate a claim.
        checked = fact.get("support_checked") is True
        if source is not None and checked:
            accepted.append(fact)
        else:
            pending.append(fact)
    return accepted, pending
```

This filter applies the outcome of an earlier check. It does not itself verify the meaning of a document. The validation status must come from the defined correspondence check, and pending items must remain visible.

These methods use languages suited to the project, including C, C++, Delphi, Java, JavaScript and Python. Systems integration and digital forensics complement this practice: understanding dependencies, locating traces and explaining what happened.

[How results are checked — FR](approche.html) · [Digital investigation — FR](investigation-numerique.html)

## A practical application: updating this website

**“I want to request a change without editing the files myself.”**

This website's management connects a request in everyday language to an interface for reading, modifying and publishing content. Versions are retained so that an earlier state can be restored.

This illustrates integration work: connecting a requirement, an assistance tool and the system that executes changes. The history makes it possible to retrieve a version; the result still needs to be checked before and after publication.

## Data choices explained

**“I want to know where my information is processed.”**

Hosting and processing in Switzerland can be arranged. Depending on the use case, some processing can also remain on your own equipment. Processing locations, access, dependencies and recovery options are clarified before choosing a solution.

[Hosting and control over data — FR](hebergement-donnees.html)

## Let's discuss what you want to improve

Describe an operation, a tool that limits you or a result that is difficult to obtain. The scope, options and initial checks will be discussed with you.

[Let's discuss your project — FR](contact.html) · [Work, budget and schedule — FR](accompagnement.html)
