Services / Software development
04 / 08
Software development · Java, .NET, web and integration

Software built for your business. And for whoever maintains it next.

A4IT builds custom applications in Java and .NET, the web front ends on top of them and the APIs between them. The work rests on more than ten years in enterprise software development and project management, applied at the scale of an SME: scalable architecture designed for growing businesses, and existing systems modernised with seamless integration instead of thrown away. You work directly with Tim De Smedt, without middlemen.

What you get, what stays yours, where it stops

Said before the first meeting
You get
  • Working software shown in regular demos, not a status report
  • Source code in version control, with automated tests and a build pipeline
  • Documentation another developer can start from
  • A written scope and estimate per phase, with assumptions listed
Stays yours
  • The source code, the repository and its full history
  • Your data, your database and your hosting accounts
  • The domain knowledge: analysis and decisions are written down for you
  • The freedom to continue with your own team or another supplier
Boundaries
  • No fixed price on a scope that is not yet understood: analysis comes first
  • No going live without tests, a backup and a way back
  • No native mobile apps or game development
  • No claim that software is free of defects: we test, log and fix

What we deliver

Seven building blocks · take one or all
01 · Build

Java and Spring Boot

Java development: enterprise-grade applications with Spring, Spring Boot and microservice architectures designed for scale.

Business applications
Order handling, planning, portals and back-office systems with the rules of your company in the code, not in someone's head.
Spring ecosystem
Spring and Spring Boot for web, security, data access and batch work: widely used, well documented and easy to find developers for.
Data layer
PostgreSQL or SQL Server with versioned schema migrations, so every environment has the same database structure.
Designed for scale
A structure that starts as one deployable application and can be split into services when load or team size asks for it.
02 · Build

.NET and Azure

.NET development: full-stack ASP.NET Core, Entity Framework and Azure cloud services. Modern web applications and robust APIs.

ASP.NET Core
Web applications and APIs in C# on .NET Core, running on Windows Server or Linux.
Entity Framework
Data access with migrations under version control, against SQL Server or PostgreSQL.
Azure cloud services
Hosting, databases, storage and identity in Azure where that suits your organisation. See cloud & PaaS.
Existing .NET code
Older ASP.NET and desktop applications are assessed, stabilised and moved to a supported version step by step.
03 · Build

Web applications and front end

Screens people use all day. Fast, clear and usable by everyone, including with a keyboard or a screen reader.

JavaScript, HTML and CSS
Front ends built on web standards, with a framework only where the application really needs one.
Accessible
Semantic markup, keyboard operation, sufficient contrast and labelled forms, built with the WCAG guidelines as the reference.
Fast
Small pages, few requests and no unnecessary libraries. Speed is measured during development, not after complaints.
Usable
Tables that filter and sort, forms that validate while you type, and a layout that works on a phone and on a large screen.
04 · Connect

APIs and microservices

Robust APIs that other systems, partners and your own front ends can rely on.

REST APIs
Consistent resources, clear error messages, versioning and pagination, so a consumer is not surprised.
OpenAPI contract
The interface is described in OpenAPI and kept in step with the code. Partners can read and test it without calling us.
Security
Authentication, authorisation per role, input validation and rate limiting are part of the design from the first endpoint.
Microservices when justified
Separate services where parts of the system must scale or change independently. For many SMEs one well-structured application is the better choice, and we say so.
05 · Modernise

Legacy integration and modernisation

Legacy integration: modernising existing systems with seamless integration. The old system keeps earning its keep while it is replaced piece by piece. For COBOL, DB2 and JCL applications, see mainframe modernisation.

Assessment
What the system does, which parts are still used, where the risks are and what is no longer supported. Written down before any decision.
An interface around the old
COBOL programs, file-based exchanges and older databases get a clean API in front, so new software can use them. See automation & data.
Step-by-step replacement
One function at a time moves to the new platform, with old and new running side by side until results match. No big-bang weekend.
Data migration
Mapping, trial runs and reconciliation of totals, so nothing is lost or silently changed on the way.
06 · Deliver

Quality and delivery

The habits that decide whether a release is routine or an event.

Git and code review
Every change is in version control with a reason attached, and is checked by the build pipeline before it is merged.
Automated tests
Unit and integration tests run on every change. A bug that is fixed gets a test, so it does not come back.
CI/CD with Jenkins
Build, test and deployment are a pipeline. A release is a repeatable step, not a manual procedure one person knows.
Documentation and installers
Technical and user documentation kept with the code, in Confluence if you use it. Desktop software is delivered as a proper Windows installer built with Inno Setup.
07 · Run

Maintenance and support

Software is not finished at go-live. It needs updates, small changes and someone who answers when it misbehaves.

Updates
Frameworks, libraries and runtimes kept on supported versions, with security updates applied on a schedule.
Monitoring and logs
Errors are logged and reported, so a problem is often known before a user calls. See infrastructure.
Changes and fixes
Issues tracked in JIRA or your own tool, each with a status you can follow and a release it belongs to.
Agreed in writing
What is covered, how to reach us and how fast we react is set down in a support agreement, not implied on a web page.

How an engagement runs

Small steps · a decision after each
  1. Intake
    A call of thirty minutes: your question, your systems, your constraints.
    30 minutes
  2. Analysis
    Requirements, existing systems and risks, with a scope and estimate.
    Scope + estimate
  3. Build in iterations
    Agile: short cycles, each ending in a demo of working software.
    Regular demos
  4. Release
    Acceptance by your users, data migrated, deployment through the pipeline.
    In production
  5. Maintain
    Updates, monitoring and changes under a written agreement.
    Kept current

Technology

Chosen per case · nothing is mandatory
JavaJava, Spring, Spring Boot
.NET.NET Core, C#, ASP.NET, Entity Framework
Web & APIsJavaScript, REST APIs, OpenAPI, Microservices, XML & XSLT
DataSQL Server, PostgreSQL
DeliveryGit, Jenkins, JIRA, Confluence, Inno Setup
PlatformsLinux, Windows Server, Azure, Jelastic, COBOL for legacy systems

Good fit, and not a fit

Saves both of us a meeting
A good fit when
  • Standard software does not cover how your business really works
  • An existing application must be extended, connected or modernised
  • You want to speak to the person who designs and builds it
  • Someone in the business can answer questions and attend the demos
Not a fit when
  • A standard package already does the job: buy that instead
  • You need a large team on site next week
  • The scope is a full replacement in one step with no time for analysis
  • The project is a native mobile app or a game

Questions about software development

All questions →
01Java or .NET: which one should we choose?

Usually the one you already have. If your systems and people are on Microsoft technology, .NET fits; if you run Java or want to stay platform-neutral, Java does. Both are sound choices, and we explain the reasoning for your case.

02Who owns the source code?

You do. The code lives in a repository you have access to from the first day, and the terms are written in the agreement before work starts.

03Can you give a fixed price?

For a scope that is clearly described, yes. For anything else we first do a short analysis, after which you get an estimate per phase with its assumptions. A price on a guess helps nobody.

04How do we follow progress?

Through regular demos of working software and an issue list you can open at any time. See how we work and project management & analysis.

05Can you take over software someone else wrote?

Often, after an assessment. We need the source code, a way to build it and access to a test environment. You get a written view of its state and the risks before we commit to maintaining it.

06Where does the application run?

Where it suits you: your own servers, Azure, or Jelastic PaaS. Hosting is decided with you and documented. See cloud & PaaS.

Describe what your software should do. We will tell you how we would build it.

Reply within three business days.Discuss your project →How we work