Consilia is Customer-Oriented Software Development Company

As a result of a long-time development of a wide spectrum of software solutions, our engineers can provide custom software development.

Consilia helps its customers to reduce their software development budget.

Due to the long time spent developing a broad spectrum of software solutions, our engineers can provide custom software development.

We have been developing applications and embedded firmware for many years.

We use Git repository system on a daily basis, no matter if we are working on Linux apps or real-time embedded software.

A usual question for electronic product developers who order services from a software development firm is how to embed software into hardware.

A considerable benefit of cooperation with Consilia R&D company is that we have competence in both hardware and software development.

We can integrate SW and HW in one embedded device without the need for multi-supplier challenges, and we also provide system testing.

It helps our customers to reduce their software development budget.

Software Development Services

We can speed up your software development project in many areas.

Linux Application Development

Applications are the top layer of the whole software stack running on operating systems.

We develop applications that make the brain job of the features.

E.g., applications that provide GNSS data to the LAN or USB ports or the local host through inter-process communication.

Linux BSP Creation and Processor Porting

Processor platform exchange is the task for our hardware developers. Our software developers consequently build an OS (often a Linux BSP) for the new processor.

And we also develop a hardware abstraction layer for various processor platforms.

Software Testing

We do the software testing in all known development phases.

We provide software testing also as a specific service. We either get the product specification and create a test plan or get the test plan for review.

Frontend Development

We are moving forward and optimizing our solutions towards higher speed and less memory usage.

Our frontends are web-browser applications or separate compiled applications with access to the same API as web browsers.

Backend Development

We develop servers (backends) running on the ARM Cortex-A processor and one of the Linux distributions.

We find a solution for almost any requested functionality or interface. We work with REST API, web socket, or with our customized binary-data TCP protocols.

Driver Development for Windows & Linux

Drivers are a significant part of the software for operating systems running on customized hardware platforms.

We are enthusiastic about developing custom drivers for Linux. On certain projects, we support specific customers also with drivers for Windows 10 and 11.

Firmware Development

We develop bare metal applications focusing on low-cost BOM, low-power dissipation, and real-time code execution.

We empower our customers in many application areas, e.g., compact automation, Industry 4.0, home appliances, software-assisted sensors, IoT (Internet of Things) applications for hobbies, professional tools, and many others.

What We Can Do for Your Product

We provide services in every phase of the software development life cycle.

It depends on the customer whether they need to use our entire process chain or just some of our services, especially when the customer has their own team with a gap in specific competence (e. g., software testing).

Feasibility Studies

Before the project's realization, we carefully analyze whether and what technologies can fulfill all the requirements, including manufacturability and production costs.

For such an analysis, we need certain inputs from the customer – e.g., technical requirements, target cost, and schedule.

1

Software Architecture Design

We consider the design of SW architecture a vital part where we spend reasonable effort at the early stage and save many costs later.

We sketch up the layers of the software, suggest the functional blocks and define relations between them.

2

Proof of Concept

In some cases, we create a fast prototype that shows us (and the customer, of course) if the system architecture candidate has a great chance to fulfill the key functionalities and requirements.

On such a POC (Proof of Concept), we also test and measure critical points, e.g., mechanical stability, system responsiveness, data throughput capability, and power consumption.

3

Data Flow Models

Based on software architecture, we create detailed data flow models where we exactly see if it fits the requirements.

We use the output of this phase as a basis for creating the modules/units and the unit test plan.

4

Research on Solutions

Many marketing models can be realized in multiple ways.

We always analyze multiple solutions or concepts to stimulate a sort of internal competition among them and to select the best of them.

5

Implementation

We implement the software using a revision control system extensively. We have had very deep experience with Git for many years.

When merging the feature branches into master branch, the system assists us especially at code reviews.

6

Unit Tests

Our team internally takes care of the unit tests.

We use the unit tests to debug the unit/module at the lowest possible level, which is for us one of the most cost-saving ways to stable and reliable software.

7

Vertical Integration of the Components

In projects where the Agile approach is selected as the best, we make vertical integration of the components together to get a visible feature or functionality every one or two weeks.

That enables the product owner to track whether the project is going straightforward and to disclose potential critical path as soon as possible.

8

Integration with HW

Cooperation of the software and hardware team is our strong arm.

Our hardware colleagues are highly experienced in creating our own hardware modules and planning hardware/software interface in advance.

Therefore, we usually perform hardware/software integration seamlessly and avoid finding critical system bugs too late.

9

Feature Tests

As a part of the vertical integration, we test the system features based on the feature test plan.

When appropriate, we create our own test system and implement the tests so that they can be reused and repeated at any time.

10

Regression Tests

When adding and implementing new features, we test the existing ones as well to keep the whole system working reliably in all its parts. Basically, regression tests are for us feature tests repeated on a regular basis.

Therefore, we reuse the test system and test cases from the feature tests.

11

How We Can Work

We know how to manage our software development team.

We use various development approaches.

During the last twenty years, we have got experience with two different software development processes: V-model based and Agile based; for Agile, we can work both in Scrum and Kanban mode.

If you are interested in these software development processes discover more about our work in our article Comparison of V-model based and Agile software development methodology.

Our Experiences and Focus

We create these software design solutions.

In Test and Measurement devices, we often make an embedded software application for the target device itself and add a native or web-based application for the client device (PC or mobile). The interface can be a traditional wired one (USB or wired LAN) or wireless (Bluetooth, Wi-Fi, LTE, and others).  

The same approach often applies to IoT applications, where sensors run on bare-metal software and communicate with a gateway through Bluetooth or other IoT connections.

The gateway may be equipped with a light-weight Linux operating system and may typically provide a web server application for the connection to anywhere in the world. The user can access the system via mobile software with user-friendly gadgets.

Key Application Areas

We provide our custom software design for a variety of markets.

We support with our software development industry segments of Test and Measurement Devices, Radiocommunication, Automotive, Industry 4.0, Automation.

Our team worked for automotive or aviation industry segments, which are special for need of software certification.

Technologies and Platforms

These technologies and platforms are behind our software development.

For the software development, we always use bug tracking system JIRA and bitbucket (both made by Atlassian). All other technologies differ depending on the application (embedded, native, web), platform (ARM Cortex M0 – M4, ARM Cortex A7 – A73, ST32), and programming language (C, C++, C#, Python, JavaScript).

For more information on what technologies, platforms, and programming languages we use to develop software, please visit page Integration Technologies.

Device Drivers

Windows – Windows Driver Kit (WDK)
Windows – Kernel-Mode Driver Framework (KMDF)
Linux – Linux Kernel Device Model

Tools/Frameworks

ReactJS
Angular
NodeJS
Express
ElectronJS

Programming Languages

C/C++
Python
JavaScript/TypeScript

Coding Tools

MS Visual Studio
Visual Studio Code
Atom
Eclipse
Clang

Continuous Integration

Jenkins

Version Control

Atlassian Bitbucket
SVN
Gitea

Project management

Atlassian JIRA (Kanban & Scrum)

Architecture model

Enterprise Architect
PlantUML
MS Visio
Lucid Chart
MS Visual Studio

Let us know
about your future software development project.

Leave us your contact details, so we can get in touch with you. We will get back to you via e-mail as soon as possible to consult the opportunities of our cooperation on your project acceleration.

* Required fields are marked with an asterisk.

Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Pavel Vrtík

Pavel Vrtík

Business Development

email
pavel.vrtik@consilia-brno.cz

Feel free to contact me directly.

Tens of thousands

Tens of thousands

of embedded source code lines

However, our software engineers understand that software development is not just coding.

You are here:
SW Development Services Overview