30MHz helps agribusinesses make decisions with real-time insights on their crops and environments. It lets you set up a wireless sensor network in moments and helps monitoring your environment through a dashboard.
When I joined 30MHz the 2nd version of the dashboard had to be built. I built a new version from scratch in Angular 1 and with libraries like D3 and Angular material. With this new version, users were able to create dashboards, customisable widgets and analyse their data. After 2 years we decided to upgrade to Angular 5 and I refactored the code base to the newest Angular version. Read more about the dashboard.
After finishing the 1st version of the dashboard I started helping with the rest api. The API is written in JAVA and uses tools like Maven and Swagger.
Notifications in Scala
Next to the dashboard customers can setup notifications when sensors reach certain tresholds. This notification feature is written in Scala to handle all the events which need to be processed. I was responsible for the 2nd version of the notification system. This new notification system is more user-friendly and helps users setup multiple notification with custom messages. I also implemented battery notifications for when sensors need battery replacements.
The 30MHz stack runs on AWS. This made me get familiar with products like EC2, EB, DynamoDB, S3 and Cloudfront. It also helped me think upfront on how to make products that scale by using services like SQS, load balancers and autoscaling.
All data that is collected by sensors are saved in elastic search. Our API queries this data and returns it to the dashboard in JSON format. I got familiar with writing complex ES queries in order to make conversions. A user can for example choose between Celsius and Fahrenheit. This conversion is calculated on the fly by using custom queries and script fields.
The new 30MHz homepage I built with the help of WordPress. This way our sales and marketing can edit content easily without having to touch code. On top I used services like Cloudfront caching for speed and Elastic Beanstalk for scalability. The active WordPress community makes it easy to add multilingual features and customisable page editors through plugins.