Who we are?

We plan, build, deploy and scale great applications. We are 11 developers from 7 different countries and work remotely with slack and video meetings.

Here we demonstrate the typical product life cycle and how we develop software.

Below are some examples of applications we have built and are maintaining:

background
feature

WG Catch

An Android / iOS App swiping and chatting app to search and find roommates.
Swiping was first introduced by Tinder and is now used in many industries. The swiping concept forces every user to like or dislike every rooms (or potential roommate). This information is valuable because it allow to rank future offers with the help of the ELO algorithm.

View Details
background
feature

Chat Platform

We build a chat and messaging platform. We expose the functionality over API and our clients build different products on top of it. Our system works over http or websockets. We support image and video features as well. The system supports thousands of concurrent online user chatting and is designed for stability.

background

Clickdummy

When it comes to first ideas for a software, nothing beats getting a visual impression as early as possible. We use Axure for prototyping our projects. It allows to quickly create a “click dummy”, even with basic logic build into it. It is incredible how a simple “click dummy” can you give an idea how the software will later look.

Feel free to try yourself, here is a link to our wg-catch clickdummy and compare it with the live version on the App Store.


Huge project need to broken down into manageable steps.


DevOps - CI / CD

We have a fully automated continuous integration and continues delivery setup. The primary tools in this area are Jenkins and Bitbucket Pipelines. Our delivery is seamless, we do not interrupt service for deployments of new versions. We've build system capable of serving multiple versions simultaneously.

VPN

Since we are a distributed company we use our own VPN network. All developers, test, stage and production servers are connected with different levels of access. OpenVPN is the tool of choice.

Coding

All developers can choose their own development environment, mac or linux. On production we run usually ubuntu. On the backend we use PostgreSQL as a database. Most API code is written in Grails with Groovy or pure Java. Sometimes we use Spring Boot as well, depending on the particular needs of a service. We run our Java code on Tomcat

Live API Docs Generation

As a project grows bigger, documentation and finding information becomes more and difficult and important. As a solution we generate our API documentation directly from annotation on the code. If the logic is really complex commenting code is not enough. Then we use more specialised tools like Gliffy as well to draw flow diagrams. Keeping an up to date centralized overview of all available APIs and parameters is equally challenging.

Monitor servers

While no code goes online without passing all tests, there no guarantee and sometimes a bug will slip through. We rely on Rollbar to monitor all runtime client code execution. Their notification system is really powerful, we even parse all server side logs for errors or exceptions and send them to Rollbar as well.

Monitor application code

Sometimes a server starts to go crazy only after a couple of days. Most of the time some memory leak is responsible. Or some temp files stay longer on the system than expected. Pingdom pings our server once per minute from different locations around the world. We use New Relic to monitor CPU, disk space and memory on all production servers.

Expand Business

Once the initial projects runs successful it is time to think how to grow. We extensively analyse all the data we have. Sometimes building a data warehouse is required, because normal queries or database functions would take days to crunch the data. Maybe it is time expand into other language regions, in such case we use phraseapp to ease the always difficult task to keep translation keys and files up to date without having to worry about it on development. The tool automatically displays all usages or keys without any usage anymore.

High Loads

Our apps are mission critical handling high loads, our architecture is a message and event driven architecture and thus highly scalable. We mostly rely on ActiveMQ and Camel for message routing and delivery between various services.

API requests per hour / last 7 days

Here you see a chats with our processed requests / hour. It is over a recent 7 day period. At max peak time we we process around 900.000 requests / hour. You clearly see how the lowest amount of requests happens every day at night and peaks around 20:00, when most people are home from work.


Concurrent user chatting

Here you see the number of concurrent online inside the live chat. The amount is incredible stable over the different days.


Chat messages written

Here you see the number of messages written per hour over the last year. Long term there is clear upwards trend, specially in the last quarter. Short term inside 1 month it is not possible to see a pattern. Most short term fluctuation is caused by weather and by different amount of marketing bringing new users.


Lidamus, unipessoal LDA & comandita ZFM
Rua dos Murças nº 15, 1º andar
9000-058 Funchal
Madeira, Portugal
NIF/NIPC: 515338290
Tax/VAT Number: PT515338290
E:

We endeavour to answer all enquiries within 24 hours on business days.