Portfolios

Enterprise Software Development


  • kimlic kyc blockchain fintech elixir erlang development pharos production

    Kimlic

    Kimlic OÜ

    Kimlic - KYC on Quorum Blockchain and Elixir. We utilize our experience and best practices to create a distributed and decentralized network for KYC operations for banks, exchanges, ICOs and every type of businesses with KYC/AML procedures.
    There are 4 main parts of the system:
    - Plain User - represented with a mobile app user;
    - Attestation Party - a company represented in a Kimlic marketplace as a verification provider for documents. In the current version only Veriff is present;
    - Relying Party - any business that requires KYC/AML procedure;
    - Kimlic Core services - basic email and OTP verifier, also acts as an interface API for smart contract addresses.
    Every party except Plain Users consists of a browser dashboard, elixir backend with REST API, blockchain node and a database. For the database, we have used PostgreSQL. All parties can be deployed to the environment of the choice - AWS, Azure, Digital Ocean or plain Linux. We have prepared dockerized and non-dockerized types of deployment and continuous integration with Ansible and Jenkins. As an orchestration tool, we have used Kubernetes. Backend development language was Elixir. Also, we have used the Phoenix framework for API layers and Erlang OTP for the multiprocess stateful environment. For browser, front ends we have used React. Mobile apps are native - Kotlin and Java for Android, Swift for iOS.
    All documents inside the system go directly from user to Relying Parties. There is no centralized server which can store and submit a document on behalf of the user. The document should be verified by an Attestation Party, in our case Veriff service. All documents are hashed and stored into the blockchain. Hashes are non-reversible letters and numbers combination cryptographically converted from images and users data. Kimlic guarantees data consistency by comparing user’s photos and text information to hashes while sending them to Relying Parties. Such comparison gives a possibility to immediately compare documents on the second consumption and guarantee that the document has been verified previously.
  • privori micro loans credit fintech elixir erlang blockchain development pharos production

    Privori

    Amari Research

    Privori - micro-loans credit network on Quorum Blockchain and Elixir. High-speed and high-load cryptographically secured credit network decentralized between stores with a tokenized closed economy.
  • kronicle social networking app mobile development pharos production

    Kronicle

    Kronicle LLC

    Kronicle - photo content social network for mobile devices with Elixir & Erlang distributed architecture under the hood.
    The idea behind Kronicle is an animated photo app. Every user can take a shot, but every other user can continue shooting from the same position, the same place with the same angle. In the first release, there was Augmented Reality being added to locate the place of interest in the camera. We have used Vuforia and Metaio. But stuck with a precision distance of mobile GPS sensor. It has varied within 10-100 meters and there was no possibility to locate the exact same location of the place. So we have removed Augmented Reality. Even though, user can find a place of the interest on the map and app switching to a camera view with edge detected the previous photo to make it possible to take a shot from the same angle.
    As the main backend framework, we have used Elixir and Erlang OTP. Also, Phoenix has been used for REST API. The backend database is Postgres and OrientDB. Mobile application for iOS has been created with Objective-C and later transferred into Swift. Android application is native too and created with Java. For continuous integration have used Jenkins and Ansible.
  • birdchain architecture prototype blockchain fintech pharos production

    Birdchain

    Birdchain OÜ

    Birdchain - Blockchain network with ads sharing and selling content using crypto-economy. We have developed the architecture for a distributed and centralized system with all required R&D.
    The idea of the project to build a marketplace of bulk SMS sellings based on a free quote of text messages that usually we have within our tariff plan. Almost no one uses text messages, but we pay for them. Why not sell them to companies and individuals who want to send advertisements via SMS. Main Birdchain app is presented as a messenger where users can exchange text messages for the token.
    The Birdchain project has been started from research and IOTA prototype with React front end. IOTA’s tangle looks like a great message delivery system between mobile devices. Originally created for the Internet of Things, Tangle consists of blocks structured as a directed acyclic graph. Each tangle block validates two blocks behind selected from the set of unconfirmed blocks using Markov’s Chains. IOTA framework is on Java and perfectly suits the Android ecosystem. But later during the development, we have found that IOTA’s blocks do not have enough possibility to send medium sized blocks of textual information. So we have decided to switch to Ethereum and create a centralized transparent backend infrastructure. Elixir with OTP and Phoenix has been chosen as a core backend technologies. Native Android app has been used in the prototype. Of course, for blockchain development Solidity has been used. We have used GitLab for Continuous Integration.
  • eprayer social network elixir development pharos production

    ePrayer

    Heaven's Door LLC

    ePrayer - a mobile social network for Christians. Highly-load application with distributed Elixir under the hood.
    ePrayer is a social networking app for churches. It consists of pretty standard functionality like groups, comments, posts, various user roles, and in-app purchases.
    For the backend, we have used Elixir and Erlang OTP. REST API has been created with Phoenix. For mobile devices, we have created native apps using Kotlin for Android and Swift for iOS. PostgreSQL and OrientDB have been used for backend data storage.
  • ambrosus prototype blockchain tendermint development pharos production

    Ambrosus

    Ambrosus

    Ambrosus - Supply Chain system software prototype development. We have used Tendermint and React together with Raspberry Pi and MQTT networking protocol to build a prototype of the Supply Chain system tightly coupled with various physical IoT (Internet-of-Things) sensors and secured by Tendermint blockchain protocol. Also, an alternative solution with Hyperledger Sawtooth has been proposed.
    We have started from a small prototype where we created a browser front end on React and a backend on Go. This backend has been collecting information transmitted via low energy Bluetooth transmitters formed as a meshed network from various sensors located in cargo containers. Every supply chain project should have a chain of transactions and sensor values are exactly this transactions in Ambrosus. At first place, we have tried Hyperledger Fabric as a well-known solution for supply chain projects. We also tried Sawtooth from the same Hyperledger family. The drawback of these technologies is the requirement to use IBM cloud infrastructure. In a standalone version, both work not so well as expected. Also, there is a huge time lag during the node sync process on every block when the number of nodes rises to 10+. To resolve these two issues we decide to get rid of Hyperledger and switched to Tendermint. Tendermint is a Byzantine-Fault Tolerance blockchain and acts as a state machine replication system. It’s a way faster than Hyperledger and finally, Tendermint fitted our expectations. All data transmitted via MQTT transport protocol have successfully reached blockchain backend, low power Bluetooth also works pretty well for Raspberry nodes. When cargo ship reaching a destination point, receiving party can easily connect to the blockchain and receive all collected information from sensors.
  • safaridb elixir react software development pharos production

    SafariDB

    SafariDB

    SafariDB - scientific database with geological places of interest across Norway. Elixir, Phoenix and React under the hood.
    Safari is a service for PhD students, scientists and researchers. Safari stores various data related to geology, paleontology and geography.
    Backend has been developed using our favorite stack - Elixir, Erlang OTP and Phoenix for REST API. Front end is a React JS single-page application (SPA).
  • sirenbox ios android app development pharos production

    Sirenbox

    Sirenbox

    Sirenbox - also we develop native iOS and Android apps. Sirenbox is one of them.
  • unity casual games gambit stream egaming esports

    Donutte

    Donutte

    Donutte - Casual game with sweet candy design. We have used our designer to create beautiful game assets. To make the game available on various platforms we have used Unity game engine and C# scripts. Social networking integration and gamification has been used intensively to make users experience real joy and fun. Google Ads has been integrated also.
  • unity casino game esports egaming gambit stream

    Lucky Lot

    Lucky Lot

    Lucky Lot - casino applications set for gaming company from Douglas, Isle of Man. Set contains Three/Five/Seven/Nine reel Slot Machines, Black Jack, Jacks-or-Better and Lucky Wheel. We have used Unity as an application engine. Java and Vert.x framework has been used for backend microservices and gRPC API provider. Communication interface is gRPC. Additionally, blockchain tokenization has been added using J.P. Morgan’s Quorum. Quorum works with a Solidity development stack and natively supports all development ecosystem of Ethereum. In compare to Ethereum, Quorum is a semi-private blockchain and provides blazingly fast transaction time - 50 ms. Differently from Ethereum, Quorum uses 3 different types of consensus. We have used Raft, well known from distributed systems type of consensus which provides great transaction time, data consistency and high availability of the system.