Hacker News new | past | comments | ask | show | jobs | submit login

Arduino /Software Engineer / Turin, Italy / full time , onsite

We are looking for a Software Engineer to increase our HW and R&D team. This position will be based in Turin. This person will design and develop firmware and libraries for microcontrollers used in Arduino and occasionally higher level userspace programs for the Arduino ecosystem.

Where

Turin (Italy).

Responsibilities

Design, develop, code, test and debug embedded software Maintain and improve the code. Interface with hardware design team Review code and hardware design. Interface with open source community Write tech documentation Skills & Requirements

firmware (C, C++) Linux, kernel e userspace GO Language (bonus points - not required) Arduino (ecosystem, community etc) hardware debug userspace cross-platform dev. Knowledge of the Arduino ecosystem is definitely a plus; Knowledge of Github is a plus; How to apply

If you feel you meet this requirements, we would love to hear from you! Please send us an email at jobs@arduino.cc . Please specify in the email subject the position you are applying for. An introduction letter would be also great for us to better understand your motivations and why you would like to work with us.




Where about is Arduino looking to use Go? I shared this comment over at #arduino on freenode (550+ active community users) and a couple of people are surprised but most of all curious about what this means or where it might signal Arduino is heading!


I was also curious. Go and microcontrollers? Must be a misunderstanding and not Go the language.


The worst part about using Go for embedded systems is that there's no way to disable dynamic memory allocation (which can be unreliable and/or hard to reason about) - at least last I checked. This is brought up in the essay "Go is Not Good".

Memory-mapped I/O is possible, but there's no way to separate such unsafe constructs from "safe" ones, as that essay points out.


Well, it's absolutely worth remembering that Arduino the ecosystem is much larger than 8-bit uCs. Arduino now supports from tiny 8-bit uCs with hundreds of bytes of ram to expansive ARM devices comparable to those you'd find in drones and other large devices.

Additionally, they maintain an IDE, a complex set of pre-processing tools, and library+device management servers that allow more modularity in the ecosystem.

I'm sure there's a place for Go, I'm just not sure where they plan to put it.


Wouldn't rust be a better fit?


If you're using a device that isn't necessarily weak in terms of processing power and RAM, the Go vs. Rust debate AFAIK is basically about preference. There are features of each language that make them appealing in different ways; the major drawback from Go is in relation to binary size, memory management and general performance bloat.

Source: I write Go code that runs on microcontrollers.




Applications are open for YC Winter 2024

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: