Work Services About Career Contact Get in touch
contact@artemisoft.mk
+389 2 3229 622

Services

How we work.

These cover almost everything we do. Most projects begin as one of them and change shape over the years.

Full project delivery

We take a system from the first client interview through infrastructure design, technical documentation, programming, testing, deployment and user training. One team stays accountable for the whole path, so there is no handover where responsibility goes missing.

  1. Interview
  2. Infrastructure
  3. Documentation
  4. Programming
  5. Testing
  6. Deployment
  7. Training

Testing runs through the whole path: unit, integration and end-to-end suites, with load testing before go-live. Once a system is live we monitor it, so a degradation is usually found before anyone reports it.

The team stays with the system after release. Several of the systems we built this way have been in production for more than a decade, maintained by the engineers who designed them.

Engineers in your team

Developers who learn a client's domain and processes, then work inside the client's team on the client's working day. Engagements run for years, and the people on them do not rotate. This is the arrangement most of our longest-standing clients use.

We work from Skopje on Central European time, using the client's own repositories and tooling.

Customer-facing platforms

Systems a client's own customers use directly: booking, ticketing, investor and self-service portals. We build the interface, the services behind it and the database underneath as one piece.

The usual shape is an Angular or React interface over Spring Boot services and a PostgreSQL database, deployed with Docker and Kubernetes. Where a client already runs on Oracle or on its own infrastructure, we build against that.

Mobile applications

Native iOS and Android applications, built in Swift and Kotlin. They work against the same services as the web system, so a change to a business rule does not have to be made three times.

Where a case does not justify maintaining two native codebases we use Flutter, and we will say which of the two we think fits before any code is written.

Internal and regulated systems

ERP, distribution and reporting systems for processes that no off-the-shelf product covers. We take these through analysis, project management, development, implementation, training and support.

We have built systems of this kind for capital markets, pharmaceutical distribution, public transport and heavy industry. In those sectors audit trails, traceability and reporting are specified at the start, because they are reviewed from outside the company.

Legacy systems and integration

Connecting new software to systems that cannot be replaced, and replacing the ones that can. A project usually begins by establishing what the existing system actually does, since that behaviour is often undocumented and often the only remaining record of the process.

We have rewritten legacy billing and database systems, migrated their data, and built against third-party services we did not control.

Automation and AI

Taking manual steps out of processes that already work: scheduled data processing, document handling, and language models where people are currently reading something and typing it in somewhere else.

We build this into the system that already holds the data, mostly in Python. Where a model is involved we are specific about what it may decide and what stays under human review. These are regulated environments, and an unexplained output is not an answer.

Technology

What these systems run on.

The core has been Java since 2006. Nearly everything around it has been replaced at least once. We choose tools a client can still hire for in ten years, and we keep them current.

Application core

Where the business rules and transactions live.

  • Java
  • Spring Boot
  • Spring Security
  • Hibernate / JPA
  • Keycloak

Web interfaces

What people use to do the work at a desk.

  • Angular
  • PrimeNG
  • React
  • TypeScript

Mobile

Native where it matters, cross-platform where it does not.

  • Swift
  • Kotlin
  • Flutter

Data

Transactional schemas, reporting, and migrations off legacy databases.

  • PostgreSQL
  • Oracle
  • MySQL
  • Redis

Messaging and search

The traffic between services, and finding things in a lot of records.

  • Kafka
  • RabbitMQ
  • Elasticsearch

Testing

Unit, integration and load, run on every commit.

  • JUnit
  • Mockito
  • Testcontainers
  • JMeter
  • k6

Build and deploy

How a release reaches production.

  • Docker
  • Kubernetes
  • Jenkins
  • GitLab CI
  • GitHub Actions

Monitoring

How we know a system is healthy without being told.

  • Prometheus
  • Grafana
  • Zabbix

We deploy into whatever a client already runs: AWS, Azure, Google Cloud or their own datacentre. Node.js appears where a project calls for it.

Start with the problem.

Describe what is going wrong or what is missing, rather than the solution you have in mind. We will come back with how we would approach it.

Or write to contact@artemisoft.mk · +389 2 3229 622