What are we working on? The Balena Notes

Thanks Ilias. I run DevOps at resin, so I tend to spend my time split between building and evaluating infrastructure/tooling, responding to issues or high-priority feature requests, and support (when I’m on rotation).

Lately, I’ve been experimenting with using Terraform, aiming to replace our current CloudFormation definition in our production and staging environments eventuall. I started by using it to set up the pieces Ilias needed for his data warehousing project. I’m really enjoying it, and find it so light-weight that It’d be nice to roll it out across all of our accounts (we have a bunch of accounts for different things, to isolate the potential for failure/mistakes to impact customers). I’m also in the early stages of working on porting the resin.io components to Kubernetes for an evaluation. Due to some of the stuff we do (our Git server, VPN, etc.) moving to Kubernetes isn’t as straightforward as it could be, and given the nature of what we do the value proposition isn’t as strong for us. We’ll see where that takes us.

I’ve been learning Rust, and wrote my first (ugly) little tool in it. It’s been a really fun, but occasionally frustrating, process. I enjoy the act of writing in Rust a lot. I have a strong Ruby background, and in many ways Rust reads and feels like a mashup of Ruby, JavaScript, and Go (in my opinion; feel free to disagree).

The resin team has been expanding rapidly, and so many of my day-to-day tasks have involved onboarding-related things. I don’t manage our IT, but I’m involved in getting people’s keys on the right hosts, troubleshooting Jenkins issues, etc. We’ve got a ton of projects in the pipe right now, so we’ve had fewer deploys since the holidays.

Of course, today’s Friday, so I’m thinking I’ll probably dive into one of my hack Friday projects. Lately I’ve been working on

  • a distributed temperature/humidity sensor network (my basement floods and has humidity problems)
    • this uses a DHT22/11 to take readings, and integrates with AWS IoT to push data
  • an OctoPrint on resin setup for my 3D printer (a PrintrBot Simple Metal)
  • a smart thermostat (ideally integrated with the temp/hum sensor network), as well as having motion detection, etc.

Additionally, I have a home-built CNC milling machine (http://www.thingiverse.com/thing:724999) I want to integrate with our microcontroller support. It uses grbl for its motion planning, but it would be nice to register the Arduino as a dependent device and be able to update it remotely.

Because I believe @joe has been doing more work with Rust lately (and I don’t think he’s already in this thread) I’m going to nominate him for the next post. Have a good weekend, everyone!

1 Like

Thanks @jack, here’s what I have been working on:

  • Improving resin-wifi-connect to add support for Network Manager which replaces Connman as the network configuration tool in ResinOS 2.0. This was a little challenging as we wanted to keep backwards compatibility to ensure our users can push the same code to a fleet of devices running different versions of ResinOS.

  • Started to work on a total re-write of resin-wifi-connect in Rust. We are going to be adding lots more features, including, support for 3G modems, configuration over Bluetooth and connection bridging. This work will be integrated into the Resin supervisor and made available as a standalone app for devices not running ResinOS.

  • Implementing dependent device (micro-controller) support on Resin, this brings all the great features of Resin (git push deploys, dashboard management etc.) to resource constrained low-power devices. I can’t say much more right now, other than that it’s coming soon and it’s got me very excited as a hardware guy.

  • I am also on support this week which takes a bit of time from normal day to day work. It’s a nice change and I find it really enjoyable to talk to our customers and have a play/debug other parts of our stack which I’m not normally involved with.

@benedict, you’re up next!

2 Likes

+1 for this one …

+1000 for this one … :heart_eyes: :heart_eyes: :heart_eyes:

As also being “a hardware guy” I can image what potential this will unleash! You guys are purely awesome!

3 Likes

Awesome, @joe. Looking forward to seeing more Rust.

I’m normally working on Etcher’s ‘front-end’, and today I’ve been working on a little refactoring of Etcher’s interface, swapping the first two steps of Etcher’s flashing process: the image selection will come first, and the drive selection second, rather than vice versa as it is now.

Otherwise, I also have two active PRs that I’m polishing, one for a full screen file dropzone, and another to make all drives visible with warnings, rather than having to enable unsafe mode to show them.

I nominate one of our Etcher back-end guys, @lurch!

Thanks @benedict,

Like @benedict I’m also part of the Etcher team (we started at around the same time), but I tend to be more involved in the ‘internals’.

Last year I was doing a lot of work on Etcher’s Makefile (I still have some pending features to clean up & merge into this in the pipleline - when I get time!).
Most recently, I’ve been helping out on support in the Etcher GitHub repo and Gitter channel, reviewing various pull requests, and helping plan out the extended image-metadata support we’ll be including into Etcher soon (to offer a much richer user experience - watch this space! :dark_sunglasses: )
I also like to sometimes jump into a random open resin.io issue, just to try to get a feel for how the rest of the resin ecosystem works and is evolving :sunflower: I occasionally manage to catch the odd spelling mistake here or there, thanks to my eye for detail :wink:

Next up, I nominate @stefanos, part of the great operations team :slight_smile:

1 Like

Thank you for the nomination @lurch! :grin:

Not as cutting edge here at the Operations team but we are in the middle of a few things.

Most of the projects we are involved in at the moment revolve around the process of automating as many procedures as possible as well as making each channel in the Resin.io ecosystem interact as smooth as possible with each other.

More specifically, one of the most exciting projects I am working on at the moment is the automation of our business travelling. Resin.io is expanding all around the globe and believe it or not we’ve got amazing people working with us remotely from 4 continents! Thus the need for a sophisticated and handy travelling service.

On the other hand, other than the normal everyday operations duties I am also updating our wiki pages on github, mostly those that are part of the operations procedures.

Not as exciting as the other stuff we’ve read but still I love what I do for Resin.io!

Who’s next? Who’s next? Ah… I know… Have you ever met a guy that his name meaning let’s say didn’t exactly represent him? Well… I nominate @aggelos (@okakosolikos) Aggelos as we all know him… (his name means “angel” in Greek)!!!

1 Like

Aggelos is out for a bit, so maybe I jump in here for a moment, if that’s okay, @stefanos :slight_smile:

I feel lucky to be able to work on some things that are at the intersection of fun and useful. Today my three main priorities are:

  • starting to spread the word of our upcoming hackathon in London (see this post), and work on the preparation as hardware orders, catering, partnerships, etc… :tools:
  • we are developing the ability to sign in to these forums with your resin.io login too (so that no separate username/password will be needed in the future). For that we’ll have to deploy a resin.io oAuth 2.0 provider, and I’m working on an internal spec on how to make that happen. When it works, it will also enable a bunch of resin.io-enabled applications as well, so I’m very excited to see what will you build with it later! :passport_control:
  • writing up the resin-electronjs project by @curcuz in a blogpost to help getting started, and showcase things that can be built with it! (if you have a project built with resin-electronjs, let me know, would love to include and spread the word! :tv:

Besides these I’m looking for events in London to represent resin.io at. I’m working from home today (I usually go to our office, where most of our hardware is), so I guess that’s another challenge to figure out how to use the time well there. :clock:

For tomorrow, I nominate @jhermsmeier :wink:

Thanks for the nomination @imrehg! :slight_smile:

Hello, hello! I’m a recent addition to the Etcher team, working from Berlin, and feeling very lucky to work full-time on open source software now. :tada:

I started off with looking after our resinOS application preload script, adding support for the AUFS storage driver used by resinOS 2.0 and turning it into an easier to use CLI utility.

Now I’m working on re-architecting the internal drive flashing engine, adding a streaming pipeline that can be changed on-the-fly, in preparation for some upcoming features (like flashing one image to multiple devices at the same time, or support for more verification strategies) while also trying to waltz through the backlog of writer component issues and (hopefully) making things even more reliable in the process.

Aaaand I’d like to nominate @shaunmulligan next :relaxed:

1 Like

Sweet, thanks @jhermsmeier. Sorry for the late response on this. The past few days I have been finalising the multi-container design and things are looking really great. Hopefully we will have more details to share with everyone in the coming weeks on timing for this feature as I know lots of people are excited about.

I also have been finalising the last couple of items we need to sort out before we can release resinOS 2.0 as production ready on resin.io. We are provisionally aiming to release promote resin 2.0 to production worthy on the 15th of March, so look forward to an announcement from us around then.

Other than those two large items, I have also been tearing through and trying to prioritise all the support tickets and bugs we have in our back log, trying to make sure we make as many people as happy as possible. The rest of my week will probably involve trying to refresh large portions of our documentation as well as add some of the new docs for resinOS 2.0. That about all for now!

Next up, lets hear from our awesome support lead @sonya

2 Likes

My big project right now is figuring out how to intelligently manage the support rotation. Because our engineers are also the agents of support, we want to make sure there’s a developer on call for support tickets and questions in the forums (we keep an eye on the Troubleshooting category especially). We also ask all our engineers to put the support agent hat on (a fedora, maybe?), so we want to take into account everyone’s workloads, their timezone, their vacations and whatnots.

My ongoing Hack Friday project has been writing up documentation for the Boombeastic portable speaker. It was suuuuuuper fun to put together. Setting up resin on the Pi for this was super fast, and the small amount of soldering make this a quick project with a sweet speaker when I was done.

I’ve written quite a bit of software documentation, so the challenge for me was in learning how to describe physical actions without them sounding like stereo instructions (“put the 3mm nylon bolt through the faceplate…”)

Luckily I had help – I worked on this project with my geographically close coworker, @mccollam. And with that, I’ll tag him in to talk about what interesting things he’s been working on.

1 Like

Thanks, @sonya! The Boston contingent has to stick together, at least until we’re buried under the snowstorm we’re supposed to get tomorrow! :snowflake: :snowflake: :worried:

I’m a solution architect, so I straddle the line between engineering and sales. As such, one of the best parts of my job is also one of the toughest parts – I get to see all the cool new projects that our customers and partners are working on, but I usually can’t talk about them publicly!

Right now I’m working with folks who are building industrial automation equipment, new ways of generating and saving electricity, an amazing new sensor platform, and even a really awesome product you’ll want in your bathroom (no, really!). I can’t wait to see these things get out into the “real world” and start having an impact!

I can talk a bit about my day-to-day work in generalities though. My job is to be the conduit for information flowing between customers or prospects and Resin, so I spend a lot of time working with basically all the other teams inside of Resin. This week alone that’s been the devices team (whom I have harassed mercilessly about a kernel patch), marketing, community, sales, business development… really anyone who holds still long enough for me to grab. All while also working with those customers and partners I mentioned to make sure they understand how Resin works and how we can best work together. It’s a normal week for me but now that I type it out, it’s quite a bit!

(So you can probably imagine that I’m also spending a chunk of my time interviewing potential new team mates to help out – there’s lots to do! :slight_smile: )

I like to aim high, so I’m going to go all out and ask @alexandros to be next. Alex, what would you say you do here? :popcorn:

1 Like

Hello Errybody! I’m working on a bunch of stuff at the moment (informative!), some of which I obvioulsly can’t say much about (doubly informative!) but let’s talk about the stuff I can talk about (information overflow).

So I work on a few things in resin. First, I work on product, making sure that the spirit of resin is maintained across the things we do. Right now, we’re working on a bunch of new releases, including resinOS 2.0, and starting work (finally!) on multicontainer. I’m also very involved with the ongoing evolution of Etcher which is about to get a big release and a new set of goals for v2

Secondly, I’m very passionate about the way the team works internally, both as an organisation and as a set of tools. So we’re building very aggressively some cutting edge microservice devops tools for our use (though it’s all open source anyway) and also we’re working hard on creating an internal structure that minimises hierarchy and maximises information flow and self-motivation, but that’s a muuuch longer conversation.

And of course the third part of my work is meetings. Lots and lots of meetings. Investors, customers, partners, potential hires, internal team housekeeping, and so much more.

All that said, there’s an incredible team that actually does the doing on everything I wrote above, it’s not quite that I do all that myself. As a CEO sometimes I feel I don’t actually do anything, just go to meetings, mostly :slight_smile:

Oh, and whenever I have a hack Friday, I am trying to make a hardware version of Etcher on an ODroid XU4. I went with the XU4 because of the high RAM and USB 3.0 bus, but getting the screen to work is a royal pain :tired_face:

Aaaaand I think this is everything! So, who’s next? I tag @alexis, just because I’m fairly certain he hasn’t been tagged before :stuck_out_tongue:

2 Likes

Thanks @alexandros and hello everybody.

I’ve been working at resin.io for a bit more than a month now. I’ve been doing some small changes and documentation for resin-image-maker.

I published my first updated package to npm today (resin-device-config). \o/

I am also working on node-lkl. This thing is fabulous. It allows you to mount any disk image and list/read/write files on any partition with a few javascript lines. It supports all filesystems Linux supports. It is basically embedding a Linux kernel in your node program. The magical part is that It should even work on windows (though I have not tested this).
It’s a fun and challenging project to work on. It mixes C (in the Linux kernel code), C++ (node bindings) and javascript.
Thanks to @petrosagg’s recent work it is even possible to intercept / modify reads and writes at the block level (in javascript !).
node-lkl should allow us to replace many libraries and tools we use in our projects like mtools or fatfs.

For tomorrow’s Hack Friday I have an old Raspberry Pi and a PCA9685 PWM driver that have been sitting on a shelf for too long. I’ll see if I can move some servomotors using resin.io.

I nominate @andrei to be next :microphone: !

2 Likes

Boo!

Me and the entire devices team have one thing in our mind these days: resinOS 2.0 release which we have it planned for 11th of March. This new release brings so many features that I would probably spam the thread here by listing them. Let me show you the milestone: https://github.com/resin-os/resinos/milestone/2 for the things we have left to do. Uh, now that I actually checked that milestone, I saw we only have 22% done so I’d better get back to work. See you soon, resineers!

I nominate @cameron to tell us interesting things next.

Andrei

2 Likes

Thanks Andrei! I know I’m not the only one looking forward to resinOS 2.0.

As for myself, lately I’ve been working on improvements to the builder, such as giving the aesthetics a revamp, in the interest of clarity in build logs. At the moment I’m putting together a plan of how to extract the core functionality of the builder and make it usable across other resin (and non resin!) applications. That means Dockerfile.template resolution in resin-device-toolkit!

We love open source here at resin, so I’ve been spending some time working out how my improvements to the builder can be used by the greater open source community - stay tuned for that!

As for my hack Fridays, I’ve been experimenting with machine learning on the raspberry pi. It’s not very fast but it’s damn satisfying!

I nominate @alexis to keep us updated on the cool stuff he’s been doing.

I nominate @alexis to keep us updated on the cool stuff he’s been doing.

Ah, looks like Alexis gave us an update above not long ago actually. I’m going to jump in here and nominate @lucian in his stead, since I don’t think he’s been pinged yet, and I know he’s been working on all sorts of exciting things recently :smiley:.

1 Like

Oh, wow. I’ve heard some of the stuff @lucian has been doing recently, but in a one half of a telephone conversation kind of a way; and it does sound exciting. Come on @lucian, don’t let me down.

Thanks for the nomination @tim
The dashboard is my main priority, so It’s all very dash-centric!
What I’ve been up to:

  • A number of improvements to the dashboard logging and terminal features that will be released soon if they haven’t been already.
  • Working on implementing custom device locations
  • Investigating a desktop version of the dashboard, which could potentially share some of etcher’s functionality (still a long way off)
  • Working on a new project for building UI forms from JSON models
  • An rpi based multiplayer synth sequencer app, designed to run on resin.io of course! (https://github.com/LucianBuzzo/beeperfleet)
  • A host of small patches, fixes and tweaks to the dashboard

I nominate @alisondavis17 to let us know what she’s up to

2 Likes

Back for round two! My main focus this week has been preparing for a bunch of exciting events and product announcements that we have coming up, including:

-SCALE 15x in L.A. this weekend, March 2-5
-Embedded World in Germany, March 14-16
-DockerCon in Austin TX, April 17-20

And of course the resin.io hackathon in London on March 11!

We’re also getting ready to roll out new pricing and support plans very soon, so I’m working to make sure everything is in place for a successful transition.

Oh, and I should mention that I’m part of the interview team for the Technical Content Lead position that we recently posted. If you’re interested in helping us create user understanding about resin.io, do consider applying!

I nominate @konmouz to give us an update on all things user experience!

Hellooo,

Thanks @alisondavis17 for the nomination.

Lately, I have been busy working on our open source project, Etcher. The latest release is an optimized version of our popular image writer, offering our users the best possible experience. As an extension, I am also focusing on the future of Etcher that reflects our vision, aiming at offering various new features including embedded image cataloge, image re-configuration and multi-writes.

Another interesting project I’ve been working on along with @alisondavis17, @craig and @taahirisaacs, is the redesign of our website. Fingers crossed, it will be released soon. My role is to design an effective information flow to clearly communicate what Resin does and what brings in IoT. Within that scope, we are also updating our Blog and Docs experience.

Finally, I am working on our core product, the resin.io platform. This is a long term plan of rethinking and restructuring the UX architecture. As a first step, I am exploring the environment & configuration variables’ UI and the challenging spec of multi-containers, while I am also trying to come up with an efficient system to filter and organise devices.

I nominate @curcuz for an update since I am curious about his latest creations!

Looking forward to our Hackathon this week.

Cheers,
Konstantinos

1 Like