Giter VIP home page Giter VIP logo

paradox-spec's Introduction

Introduction

Creative coding exercises permit an engineer and by extension a wider team, to be immediately productive in terms of coding and upskilling. Via a playful exploration of a problem domain for which a production system is to be built, an organic solution discovery process is thereby set in motion. In addition and perhaps most importantly, they permit healthy team dynamics to emerge via a collegiate approach to collaboration and solution sharing in a non zero-sum process.

In such exercises, it is highly recommended that engineers discover a solution space with as little input from other engineers as possible. I.E. they ought to minimise short-cuts so as to more fully understanding the nuances of the problem space. An exception to this soft rule applies when an engineer finds themselves blocked to the extent that they are losing momentum, in this case a burst of communication and support typically resolves the impasse. If regaining momentum still proves elusive, then refinement of the problem domain itself will be required.

From a quality perspective, each engineer's solution must be as close as possible to a production grade system as possible. This requirement forces the engineer to address cross-cutting concerns such as testing, serialisation, logging, instrumentation, security, dev-ops. Testing should thus be at varying degrees of granularity, i.e. unit, functional, integration. A successful exercise will result in a battery of standardised tests running within a CI/CD process.

At certain milestones in the process, each engineer's solution is to be publically peer reviewed by other team members, typically via a code tour. The objective of such reviews are to introduce a transparent feedback loop leading to a deeper collective understanding and an improved set of solutions. Junior engineers should be able to solicit informal reviews at any moment.

Above all a creative coding exercise should be genuinely fun. Engineers should find themselves engaged, enthused and in the flow. Whilst the more experienced team members should take a real pride in showing off their skills, the less experienced team members should find a real joy in playful upskilling. Collectively the team should observe the emergence of a healthy collaborative dynamic.

Project Overview

The purpose of this particular exercise is to progressively introduce teams, potentially new to Rust and/or ZK cryptography, to various elements of a complex problem domain. Each domain element plays a role in a production system designed to have a real social impact in communities where access to simple financial services maybe constrained.

The system will be a white-labelled micro-finance platform. Via the platform's front-end application(s), liquidity providers will be able to bootstrap loan books, loan agents will be able to utilize liquidity so as to issue micro-loans to members of the communities served by the agent(s), and eligible customers will be able to take out mico-loans to spend as they see fit.

Loans issued via the platform will conform to the ACTUS standard, specifically the ANN contract type. Each loan will be associated with a zero-knowledge proof that can be used to verify the integrity of loan payments.

From an implementation perspective, the project will initially focus upon implementing the system's backend. Once the backend is in place, the project pivots to a white-labelled front-end. The front-end should simple to use and support real-time notifications.

paradox-spec's People

Contributors

asladeofgreen avatar marijanp avatar

Watchers

Matthew Doty avatar Chloe Kever avatar  avatar Pavel Burylichev avatar  avatar Morgan Thomas avatar Avi Dessauer avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.