EXPERIENCE REPORT: DETAILS ABOUT BUILDING A WEB BASED FINANCIAL APPLICATION WITH SMALLTALK

Quuve is a powerful tool for investors developed by Debris Publishing Inc. It provides a portfolio management and research platform all in one package. Made by financial professionals to meet the needs of the boutique advisor.

Quuve is web-based, developed in Pharo and deployed in GemStone.
Seaside is used as the web framework while Twitter Bootstrap is used for styling and layout. Quuve also uses some Javascript libraries for different purposes such as jQuery, jQueryUI, TinyMCE, HighCharts, DataTables, and CodeMirror. Magritte is used for autogenerating our custom CRUD, Fuel and SIXX for object serialization, Metacello for managing software dependencies and releases while nginx and Zinc are used as http servers. And these are only some of the libraries and frameworks used by Quuve.

I have been part of the Quuve development team for a couple of years and, in this presentation, I will talk about several of the interesting aspects faced when building product like this: design, architecture, deployment, security, infrastructure, performance and user interface.

As with most financial products, security is a big concern. Edge to edge and at so many different levels. Deployment also becomes a challenge because, to boost security and performance, the application is deployed as a whole isolated environment (including its own Smalltalk VMs, database, etc) for each client. Several interesting scripts have been made to automate this task. Apart the deployed application running with GemStone, it is also important to keep the application working in the developer local environment with Pharo. Therefore, several aspects must be taken into account to accomplish this. Debugging and fixing issues, as well as profiling in order to improve performance are also critical tasks in this type of application. Last but not least, a UI that meets the final user needs is also important.

I will give a summary of how we solve most of the above issues and hopefully provide some possible solutions in case someone is in a similar scenario.

Download presentation
  • Mariano-Martinez-Peck

    Mariano Martinez Peck

    Mariano Martinez Peck is an independent consultant and systems engineer specializing in software solutions based on dynamic programming languages. He started his involvement with Smalltalk in 2008 as the co-author of DBXTalk Suite. He is active in the Pharo and GemStone community and has participated in open-source projects while also being the coauthor of Fuel, DBXTalk Suite (OpenDBXDriver, GlorpDBX and OpenDBX), Marea, GhostProxies, and LZ4 compressor binding for Pharo. He has a PhD in Computer Science from RMOD-INRIA and the École Des Mines de Douai in France.