This article discuss the importance of hardware and software skills to meet time to market.
This was conducted in Linkedin and most of the participants are embedded working professionals.
Let us try to understand overall picture of hardware vs software. Embedded journey starts with MCU and it involves both software and hardware.
There are multiple small level products based on simple peripherals. These products include Timer, Counter, Traffic Controller, Lift Controller , Invertor , Vending machines etc. There is lot of competition on these products , hence these require low cost solutions. Most of the developers in such products need both hardware and Firmware knowledge. One can manage the complete firmware in assembly as well.
IoT based Products
This is the next level to simple products where you need both basic Embedded and networking domain knowledge. Here you can expect separate hardware and software developers. The software development in this domain involves Firmware , Networking , Database , Cloud connectivity, Security , GUI etc. In this case only firmware level developers need hardware knowledge or at least understanding of schematic. There are plenty of evaluation boards available for Embedded + IoT domain, so one can learn without going into hardware design detail. I recommend electronics engineering students to opt for this IoT approach and later move to either IT or Core.
Advance Embedded Products
The next level of products can be specific to particular domain such as Automotive , Storage , Networking , Multimedia, AI etc. Most of these products use OS (RTOS, Linux based OS, Android etc) . Here you can see separate Hardware , Firmware and Software development teams. Some of the important IPs here include SATA, CAN, USB, Ethernet, Wireless, PCIe , DDR etc .
Once you understand PCIe , DDR and Ethernet , you are more close to Desktop hardware and software. Many of my ex-colleagues moved to Desktop level development now. So when you think about Embedded domain , you should be prepared for incremental learning for long term career.
Once you get expertise in advance level embedded , you will take the following as another development board where you can easily replace compatible DIMM , HDD , Battery , CD/DVD drive etc .
Which is most important Software or Hardware or Time to Market ?
I noticed some biasing in the poll. Software folks voted for software , Hardware folks voted for Hardware and Managers voted for Time to Market. This is expected as well. I believe both software and hardware knowledge help in meeting Time to market. Embedded software developers must have some basic knowledge of schematic and Hardware developers must have some basics of firmware. There is another important skill i.e. Debugging skill which comes with experience and helps in reducing time to market.
Let me give you an example to understand debugging skills better. There is a well known issue with WiFi in upgrading to Ubuntu 18.04. So if WiFi was working in older version , it can’t be hardware issue. You may conclude it as software issue. But you don’t need to write OS or driver, you can search to check whether it is a known issue. Did you face such issue ? If you find something interesting , Please comment. I am sharing one link just for reference.
Interested in Embedded Career ? Download Embedkari Lodge 2021
About Author – Sanjay Kumar Adhikari
•More than 28 years intensive IT experience in designing, developing and supporting various embedded designs in Telecom access networks.
*Implementation of embedded technical support, Hiring & Mentoring of embedded engineers.
•Over 10 yrs experience in handling an embedded-system support team as a Team Lead.
•Expertise in Design and Development of Linux Device drivers and Bare Board Device Drivers for various telecom/networking devices. Technical knowledge of interfaces like DDR, PCIe, SerDes, Ethernet, I2C etc
•Hands-on experience in Board Support Packages (BSPs) for PowerPC, ARM SoCs from Freescale.
•Enabled Trans-national(Cisco, Alcatel-Lucent, Juniper etc ) and Indian (TATA, C-DOT, DRDO) clients to implement Freescale Networking SOCs.
•Supported all Major Networking (Cisco, Juniper, Aricent) clients in hardware and software troubleshooting on custom hardware. Help customers in porting Freescale device drivers to customer specific Operating Systems such as IOS , JUNOS, FreeBSD etc.
•Provided training to design engineers in using Freescale’s CodeWarrior and Linux BSP.
•Conducted training and demonstration of Freescale technologies in various public events such as Freescale Technology Forum, Design with Freescale etc. It includes 11 national level and five International level seminars