4th Office

About

Client requested that prototype be a web application deployed as a destkop application that should also operate in web browser. The client app was to offer email and instant messaging capabilities. The client app was expected to work both in offline and in online mode and was expected to perform data synchronization via the proprietary API that client provided.

My role

Client requested that prototype be a web application deployed as a destkop application that should also operate in web browser. The client app was to offer email and instant messaging capabilities. The client app was expected to work both in offline and in online mode and was expected to perform data synchronization via the proprietary API that client provided.

I was brought on board to provide skills and expertise on following aspects of the project:

  • Architect the data layer of the client application in a way that is going to be browser independent and that allows for offline operation both as a browser and desktop based application.
  • Expertise on distributed system design, data replication/synchronization, etc...
  • Implement the data layer for the client app. This includes syncrhonizing metadata, text messages and binary objects.


My involvement was instrumental as none of the existing team members had previous experience with distributed, eventually consistent systems. During my tenure on this project I helped project team achieve all the above mentioned goals and helped prove that the concept is sound and feasible.

Technologies used

On this project I used following technologies:

  • node.js (Electron framework for destkop application).
  • Angular 2/4 as the web application development framework.
  • PouchDB for local meta-data storage.
  • RxJS for application logic.
  • Typescript programming language.