Back to resources

Building Software in a Hardware Company

Internal Communication
Collaboration

30 April, 2021

Marissa Mocenigo
Marissa Mocenigo

Senior Engineering Manager at Taxfix

Marissa Mocenigo, Engineering Manager at Taxfix, speaks of her challenges as a software engineer in a hardware company as she shares how ensuring a close working relationship and good communication between hardware and software engineers is at the forefront of success.

Problem

As a software engineer, working in a hardware company has different challenges and obstacles. Longer lead times on hardware can cause delays or blockers for software development milestones, without delaying deadlines. Testing can be limited by the availability of devices. Once the hardware is manufactured, software might be the only option for adapting necessary workarounds.

Actions taken

Bring together hardware and software engineers early to brainstorm and document risks and solutions.
It’s never too early to start documenting risks that may result from hardware design or failures. There may be some cases where software can provide a simple workaround, and it helps to prioritizes potential pain points that cannot easily be solved with a software solution.

If possible, create a virtual testing platform that replicates the hardware.

Everything should eventually be tested on the actual hardware, but it may take several iterations to get a feature working properly. Many early hardware startups only have a couple, if any prototypes, available for testing and small, early hardware runs can be expensive to produce. Creating a virtual version of the hardware can unblock software development and can also reduce the need for mass testing devices.

Create resource calendars to book hardware devices.

This tip probably seems relatively trivial, but I’ve seen so many places fail to do this and struggle with who has what device where and for how long. As above, it’s important to test on the hardware but availability can be limited for many reasons. Use the company’s calendaring system to book devices similarly to booking a meeting room. If marketing needs a device to take to trade shows, they should be sure to book it in advance. If an engineer needs a device for testing, they know who to ask if all the devices are booked up, and they can plan around availability when working on a feature.

Document a common understanding of shared APIs.

This is important at any company, but it’s even more important when bridging across hardware and software. Ideally, this will allow you to parallelize tasks as much as possible. Front-end engineers, for example, can start developing features and mock up calls to the device that can then be implemented later.

Lessons learned

Working at a hardware company has some of the same challenges as working in any software startup; however, some challenges can be exacerbated by timelines, coordination, and collaboration. The focus of many of these actions is communication, and ensuring a close working relationship and good communication between hardware and software engineers is at the forefront of success.

Discover Plato

Scale your coaching effort for your engineering and product teams
Develop yourself to become a stronger engineering / product leader


Related stories

The Importance of Culture and Values When Building Teams

26 May

Elwin Lau, Director of Software at Jana, advocates the importance of maintaining culture within a company when scaling teams.

Mission / Vision / Charter
Scaling Team
Building A Team
Company Culture
Collaboration
Onboarding
Sharing The Vision
Elwin Lau

Elwin Lau

Director of Software at JANA Corporation

Managing Different Time Zones: Inclusive Collaboration Methods

19 May

Jonathan Belcher, Engineering Manager at Curative, shares an unknown side of synchronous communication tools and advises managers on how to handle a team that’s spread across the globe.

Remote
Internal Communication
Collaboration
Cross-Functional Collaboration
Jonathan Belcher

Jonathan Belcher

Engineering Manager - Patient Experience at Curative

Managing Remotely: Balancing Team Cohesion and Focus Time

26 May

Jonathan Belcher, Engineering Manager at Curative, explains how to balance team cohesion and individual focus time, tapping into his experiences of working remotely for seven years.

Remote
Micromanagement
Meetings
Internal Communication
Productivity
Psychological Safety
Performance
Jonathan Belcher

Jonathan Belcher

Engineering Manager - Patient Experience at Curative

Creating a Company Culture That Balances Helpfulness and Productivity

16 May

Alexis Philippe, Vice President, Product & Engineering at Amilla, describes his one simple rule for creating a culture of helpfulness that doesn't disrupt productivity.

Mission / Vision / Charter
Company Culture
Collaboration
Cross-Functional Collaboration
Alexis Philippe

Alexis Philippe

Vice President, Product & Engineering at Amilla

Streamlining Product Processes After a Reorganization

16 May

Snehal Shaha, Lead Technical Program Manager at Momentive (fka SurveyMonkey), details her short-term technical strategy to unify processes among teams following an acquisition.

Acquisition / Integration
Product Team
Product
Building A Team
Leadership
Internal Communication
Collaboration
Reorganization
Strategy
Team Processes
Cross-Functional Collaboration
Snehal Shaha

Snehal Shaha

Senior EPM/TPM at Apple Inc.

You're a great engineer.
Become a great engineering leader.

Plato (platohq.com) is the world's biggest mentorship platform for engineering managers & product managers. We've curated a community of mentors who are the tech industry's best engineering & product leaders from companies like Facebook, Lyft, Slack, Airbnb, Gusto, and more.