As a result of a long-time development of a wide spectrum of software solutions, our engineers can provide custom software development. We provide turnkey development or we support just in specific phases.
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.
We can speed up your software development project in many areas.
Applications are the top layer of the whole software stack running on operating systems.
E.g., applications that provide GNSS data to the LAN or USB ports or the local host through inter-process communication.
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.
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.
Our frontends are web-browser applications or separate compiled applications with access to the same API as web browsers.
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.
We are enthusiastic about developing custom drivers for Linux. On certain projects, we support specific customers also with drivers for Windows 10 and 11.
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
It depends on the customer whether they need a turnkey solution, i.e. 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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
How We Can Work
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
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 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
For more information on what technologies, platforms, and programming languages we use to develop software, please visit page Integration Technologies.
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.
Tens of thousands
Tens of thousands
of embedded source code lines
However, our software engineers understand that software development is not just coding.