Tired of building CRUD apps? Join us to work on a Rails app that processes data from thousands of IoT devices, does low-level binary protocol parsing and exposes a JSONAPI compliant API that a vue.js SPA and mobile apps consume.
We thought that it might be quite interesting for you to read more about the project that we are currently recruiting for. We cannot reveal the brand of our client due to NDAs, but here’s a brief description of the project.
What is the project about?
We’re building a platform that collects, processes and stores metering data from tens of thousands of devices. We collect data from various types of meters that are used for the submetering process - allocating costs to specific building tenants.
We use Ruby on Rails on the backend and Vue.js on the frontend. The tech includes Postgresql, Cassandra, Redis, MQTT, Sidekiq and Heroku. We maintain a JSONAPI-compliant API that’s used by a Vue.js SPA and iOS and Android mobile apps.
How does the project look now?
The platform is stable and currently running more than 500 gateways, each of which handles around 400 meters. Quite a lot of meter data is aggregated through the platform, and users can perform and manage installations on the frontend.
We’ve finished the first stage of the project - we’ve built a reliable processing pipeline. We’re now focusing on supporting more device models and scaling. The next big task is building a workflow engine for the whole submetering process, from installation to cost allocation.
Why is it unique?
This project is not a standard cookie-cutter Rails project:
- The tech stack spans from low-level data parsing, through serving a JSONAPI API to building a Vue.js SPA, which provides many areas for learning and growth.
Many tasks not common in other projects:
- We regularly work with binary data, writing parsers for protocols, sometimes reverse-engineering undocumented ones
- We build synchronization mechanisms with other tools using their APIs.
- We connect with, and later take over the functionality of legacy systems.
- It’s as far away from standard CRUD as you can get. Each feature is complex and needs deliberate planning and consideration of its effect on the rest of the system.
- We work directly with the client’s CTO. He has deep domain knowledge that he shares with us and broad technical knowledge.
- We work in a small team of senior developers, so we can learn a lot from each other.
- We have regular brainstorming sessions at our Łódź office.
- We work in weekly sprints, with the client’s CTO as a product owner.
- There is a dedicated QA engineer on the client’s team.
- Every commit goes through code review and CI.
- We deploy to production multiple times a day.
Want to get to know us first?
We understand that you might not be 100% sure at this point that working with us is the right decision. So we encourage you to learn more about us, our core values, community engagement or knowledge sharing.
Joining us means:
- 100% remote work,
- independence in setting up your salary twice a year,
- entry salary level between 7k-12k net on B2B
- open company financial records (example: income, expenses, forecast),
- transparent communication and company documents,
- choosing your own perks,
- treating you as an equal partner, not an employee, we are a self-managed software house,
- participating in every-day decisions regarding the direction of the company growth,
- growing in the technology you like the most,
- opportunity to develop in non-programming fields (project management, customer relations, recruitment, marketing, sales).
We are eager to hire you from July/August 2018 (later date will do as well).
Recruitment process will take you through 3 steps: 30-min interview, technical review and culture fit interviews. Find out more about the recruitment here
If you are curious about what we did, go through our case studies