2. About Nutonian
• Built the first, best and only application
that automatically builds analytical models
that can be translated into English.
• Enables business users to understand and
take action without hiring data
scientists/consultants.
• SaaS application + deployable on Linux,
Windows and Mac OS.
12/4/2014 | 2
5. Core Engine
• Uses symbolic regression to find best
equation to fit data
– Very computation intensive, but easily
parallelizable
• Started off as desktop program
• First attempt at SaaS – linked web server
with core engine
• Tedious to implement things like a
document store
12/4/2014 | 5
6. Enter Node.js
• Significant amount of application logic
unrelated to core engine
– Doc store, Object store
– MIME Parsing
• Communicates with engine via JSON over
HTTP
– Core engine already had web server
• Handles all client requests
– Proxies through requests to core engine
12/4/2014 | 6
7. Application Logic
• Core engine provides low-level endpoints
• Multi-step processes encapsulated as
single endpoint in Node.js
– Initially implemented in client Javascript
– Maintaining state was challenging
– Needed to move logic to backend
• Quicker to implement than in C++
– IMO; depends on who you ask
12/4/2014 | 7
8. Interesting Features
• Core engine and Node.js have bi-directional
communication
– Engine persists state to Mongo via Node.js
– Use Express, Request modules
– Had to debug interesting deadlocks
• Ease of deployment has always been a priority
– Single binary that includes backend JS code +
modules, launches Node.js on startup
– Multi-platform – runs on Windows, Linux and Mac
OS
– Runs in local-mode as well (without Mongo)
12/4/2014 | 8
9. Skynet
• Initial use of Node.js got us Javascript-
happy
• Wrote a collection of command line
utilities – Skynet
– Control Amazon EC2 machines – provision
clusters, start/stop
– Save/restore state of system
• Node.js is our cross-platform scripting
system of choice
12/4/2014 | 9