Introduction
This is my second article in the Q-SYS Plugin Stories series, and I’m excited to shine a light on someone whose work has helped shape the way integrators approach plugin development. Alan Chow, founder of Chowmain, has built a reputation for creating intelligent, scalable, and user-friendly solutions that solve real-world challenges across the AV and home automation space.
In this spotlight, Alan shares his journey, development philosophy, and the global infrastructure behind Chowmain’s success. Whether you’re deep into Lua or just starting to explore plugin creation, his insights offer something valuable for every developer in the Q-SYS Ecosystem.
______________________________________________________________________________________________
Origin & Inspiration
Jason: What first inspired you to get into automation and AV integration?
Alan: I’ve always been passionate about technology. I started writing software at age 12 and began exploring electronics by 18. My entry into automation was somewhat accidental, but it quickly became clear that it was the perfect blend of my interests. It allows me to combine software, hardware, and user experience in a way that’s both challenging and deeply rewarding. Since then, it’s felt more like a paid hobby than a job which I think is the ideal outcome for any career.
Jason: Was there a defining moment or project that made you realize this was your long-term path?
Alan: I was working at a home automation distributor handling technical support, training, and RMA repairs when one of the manufacturers released a Lua-based software development kit during a beta OS release. I immediately saw the potential and dove in—by the time the OS officially launched, I had already developed over 20 integrations for various third-party devices. That experience unlocked a creative drive I hadn’t felt before and made it clear that software development within the home automation space was where I wanted to focus my long-term career.
Design Process & Development Philosophy
Jason: Can you walk us through your typical design process when building a new plugin? Do you use any tools like Figma or Adobe tools to support your workflow?
Alan: We begin by gaining a thorough understanding of the device or service we’re integrating with—this includes reviewing product documentation, user manuals, and any available API references. From there, we map out the necessary controls, pages and pins to define the plugin’s functional scope. While we don’t typically use design tools like Figma for Q-SYS development, we do create mockups and visual references, which are submitted to Q-SYS during the pre-scope phase. The entire process is iterative, with a strong emphasis on usability, stability, and ensuring the integration delivers real-world value to installers and end users.
Jason: How do you approach reading and interpreting third-party APIs? Any mental models or workflows you rely on?
Alan: There are good API documents and there are bad ones. A well-structured API document offers a complete picture of the product or service, including an overview of communication flow, detailed explanations of each function, expected input values, and clear example responses. The best APIs also define value ranges, enumerated options, and describe each response field comprehensively. When approaching an API, I start by identifying the integration’s primary objectives, then mentally map out a rough architecture for how to achieve those goals using the available endpoints. This process helps expose any gaps early and guides the structure of the plugin.
Jason: Are there any techniques you use to streamline development across platforms — especially when working within Q-SYS?
Alan: We work across multiple control system platforms and often develop integrations for the same product in parallel. To streamline this, we coordinate our development efforts to avoid overlap—especially when developers are sharing hardware or working on interdependent components. When platforms use the same underlying language, such as Lua, we build reusable libraries for data processing and business logic. While the UI, I/O handling, and system architecture differ significantly across platforms, having shared core logic helps accelerate development and maintain consistency. It’s about balancing reuse with the need to tailor each solution to the platform’s strengths.
Lua & Data Manipulation
Jason: Lua is a core part of your development stack — what are some of your favorite tricks or patterns for manipulating data in Lua?
Alan: Tables are incredibly powerful in Lua. I often use metatables to create smart defaults or simulate object-like behavior. Another trick is simulating ternary-like operations using result = condition and trueValue or falseValue type syntax.
Jason: Are there any common pitfalls you’ve learned to avoid when working in Lua-heavy environments?
Alan: One of the key pitfalls in Lua-heavy environments—especially within automation systems—is that Lua execution is typically single-threaded. This means that inefficient code in one plugin can directly impact the performance of others running on the same system. Poor memory management, blocking loops, or heavy processing can lead to system-wide slowdowns or instability. To avoid this, we focus on writing efficient, non-blocking code, properly managing memory, and breaking up tasks where possible. It’s important to always consider the broader system impact when developing in Lua, not just the performance of the plugin itself.
Platform Deep Dive
Jason: What makes Q-SYS stand out from other platforms you’ve developed for — technically or philosophically?
Alan: What sets Q-SYS apart is its ability to dynamically generate user interfaces programmatically. Unlike most control systems, which typically separate UI design from code, Q-SYS allows for full control over UI elements directly within the Lua scripting environment. This creates powerful opportunities for scalability—especially when integrating complex or variable third-party products. We can dynamically expand or adjust the user interface based on available features or configuration states, resulting in more flexible, adaptive plugins. It’s a major advantage when building solutions that need to scale across different product SKUs or deployment scenarios.
Jason: Has there been a plugin or project within Q-SYS that was particularly challenging or rewarding to build?
Alan: I wouldn’t say there’s a single plugin that stands out as particularly challenging. In general, the most time-consuming aspect of Q-SYS plugin development tends to be the user interface. Designing a flexible, intuitive, and dynamic UI often takes more effort than implementing the underlying protocol logic. That said, once the UI is complete, we’re able to move quickly through the rest of the development thanks to internal libraries and tools we’ve built to streamline the process. These reusable components help standardize our approach and significantly reduce turnaround times for future projects.
Developer Partner Program (DPP)
Jason: You’re part of the Developer Partner Program — what do you appreciate most about the process?
Alan: What I appreciate most about the Developer Partner Program is the strong support and collaboration from the Q-SYS team—especially Tammy and Adrien. They’ve been fantastic advocates for us, ensuring we’re well represented and supported throughout the development process. When challenges arise, they’re quick to engage and work with us to find solutions. Their responsiveness and commitment make us feel like a true extension of the Q-SYS team, not just an external developer. That sense of partnership is invaluable and really sets the program apart.
Jason: How does the checks-and-balances model between internal teams and external developers improve the final product?
Alan: External developers bring agility and product diversity, while internal teams ensure quality and brand alignment. This dynamic creates better outcomes. We can move fast to meet market needs, but the review process ensures we’re not cutting corners. It’s a collaborative quality gate that benefits everyone.
Global Development & Vendor Relations
Jason: Being based in Australia, do you run into any challenges working with vendors or partners across time zones and regions?
Alan: Time zones can definitely introduce delays, particularly when working with engineering teams in North America or Europe. That said, we’re well accustomed to early morning or late-night meetings to keep things moving. Fortunately, Tammy from the DPP team is always mindful of our location and consistently schedules meetings at times that are considerate of our time zone. That level of flexibility and awareness goes a long way in maintaining smooth communication and collaboration across regions.
Jason: How do you manage support, testing, and deployment across such a globally distributed ecosystem?
Alan: We’ve established a distributed team structure with developers and support staff strategically located across multiple time zones. Providing timely support is a core priority for us, and we’re proud to offer 19 hours a day of phone, chat, and ticket-based support for the AU, UK, and US regions. This is made possible through our support desks in New Zealand, Australia, and the United Kingdom. By covering these key regions, we ensure that partners and integrators receive responsive, high-quality assistance regardless of their location, while also allowing our development team to continue progressing around the clock.
Plugin Highlights
Jason: Are there any plugins you’ve developed that you’re especially proud of or that you think deserve more attention?
Alan: I no longer develop plugins personally, as I’m fortunate to have a talented team of developers who handle that work. One plugin we’re especially proud of is the Hisense Commercial Display integration, which was commissioned by the team at Hisense.
It was released on August 19th and is now available to download through Q-SYS Designer Asset Manager. The plugin will be featured at upcoming industry events including Integrate Expo and CEDIA (use code Chowmainsoft25 for a free event pass!).
This plugin brings full IP control to displays that were previously limited to IR, enabling advanced features such as input selection with feedback, power management, and custom on-screen display (OSD) controls. While not the most technically complex solution we’ve built, it addresses a genuine market need and is highly practical—making it a strong candidate for broad adoption within the Q-SYS Ecosystem.
Jason: What’s the most technically difficult plugin you’ve ever worked on — and what made it so complex?
Alan: None of the plugins we develop are particularly difficult from a technical standpoint. However, some are significantly more time-consuming and resource-intensive due to the sheer volume of pages, controls, and features required. The most demanding are typically AV-over-IP plugins, as they go beyond basic audio and video switching. These often include additional layers of functionality such as CEC control, IR routing, RS-232 command management, and dynamic configuration of multiple endpoints. It’s the complexity of the device ecosystem and the depth of integration—not the technical challenge alone—that makes these projects so involved.
Conclusion
Jason: Anything You’d Like to Add?
Alan: At Chowmain, our mission is to equip integrators with intelligent, scalable, and reliable software solutions that tackle complex challenges with ease.
Last year, we introduced the Chowmainsoft Marketplace—a central platform for distributing both manufacturer-sponsored and licensed integrations. While we currently offer free manufacturer-sponsored plugins, licensed plugins will be launching soon. The marketplace is designed to simplify licence management, enabling integrators to add, remove, or migrate licences across live projects without any downtime.
We invite all integrators to sign up at www.chowmainsoft.com, where you’ll receive a free showroom licence to demonstrate our plugins without obligation. Every licensed plugin will also come with a 90-day trial, allowing you to test and validate functionality before purchasing.
Finally, a heartfelt thank you to the Q-SYS team and the broader integration community. Collaboration is the cornerstone of progress in our industry, and we’re proud to continue contributing to its evolution.
Learn more about the HiSense Commercial Display plugin here.