We are a small business that host hundreds of small internet radio providing easy access to technology like Shoutcast and ICEcast.
Located in Quebec, Canada, we have customer all around the world. We developed our interface that allows our customer to manage their service.
I'm looking for a talented programmer who can deliver bug-free code with a good sense of usability. You will be responsible for our billing system (integrated with Quickbooks Online API), radio management software (Icecast, SHOUTcast, Nicecast) and auto DJ (Liquidsoap).
The workload will be around 10 hours per week (more when needed) on an ongoing basis. You need to be self-motivated and discipline. You need to able to work under pressure when required.
Your task will be assigned on an online task manager (Freedcamp) and you will need to update your progress in the system.
The work will consist in maintaining the actual system (update of the current code), do modifications (on request or to fix bugs) and add new features.
Software we use
Ruby on rails 5
Industry Specific Software (knowledge is optional but will be considered as an asset in the selection process)
Liquidsoap (link removed)/
API (Currently in use)
Cloudns (DNS update)
Development platform: Cloud9
OS: Debian. Some knowledge of system administration.
Billing: We track the usage (creation, suppression, modification) of each service and we bill on the first day of the month after calculating the usage for the previous month (post billing). Each invoice gets recorded in QuickBooks Online (QBO) over their API. Payment can be made by Paypal or Stripe and are then recorded to QBO over the API as 2 transactions (1 payment, 1 journal entry for the fees).
Radio: We manage radio process (monit), creation, suppression, from remote servers over SSH. The customer can deploy their radio to the location (server) of their choice. They can also migrate their radio from one location to another. Once a radio is created, a unique DNS record is created (over Cloudns API). If the radio is migrated to a different machine, it the DNS record IP get updated.
Radio Statistic: We poll each radio server to read and store how many listeners are connected (every 5 minutes) (sidekiq). We save the data in RRD so we can display as a graph (Daily, Weekly, Monthly, etc.).
Radio Monitoring: We listen (with FFmpeg) and check the server status every minute to detect if a server goes down or if the radio broadcast dead air (no sound). We then notify by email (Mailgun) if a problem is detected five times in a row and we notify again once the issue is no longer detected.
AutoDJ: We use Liquidsoap to provide an auto DJ. Customers can upload their media to our server from the interface. The auto DJ is deployed in a remote server and is managed over a custom API build with nodejs. Customers can then update metadata of the track (which is stored in a database and updated in the playlist that Liquidsoap read). Playlists can be created in the interface and show can be scheduled to play at a specific time. There are also 2 inputs that DJ can use to do a live show. That feature is supported by Liquidsoap input.habor.
Admin: There is an admin user that has an overview of all the service created and can see the user details.
Provide relevant examples of your work in your cover letter. Mention if you have experience with Liquidsoap or any other radio broadcasting software as a developer.