July 13, 2019

Web Application Consulting/Development

  1. Services
  2. Technology
  3. Customer Testimonial
  4. Why us?
    1. You need a consultant to clarify your problems
    2. You need correct, well-tested software
    3. You need immutable database
  5. Contact


  • Rapid prototyping and MVP
  • Enterprise software solution
  • Datomic database


We use Clojure, ClojureScript, and Datomic as our primary technical stack.

Customer Testimonial

Why us?

You need a consultant to clarify your problems

According the report from the Standish Group, only 16.2% of software projects are completed on time and on budget. The top three of the project challenged factors are: Lack of user input, incomplete requirements and changing requirements. We understand that the continuous user input is the key to project success and we use REPL design cycle to get user input. The REPL design cycle consists of:

  1. Requirement: Discuss with our customer about requirements.
  2. Execute: Implement the software.
  3. Present: Present the software to customers. Customers will understand the essence of problems more through the interaction with half-completed software.
  4. Loop: Loop the whole cycle again.

We usually run our REPL design cycle with the frequency once every two weeks. Through this design cycle, our customer can incrementally express their requirement naturally, which also contributes to the high success rate of our projects.

You need correct, well-tested software

It is a truth universally acknowledged, that a program in possession of good quality, must be well-tested. With Clojure as our primary programming language, every expression is tested through the REPL environment. This is not the granularity of unit test, but the granularity of expression test. In addition, REPL-driven development is not like test-driven development that programmers need to invest a certain amount of time on writing tests. We deliver well-tested software without slowing down.

You need immutable database

Consider that you have an RDBMS database with an order table inside. Last week, there was a lot of orders inserted, and you could query the database to get the revenue last week. This week, some orders updated, and you can still query the database to get the revenue this week. What if you forget the revenue number last week, and you want to reproduce the revenue from the database? You can not make it because certain orders have been updated. With Datomic, the immutable database, you can easily get the last week revenue by simply asking the database to go back to the state last week.