Michael Karlesky

A cabinet of wonders. Minus the cabinet. And possibly the wonders.


Edenworks Indoor Farming: A Crop of Data

How do we harvest the right insights as we harvest our products?


Microgreens growing in a pond within vertical racks

Edenworks was an indoor farming and manufacturing startup. Using aquaponics, the company grew fish that were the fertilizer source for greens. The fish grew in tanks and the greens grew in a series of ponds in vertical industrial racks. Bacterially produced, nitrogen-rich water circulated from fish to greens. The system used no artificial fertilizers or harmful insecticides, and the product was on store shelves the same day it was harvested.

Edenworks was a startup so it was constantly growing — both literally as a farm and metaphorically as an organization. It was effectively not only a farm but also a manufacturing facility.

Salmon seen through their tank’s window

With so many living things in an enclosed ecosystem and with so many operational processes, data was incredibly important. A core requirement was preventing mortality events. But, data also meant the opportunity for insights in quality problems, R&D projects, and optimized production.

I orchestrated the creation and operation of the data infrastructure for Edenworks’ many needs and various users. This involved a team of four as well as a variety of sensors, embedded systems, enterprise & web applications, networks, databases, alarms, dashboards, analytics reports, and data exploration facilities.

My work was expansive. This case study focuses on the environmental data system. To be clear, there were also similar and interconnected business data, operational, and information technology systems not discussed here.


My contributions to developing Edenworks’ environmental data infrastructure fell in four buckets:

  1. Leading the Software & Electronics team

    1. Strategy, user discovery, and requirements

    2. Project management

    3. Software development & hardware bringup processes

    4. Team mentoring

  2. Developing custom software

    1. Interaction design + information architecture

    2. Firmware for embedded hardware

    3. Systems-level applications for data handling

  3. System administration — Docker, Linux, NGINX, various web apps, OAuth2, etc.

  4. Leading data and sensor systems operations and maintenance


  • FarmHand

    • Sensor node application — C++ on ATmega2560, i2c, RS485/Modbus, and MQTT with a telnet-based command line for sensor calibration and administration functions

    • Continuous Integration build system — Docker, Git, SCons, avr-gcc toolchain, valgrind, Google Test

    • Deployment system — Docker container generated by build system + avrdude + ser2net + USB

  • FarmManager — Hybrid local Linux + cloud-based data handling system

    • Custom components written in Go

    • Assembly of 15+ Docker containers for web apps, databases, backup, and monitoring systems

  • Farmbot — Slack-based app written in Go for system management and raw data queries

  • Django-based custom manual environmental measurements entry web app

  • InfluxDB-based time-series data handling stack

  • PagerDuty-based environmental and I.T. infrastructure alarms

    • Deadman alarms

    • Environmental conditions alarms

    • Power loss & 3 phase power disruption alarms

    • Internet connectivity alarm

    • FarmHand internal logging alarms

  • Grafana-based dashboards for production, testing, and calibration data

  • Power BI-based reports synthesizing business and environmental data

  • NGINX: Intranet, reverse-proxies for web applications, and OAuth2 access management via GSuite


At its peak, the environmental data infrastructure I worked to produce processed 10 types of sensor readings at 50+ sites yielding 10,000,000+ data points a month.

Farmers had alarms and dashboards to manage day-to-day work while the engineering and business teams had ready access to large volumes of data through further dashboards and reports. All users had access to a variety of web applications and data exploration interfaces.

We were invited to participate in the Beta of the InfluxData’s next generation of products. Similarly, because of our creative use of their product, PagerDuty highlighted Edenworks at their PagerDuty Summit 2019 and co-authored an integration guide with us.

See the gallery below for some of the equipment involved, various software screenshots, and more.


Open each image for a larger view and a detailed caption. The following depict only a portion of the larger data collection, analytics, and information technology systems touched on above.