Evercam
Lead Elixir engineer (full-stack)
Introduction
Hello — I have been a programmer for the past 10 years in Node.js, Elixir, and Ruby, with an appetite to learn and try new things; I mostly learned through R&D. I love to contribute to open source and tend to dive into strange, complicated problems. I still have plenty to learn, but I ship answers in production.
About the company
Evercam provides construction cameras, timelapse, and device/cloud tooling — from Rails-era apps through a migration to Elixir/Phoenix microservices, Nuxt frontends, and edge firmware.
My role
Lead Elixir engineer (full-stack across Node.js, Elixir, Ruby, Vue/Nuxt, React, Apollo GraphQL) over several years, remote from Islamabad.
- Maintained Ruby on Rails admin and dashboard applications with RSpec & Capybara.
- Maintained and built features in dashboard and admin applications written in Ruby on Rails.
- Maintained and worked on features in a Ruby Sinatra API; led a rewrite to Elixir Phoenix with GraphQL, Swagger docs, and unit tests.
- Made a large architectural move from monolith to microservices, separating business and camera logic.
- Migrated Ruby on Rails application to NuxtJS (Vue) and connected it to the Phoenix API.
- Created a Ruby on Rails application for computer vision — Eyes of Things: Mobile Camera Demonstrator.
- Built Snapshot Extractor using RabbitMQ fan-out topology in Elixir with Oban, GenServer, RMQ publisher, and BroadwayRabbitMQ.
- Set up RAID and Nagios for physical server monitoring on Hetzner servers.
- Set up and maintained SeaweedFS clusters for uploading camera snapshots.
- Built tooling to accept Kafka message streams using BroadwayKafka with Protobuf decryption in Elixir.
- Built and maintained embedded Elixir (Nerves) at the edge with Phoenix backends for telemetry, device health, and field operations alongside IP cameras (Hikvision / Axis).
- Implemented hot code upgrades using Distillery in Elixir and Ansible — write-up on Medium.
- Developed and maintained a microservice in Elixir to handle 1000+ camera workers using RabbitMQ with producer/consumer logic, DynamicSupervisor, and a one-for-one strategy.
- Built tooling to generate maps using GeoJSON and CoffeeScript, deployed on Heroku.
- Built and maintained a Node API with React and Apollo GraphQL using MongoDB.
- Maintained services on AWS Elastic Beanstalk, Amplify, EC2, S3, Route53, and Lambda.
- Worked with PostgreSQL, Firebase, and MongoDB.
- Implemented Redis cache in the Elixir/Phoenix API for read-heavy paths.
- Built and maintained Phoenix API and NuxtJS apps for live streaming JPEGs using channels and Phoenix PubSub; coupled APIs and microservices with Erlang RPC.
- Created and maintained device management and monitoring — edge-commander.