Software Development

We develop software applications using the most varied technologies; Android mobile applications connected on Java and Kotlin; IoS applications, QT applications, and cloud applications. For our software products we maintain an automated test suite and continuous integration on Jenkins to ensure product quality.

QT Applications

We develop custom software for embedded systems in a wide variety of sectors, including industrial systems and medical devices. We develop complex user interfaces based on the Qt toolkit using C++ and QML. Applications we development usually run on on technologies like:

• EGLFS
• Wayland
• Xorg

 

And on different platforms like:

• Intel x86 family
• Nxp imx6 family
• Nxp imx8 family
• Rockchip rk3288, rk3399, px30

 


Cross-platform applications

We are able to create cross-platform applications running on several operating systems like Android, IoS, Windows. We have experience with cross-platform applications thanks to the react-native framework which is widely used by companies like Facebook to easily support both Android and iPhone devices.


Android applications

We are developing android apps on a daily basis from most simple test applications for customers’ specific device features to complex applications. We maintain them in the long term and continuously extend their functionalities. We have years of experience in using many of standard Android features as well as specific ones related only to specific hardware:

• Barcode scanning
• Security testing and integrity of specific Android device
• Providing diagnostic features
• Integration of robotic arm in several Android applications for automated testing of Albert payment terminal
• Detailed NFC testing focused on particular Mifare NFC technologies
• Reading SD cards
• Testing specific modem features
• Testing video and playback features

 

We have participated and development applications published on Google Play like those:

• Door Entry
• Voclarion App
• Alcosystem Application
• Deva Control Application

 


IOS Applications

We have a team dedicated to native iOS development for higher complexity applications where specific native features are required. In such cases we have better control of the code as there is no additional layer between because we don’t depend on external libraries.


Cloud Applications

We are taking care of whole products which often include both clients and backend servers. Backend servers are deployed within the cloud and deployment process is automatic within our Continuous Integration infrastructure thus providing backend server code changes to QA testing is very fast.
We are experienced in several frameworks for backend development and we mainly focus on simplicity, scalability, and security.


Development flow for application development

Our development process includes a variety of tools integrated together in order to make the final product high quality:

• Code review tool

Every code change needs to be approved by the experienced developers. We use a powerful Gerrit tool which makes the review process very efficient. Proposed changes are immediately visible to our experts from several countries.

• Verification builds

Every code change has to be confirmed by Jenkins server first. We do not risk any compile errors, security errors, unit test errors after merging the new code. Our scripts are adopted to manage verification of small applications as well as huge multi-projects like Android OS.

• Release builds

Releasing a new software version is done via the Jenkins build server. We are experienced in making the release process straightforward and easy to perform. Our build scripts are adopted to make releases with few clicks in the web interface.

• Knowledgebase

We are extending our knowledge base day by day via the Confluence documentation tool. All our specific experience is easily accessible in one central place by all developers. It is well organized to find relevant information quickly.

• Tasks

All our work is tracked in the Jira tool which together with our Gitea git repository tool provides a very efficient way of task organization. It can be accessed by our customers to easily track the progress on particular projects. Large projects are managed in smaller sprints using an agile methodology. Sprint backlog for each sprint is defined always during a sprint planning session.

• Communication

Communication between the team members is done via a public and private channel in the Mattermost tool which provides an efficient real-time way to share temporary information.


Have a project idea in mind?