The competition and voting have completed. Winners were determined by the citizens of Lykke City.

  • Days of the project

    Feb 8 - Apr 8, 2018 (58 days)

  • Submissions

    Feb 9 - Mar 31, 2018

  • Voting

    Mar 31 - Apr 8, 2018

As part of the expansion and improving Lykke services, we are looking to create a unified logging system. 

The Logging system API and data contract's requirements are available at https://docs.google.com/…aO4/

Requirements specification

Source code

  • Source code should be hosted in the repository on GitHub with MIT license.

  • Source code should be written with respect to one of the code guidelines, that are generally accepted by the community of this programming language.


Depending on the programming language (compiled or interpreted), binaries or source code should be delivered via one of the package management systems, if any exist for the given language. For example - Nuget or npm.


  • Logging system should not have direct I/O calls. All write calls should just add a log entry to some kind of buffer, which then will be dispatched by the background thread.

  • Dispatcher thread should be reliable and tolerant to any transient failures in the environment.

  • Each log writer (see below) or at least a writer type should have its own dispatcher thread.

  • Simple log writers, that not cause I/O calls, should write entries directly - without buffer (for example Console writer).

  • All failures of the logging system itself should be logged to the last resort log which could be one of the simple (console, for example) log writer implementation. Actual last resort log should be specified during initialization.

  • Logging system should have some kind of deinitialization, which ensures that all buffered log entries are persisted before deinitialization is completed.

  • Logging system should have extensions point - log writer (appender, persister), that writes log entries to the specific type of destination.

  • Adding to the new Implementation of the writer should not require changing the existing code.

  • Logging system could have an opportunity to create or start/stop component logging scope. This could be kind of object which can be used to write all logging entries to the same component (see below).

  • Logging system should have an easy way to bootstrap default configuration (see below).

The following languages are accepted:

Default configuration

Logging system should have an easy way to bootstrap default configuration, which should include:

  • Console writer

  • Azure table storage writer

  • Slack writers


The first-place contestant will receive an award of $600, three runners-up will receive $300 each. 


Please refer to the Terms of Use of the organization and remuneration issues. If you have any questions, please feel free to ask them in the contest comments. 


Submitted results must be publicly available on the GitHub. There is no guarantee of winning a prize. The prizes are only awarded to entries that the Lykke judges find worthwhile. Prizes are awarded in Lykke coins, which may be redeemed for currency and sent to your bank. You must be at least 18 years of age. You must not submit twice — your first submission is the one that counts. You will be responsible for declaring your own income to your local tax authorities. All submissions will be disclosed to the public. The prizes are given at organizer’s sole discretion. The decisions of the judges will be final — there is no appeals process if your project does not win a prize. No other compensation will be given at this stage.

Please login using a user with KYC to see this info


Lykke co-founder and CTO
Lykke co-founder and Chief Operations Officer
Dmitry Krasovskih
Lykke Exchange developer
Oleg Zhelenkov
Lykke developer
Konstantin Ryazantsev
Lykke developer
Andrey Volkov
Lykke developer
Username Registration date Result
March 15, 2018 01:51
Please login to leave a comment
Username reg. and Subm. Date Result Vote

For this project, none of the submitted results matched our experts expectations, so we decided not to award the first prize.

Your Feedback