System Design for Large Scale Installations – Colin Hoy

Workshop: System Design for Large Scale Installations
Example files: https://github.com/avc-choy/td-summit-2019

This workshop will focus on system design for large scale installations. Notably, the session will review the basics of setting up a standardized project environment in order to manage multi-machine installations. This includes config-based dynamic loading/protocols for development and production environments, file structure/directory conventions, code externalization, and git versioning.

Further, the workshop will cover best practices for handling data. Key concepts will include an extension-based philosophy for structuring your network and code for maximum efficiency, using inheritance and component compartmentalization to isolate functionality across your system, reusable parsing and data routing methods, decoupling functionality from interfaces, and general component and module organization.

Other key points that will be addressed in this session include methods for data visibility – such as using StorageManager and persistent data, extension properties, and setters/getters for efficient code handling as well as using operator dependencies and dependable objects for reliable network data inputs.

Lastly, the instructors will discuss essential optimization knowledge to keep large scale installations running at peak performance. These include items such as start-up procedures, data caching, raster re-mapping, and additional tips and tricks learned from real-world integrations.

Instructor: Colin Hoy
Colin Hoy is a Senior Software Developer working with AV&C in New York City. Colin has implemented many large scale, multi-machine installations with various flavors of systems design, control and interactivity.

Throughout these experiences he has become a strong believer in programming conventions and standardization to aid in the interoperability across not only projects, but developers as well. He sees often overlooked data concepts such as compartmentalization, storage and routing/handling as critical factors in fostering the development of modular, reusable project architectures that are scalable and nimble in adjusting to the demands of any project.

About The Author