Services

Machine learning
POC
Development
QA
Project management
Support

Machine learning

Machine learning is an effective way to automate any task where there is numerous data which is processed in the same manner, e.g. face recognition, object classification, speech-to-text or text-to-speech conversions. At the analytic stage we can reveal how ML can be applied to your task and if it is the best solution. Our ML-engineers will be involved in further development. First of all we will try to adapt existing ML components, but, if these components do not fit your unique task, we will engage in all stages of new machine models creation including collecting and marking up data, learning, validating, performance optimization for a target hardware platform.
Collecting and marking up data
This stage of machine learning plays a key role in the quality of the final solution. We can implement this stage ourselves or prepare detailed instructions to help you collect and mark up data. You will get a data set of agreed size, fully annotated and marked up for further model training.
Model training
ML (machine learning) is a process of teaching computers to do specific actions, based on a set of similar examples. There is a simple idea in theory: if you show a computer many examples of input information and desirable actions (these pairs of “piece of information-desirable result” are called training data), ML technique helps the computer to generalize this information and produce a model of this process so the system can process similar information in the same manner in the future. Training is a complex multistage process. Usually ML may be applied to recognize speech and convert it into a text, classify products on a shelf or to detect spoof attacks on biometric systems. A result of the training stage is a model and a prepared environment for its use on a target hardware.

POC (Proof-of-concept)

Often, at the start of the work, there is only a basic idea of the application, which requires inspection. It is recommended to create a mockup for the application with a core functionality and design to prove the concept in an efficient manner.
A proof-of-concept (POC) creation process requires continuous collaboration with a client: together with you we find the cheapest and fastest technique to prove the initial idea. Sometimes only a couple days are required to see an outline of the new product and then to start development of the production version.
A common misconception, about which we warn our clients is that the POC is just a draft sketch of the software. If the product idea is proven, this draft has to be redesigned from scratch on the basis of a well-designed architecture, taking into account the requirements for the Software development

Software development

Analytics
Together with you we will dive deeply into your subject area, analyze use-cases and data flows. As a result, you will get a technical specification that includes: a structure of functional and non-functional requirements, associated with business requirements.
Architecture development
A choice of frameworks, a components composition of the application, interfaces of each component and methods of integration with external systems are the tasks of the architectural stage. Depending on the complexity of the solution, methods for architecture description may vary. Architecture description insures you against incorrect assessment of project risks, wrong time and resource planning.
Design
Visual interfaces play a key role in software success. We can use mock-ups prepared by your designer or our visual user interface (VUI) specialists prepare a full design package including mock-ups, icons, photographs and screen layouts.
Code development
At this stage requirements specification and design package are required artefacts. According to these specifications we will develop an application for Android/iOS platforms, create web or desktop applications or embedded software. If the stability of the solution is critical to you, we will supplement the code with the necessary Unit and UI tests. We use Agile / Scrum development methodology, so we are ready to share, with transparency, the preliminary versions of the software at each iteration and jointly discuss goals for the next step. For complex long-term projects, we are able to deploy CI / CD infrastructure. As a result of our work, you will receive source code, a compiled application and / or downloadable files for publishing the application on the Apple App Store or Google Play Market.

QA

Quality assurance is not just bug testing. This is a process, which starts at the analytic stage and ends with deployment. We control our project for compliance with technical requirements, prepare a test set for each test case, check the design for compliance with design specifications. Finally, we test user and administrator documentation for their сompleteness and quality.
You will receive stable documented software that works on the target platform or set of devices, checklists and descriptions of test cases.

Project Management

All stages of a project can be managed by your own manager or this service can be outsourced to our experienced project managers. They will prepare and keep actual project plans, distribute tasks for team members, control tasks progress and inform you about any risks or deviations from the plan. You can find together with our manager an appropriate method and frequency for project reporting, communication channels and project methodology. We can use classic waterfall style but prefer Agile/Scrum paradigm. We are ready to adapt to any project management style which your company supports.

Technical support

At the end of a project, you will get a complete set of programming code, compiled components and documentation, which is enough to provide technical support on your side. We also provide technical support service on our side. Just choose appropriate SLA and we guarantee dedicated work of your solution during its lifecycle, including supporting new devices or system software updates.