This article describes how to use Netgear Arlo Cameras API. Even though no public API is provided, I succeeded in interacting with the cameras by sniffing the traffic sent from the official web application
This article describes a TDD (Test Driven Development) approach to implement a Finite State Machine (FSM) using PHP+Laravel. However, such method is general and could be used in the programming language of your choice.