Introduction

In xitee, we have experience in developing software solutions with the know-how of digital businesses, finance & energy and healthcare sectors. We have a wide range of customers, from small startups to big corporate companies. We serve customers who have no experience with software development as well as specialized software houses.

Our goal is to always produce high-quality, well-tested software which is ready for production use in the shortest time with the lowest cost possible. These apparently divergent goals are achieved by following a plan and our internal best practices that remove the typical pitfalls of software development projects.

We anticipate any possible costly mistakes, such as failing to ask the end-user or client for feedback, which eliminates redundant rework and after-the-fact fixes. We focus profoundly on the testing phase and code reviews, which save a lot of rework, time, and money in the future. Also, we are always applying our deep industry knowledge.

New development

We offer development of solutions with maximum added value for our customers. That includes everything starting from business requirements analysis, through solution design (functional, graphical and technical), realization, deployment and following support.

Our past projects included a variety of different technologies for almost all platforms. Most commonly we use Java or .NET as backend and Angular or React for new web solution software development. Our experienced team is ready to always find the best solution for your specific needs. For more information about the technologies refer to Technologies.

Each project we work on includes a proper quality assurance (QA) before the project goes live.

Quality assurance

There are six foundation blocks (Version control, Continuous integration, Issue tracking, Unit tests, Reviews, Code analysis) that ensure the quality of the software and therefore of the product itself. Various synergies between the specific parts enable transparency and maintainability. At the same time these components work as a toolkit for every single software developer.

Through the usage of a version control, each modification of the code is comprehensibly documented, and each version can be restored at any time. This grants flexibility to the development and allows a precise analysis of all arising errors of the software.  

The use of a continuous integration (CI) system allows a controlled compiling of new software versions as well as continuous reporting for the developers regarding any arising errors during the compilation. Additionally, automatically elicited key figures, which display the state of the product, can be generated and reported. Features and bugs, as well as milestones and project tasks, are managed through the Issue tracking system (JIRA and / or Confluence). This creates traceable and transparent development from requirement analysis to delivery and allows the creation of relationships between individual tasks or features. 

Redevelopment

When evaluating the health of your current solution’s architecture and deciding whether to rewrite or refactor, every company needs to consider many aspects to make a correct decision. 

Some of the key aspects are:

  • Achieving business goals: might be different for each company. Some examples of business goals are  a focus on new customer requirements & feature releases, a focus on quality and performance of the product, gaining new customers & market share etc;
  • Technology : we have to consider how long  the currently used languages and frameworks will be supported. Are there any emerging technologies and trends which the application can benefit from? (i.e. clouds, microservices, new framework versions);
  • Reduction of costs to maintain and implement new features: reduction of current technological depth, shorten time to market
  • Performance & security: Is performance an issue which cannot be resolved with a current architecture? Do you want to examine your security with security penetration testing or security certificate? Do you want to elevate your security standards?
  • Customer experience: Are you current end-customers satisfied with your application’s UI/UX designs? Can new UI/UX further improve efficiency? For internal applications we can consider for instance whether an app can further improve productivity of  employees.
  • Quality of current codebase: Does your solution have correct design patterns? Did you use code style & unit tests? Does your solution suffer from bugs?

xitee can take over support & further development of your solution during the analysis stage.

Examples of possible agreed approaches:

  • continuing to develop with the old codebase;
  • keeping the old codebase but focusing on refactoring;
  • rewriting the whole system from scratch;
  • rewriting the system part by part.

Mobile development

xitee offers different types of mobile development based on your requirements. Native development produces solutions with high performance; however, it can be rather costly to build. If you have a limited budget to work with, a cross-platform development might be a suitable option for you. It is possible to save up to 50% as only a single codebase is created for a solution that works on both Android and iOS.

If you do not need to have your solution on App Store or Google Play and you wish just to provide mobile friendly environments for your users, we can use Progressive web apps (PWA) with some of mobile application capabilities. The cheapest and fastest solution might be to use only web solutions optimized for mobile devices.

Native development

Native applications are being developed through their native operating environment. In the case of a native development, developers use a programming language adopted for a particular platform, such as for example Objective-C and Swift for iOS or Java for Android. 

Advantages of native development:

  • stable and fast performance;
  • maximum app lifetime;
  • the application is more flexible and scalable, due to the native tools usage;
  • less restrictions in the architecture and functions;
  • the interface is made in a full compliance with the platform.

Cross-platform development

Cross-platform solutions are developed through a shared operating environment, such as Xamarin. A cross-platform solution is a universal solution that is supported by several mobile platforms at once. On one hand, it is convenient and profitable, but on the other hand, there might be a need to accept certain compromises, since it is difficult to tailor the solution to various operation systems. 

Advantages of cross-platform development:

  • the development takes less time and resources;
  • the speed of development increases.

Progressive web app (PWA)

A progressive web app is built from web technologies, such as HTML, CSS, and JavaScript, but with a feel and functionality that rivals an actual native app. Due to smart additions, you can turn almost any website into a progressive web app, which means that you can build a PWA in a short period of time.

Advantages of PWA development:

  • you do not have to go through the process to get into different app stores;
  • PWAs are smooth, fast and lightweight;
  • PWAs work offline, unlike your regular site;
  • you can use push notifications to re-engage users.

Web solutions optimized for mobile devices

In this scenario we are creating a separate design for mobile devices. It is the fastest way to provide your solution for mobile users. 

Advantages of a web solution optimized for mobile devices:

  • low costs;
  • time to go to market.

Data warehousing & reporting

Data warehousing is the way of constructing and using a data warehouse. A data warehouse is created by integrating data from multiple heterogeneous sources that support analytical reporting and decision making. xitee has experience with numerous different technologies including databases, date warehouses and migration projects.

Data reporting is a process of collecting and formatting raw data and subsequently transforming them into a digestible format to assess the ongoing performance of your organization. A data report reveals then where to spend the most time and resources, and what needs more organization or attention.

An accurate data reporting plays an important role in every industry. Therefore, we provide a service focused on data warehousing and reporting. We have experience with the following tools and technologies:

  • SQL Databases – database design, optimization and upgrade for popular DB systems (Oracle, Microsoft SQL Server, MySQL, MariaDB, Galera Cluster, PostgreSQL);
  •  noSQL databases & search engines – selection and usage of proper technology for particular needs (Cosmos DB, Mongo DB, Lucene, Elasticsearch);
  • Data migration as a part of a new software development, typically using self-made (project specific) migration tools. Either as a batch process or a continuous data transfer/synchronization;
  • Data Warehouse – design and implementation of a cloud based as well as a tailor-made data warehouse solution, including data import, data keeping, data analytics and data export functions;
  • Reporting – creation of reports, dashboards and exports including data access, processing, presentation and storage layers. Output can be UI-based, or document based, including an electronic document signature. We have knowledge of many popular libraries, such as Highcharts, chart.js, IOS Charts and tools such as JasperReports, SQL Server Reporting Services (SSRS) and Microsoft Power BI.

Prototyping

Software prototyping offers you the possibility to visualize a software solution before it has been created. Since the development of a software from scratch requires a great investment of time, money and effort, it is beneficial to have a visual prototype developed before the development of the actual product starts. The prototype acts as a ‘model’ which replicates the appearance, and sometimes the functionality, of the product that the client wants to develop. 

In order to decide whether you should use prototyping for your project or not, there are a few aspects to consider.

Considerations and situations where prototyping might be the best choice: 

  • When the requirements of the product are not clear to the team;
  • When the demands of the product are unstable and change quickly;
  • When there are software-intensive and complex systems that need experimentation and a minimum risk;
  • Big projects with tight timelines and deliverables.

Synergy of finance & technology gives us a fair clue intothe topic of this rapidly growing industry. FinTech mainly focuses on business, which uses technological advances to boost or automate processes in financial services. It ranges from investment applications and mobile banking to insurance and cryptocurrency.

FinTech has grown rapidly over the past few years due to massive increase in the internet and especially smartphone usage. However, it is not limited only in this area since FinTech has been firstly implemented in the commercial sphere – introduction of ATM’s, credit cards followed by automated & high-frequency trading.

Uses of the FinTech is in the world of finance almost endless. Main drivers are innovative start-ups that push the innovation level over the edge. Therefore, traditional banking institutions must adapt rapidly to the ever changing FinTech environment. An interesting area is the combination of trading with AI & Machine Learning, where the ability to predict market movements is invaluable.

Working in financial markets is connected to some specifics such as:

  • Trading systems must process huge amounts of messages during market peak times. That requires a complex system architecture extensively optimized for high throughput and low latency. Such a peak may reach magnitude of hundred thousand messages per second with latency measured in milliseconds.
  • Frequent need for a system integration via bridge applications connecting existing systems without need to change them. Building new system interfaces. Typical example are FIX (Financial Information eXchange) protocol converters.
  • High Availability system design for mission critical systems. Robust system design with redundant parts (no single-point-of-failure) and a real-time system health monitoring allows high system availability reaching or exceeding 99.99%. It can be also combined with 24/7 operation mode (without any service batch). Several systems we developed or maintain are considered as a critical infrastructure in Germany, Austria, and other countries.

xitee has a profound experience in working for leading European stock exchanges and FinTech companies. For more information, see our projects.

Cloud computing, simply put, is the delivery of computing services. That includes servers, storage, databases, networking, software, analytics, and intelligence over the Internet (“the cloud”) with a clear goal of enabling faster innovation, more flexible usage of resources and economies of scale. You typically pay only for the cloud services you use, which consequently helps to decrease operating costs, helps to run the infrastructure more efficiently, and scale according to the current needs of your business.

There are three main service models of cloud computing – often visualized in a pyramid where each level of the service model is more specialized than the one before, but it is built on the same basic structure. The one at the bottom (IaaS) is more versatile and customizable fitting to many applications, the one at the top (SaaS) is more specialized and fitting to specific tasks.

  • Infrastructure as a Service (IaaS)  is similar to traditional computer hardware (servers, networks, operating systems), but instead of buying the physical hardware, company can purchase the infrastructure as a virtual service through an IaaS provider. These resources are usually easy to scale and offer the customer a complete control over the infrastructure. Examples of IaaS include Amazon Web Services and Google Compute Engine.
  • Platform as a Service (PaaS) stands for a platform allowing companies to develop, run, and manage solutions without the complexity of building and maintaining the infrastructure that is typically connected with developing and launching an app. Developers can therefore focus on the software without having to manage operating systems, software updates, and other infrastructure matters. PaaS examples include Microsoft Azure, the Google App Engine.
  • Software as a Service (SaaS) represents a complete software solution which you purchase on a pay-as-you-go basis from a cloud service provider. Put simply, you rent the use of the particular solution for your organization. Instead of having to install the solution, the users can connect to it over the Internet, usually with a web browser. All of the underlying infrastructure, middleware, app software, and app data are located in the service provider’s data center. The service provider manages the hardware and software, and ensures the availability and security of the app and your data. Examples of SaaS include Salesforce, Microsoft Office 365 and Google G Suite.

Today, the basic division is often enhanced by a fourth dimension – FaaS, going even more specific.

  • Function as a Service (FaaS) allows customers to execute code responsively without having to allocate processing resources ahead of time.  It enables the customers to develop, to run and to manage application functionalities without the need to build and maintain complex infrastructures. This way of app development is often used when building microservices applications and it enables the achievement of the so-called serverless architecture. FaaS examples are AWS Lambdas, Azure Functions.

Another way to divide cloud computing is based on the deployment model.

Cloud deployment describes where the infrastructure for the deployment is hosted and who has access and control to it. There are four deployment models:

  • Private cloud – an exclusive cloud for the organization, can be on-premise but also off premise
  • Public cloud – cloud infrastructure is available to the general public and it is owned by the company selling cloud services
  • Community cloud – the cloud infrastructure is shared by several organizations and supports a specific community that has shared concerns
  • Hybrid cloud – the cloud infrastructure is a composition of two or more clouds (private, community, or public)

This division of clouds defines also the deployment strategy used.

We provide our customers with cloud consulting services, cloud infrastructure services, cloud application development and cloud application migration services. On top of that we are active in the field of IoT (Internet of Things).

Our cloud migration service can help you move towards digital business operations in the cloud. Migrating your in-house servers including services & applications running on them to the cloud can provide you with several cutting-edge advantages for your business. It is however very crucial to perform the transition properly and according to the specific requirements. As every business has different needs, we also follow a slightly different process for each individual cloud migration. With our cloud-native development, we help you to build and run applications that fully exploit all advantages of the cloud computing model. Our cloud-native computing service uses: open-source software stack to be containerized, dynamically orchestrated and microservices-oriented.