Job Reference | PH/SISE/MAY22 |
Location | Remote and/or Pharos Architectural Controls offices, Ealing Broadway, London W5 (The post holder may be required to work at other locations, at the discretion of their line manager) Remote applicants' timezone should be UTC +/- 3 hours |
Salary | Competitive, dependent on level of experience |
Working Hours | Full-time (37.5 hours/week) |
Contract Type | Permanent |
Pharos is seeking a software engineer with practical experience of writing Lua scripts, creating integrations with HTTP APIs and writing client- and server-side JavaScript applications and libraries. They will be responsible for the design, development, customer support and testing of integrations between Pharos lighting controllers and third-party systems and devices, with a focus on the Pharos IO Module Lua API. The role may be filled by a UK-based employee or a remote worker from outside the UK under contract.
About Us
Pharos Architectural Controls is an award-winning British manufacturer of dynamic lighting control solutions for architecture and other specialist industries. Our products are highly flexible, versatile and powerful, and trusted to run day and night illuminating iconic installations around the world — from international landmarks and historic architecture to theme parks, airports, stadiums, bridges, shopping malls, art installations, and more.
Pharos is part of the Carallon group of companies, an independently-owned product development house specialising in innovative control systems. Its design team is the best of its kind — a group of highly motivated individuals committed to the creation and ongoing development of industry-leading products. Within that team is a wealth of experience in the field of advanced control solutions, with principal members responsible for ground-breaking entertainment lighting control consoles, architectural lighting systems and video processing technology.
Job Summary
One of the key strengths of Pharos controllers is their ability to integrate their show control capabilities with myriad third-party devices and systems via on-board interfaces such as Ethernet, serial and MIDI, built-in support for protocols such as HTTP, and the controller's own web server and HTTP API. Pharos controllers support plug-ins, known as IO Modules, which are developed using a Lua API exposed by C++ from the underlying controller application.
We're looking for a skilled software engineer to develop, test and support our rapidly growing library of these IO Modules. The role will also involve writing client- and server-side JavaScript libraries to support integrations with third-party devices, as well as developing and testing HTTP APIs with Postman. The successful candidate will respond quickly and effectively to support requests from our customers worldwide, including manufacturer partners, dealers and end users. You will work alongside both London-based and remote Pharos technical staff to ensure that integrations on live projects are well supported.
Pharos is a growing company with a close-knit and highly motivated team with a keen interest in the products it creates. Candidates should be similarly interested in the work involved and be able to adapt to changing priorities as we help deliver landmark projects for our customers.
We offer a very friendly, flexible and supportive working environment. For the right candidate there will be opportunities to get involved with other aspects of product development using technologies such as QML and C/C++, ensuring progression with the role.
Key Responsibilities
- Develop, code review, test and maintain Pharos Lua IO Modules
- Respond promptly, effectively and consistently to support enquiries for Pharos IO modules via phone or email
- Integrate HTTP APIs with Pharos controllers to support integrations between Pharos controllers and third-party systems
- Develop, code review, test and integrate client- and server-side JavaScript applications and libraries to deliver custom functionality for Pharos customers
- Assist customers with integration specifications, configuration, and programming for specific projects, attending site when necessary, which may require international travel
Essential Qualifications
- Practical experience of writing scripts with Lua 5.3 or later
- Practical experience working with JavaScript ES6 or later (ideally up to date with ECMAScript 2018 additions)
- Working knowledge of version control with Git
- Experience of integrating HTTP APIs into applications, and developing and testing HTTP APIs with Postman
- Understanding of Ethernet and TLS
- Fastidious attention to detail
- Excellent team working and collaborative skills
- Strong technical communication skills in both verbal and written English
- Excellent time management, including the ability to prioritise conflicting tasks appropriately
- Ability to apply existing knowledge to unfamiliar problems, suggest possible solutions, and comment on the relative merits of different solutions
Desirable Extras
- Experience of UI development with QML
- Experience of front end web development
- Experience of software development with C/C++
- Familiarity with the Gerrit code review tool
- Experience of development & deployment with Node.js
- Technical knowledge of lighting or video products and experience of their use in a live event or installation environment