Hardware by Software Developers

Neema Bahramzad
4 min readDec 16, 2016

--

Spreetail is an ecommerce company that hires developers for internal software development, such as myself. Our developers can write some great software, but that isn’t what this article is about. Instead, I’m going to share a story about the time our software developers went rogue and made great hardware.

Powering up the production buttons for the first time

Our team develops solutions for every aspect of our ecommerce business such as accounting and customer experience. The story starts with a brainstorming session in one of our fulfillment centers trying to solve a warehouse operations problem. We were trying to answer the question, “how can we make packing orders take less time and be more accurate?” As a few software developers and operations managers awkwardly stood to the side and observed fulfillment team members putting car stereos and swimming pool filters into boxes for shipping, we noticed that a lot of time was spent figuring out which box to grab.

“What if we had buttons light up underneath each box size?”

How do we do that? We’re software developers; we don’t build hardware.

Button with LED light designed for arcade machines

Thankfully, at Spreetail, we don’t limit employees to solving certain types of problems. I have a degree in computer engineering, and I have taken a few classes and labs about circuits, electricity, and microcontrollers. The button idea seemed like a great way to dust off some skills I haven’t used since graduating, so I volunteered to make the project happen.

Our team first took into account the current programming languages and tools our company regularly uses. Because most of our software is written in C#, choosing the Netduino over the Arduino was a logical choice if we wanted other developers not familiar with the project to help out.

First prototype on breadboard

Additionally, we already had computers in our fulfillment centers that we would regularly publish code to. Instead of designing our Netduino solution to send and receive information directly to a network, we could communicate to these computers over a serial connection.

Second prototype built as a Netduino shield

To simplify the process, we wrote C# libraries for both the Netduino and desktop applications that abstracted away the process of establishing the connection, collecting the bytes, serialization, and deserialization.

Getting the lights working

The resulting product is a packing station that will light up the button underneath the cardboard box or plastic mailer bag that will best fit the items the fulfillment team member is trying to pack. No need to go searching for which packaging to use, just go to the flashing button, grab the box or bag, and push the button to confirm that you are ready to move onto the next item.

Notice the space above the buttons for organizing the packaging

Just because you are a software developer doesn’t mean you cannot build hardware. The circuits for this project were very basic and can be quickly learned online. Software developers can write basic microcontroller functionality and move complex business logic to the full desktop application environment that they are more comfortable with. The library just abstracts away the pains of serial communication.

As a software developer, it was very magical to make a solution that changed things in the real world instead of just pushing pixels around on a screen. I encourage any developer out there that might be afraid to make some circuits to give it a try.

If you think you’re ready to start your first hardware project, check out the open source guide and examples on Github. If you want to learn more about Spreetail or look at open positions, check out our website.

--

--