Software best practices in (Hard)ware world!

Chinmay Pendharkar

@GeekcampSG 2022

whoami

  • Engineer ๐Ÿง‘๐Ÿพโ€๐Ÿ’ป
  • CTO @ Subnero
  • Hackware ๐Ÿชš
  • Intersection of Hardware and Software

Software best practices are NOT widely adopted in hardware world!

Definition

Hardware โˆˆ Mechanical + Electronics + ...

Poll ๐Ÿ™‹

Software Only

Software + Hardware

Hardware Only

Can software best practices be applied to hardware development?

  • Anyhowly
  • Effectively
  • Practically

Concrete Example

  • Mechanical & Assembly Drawings โœ๏ธ
  • Electronics Schematics, Layouts, BOM ๐Ÿ”Œ
  • Software code ๐Ÿง‘โ€๐Ÿ’ป

Concrete Example

  • Documents โ†’ Versioning + Version Control
  • Components โ†’ Integration + Testing

Versioning

Versioning

  • No standard versioning scheme ๐Ÿ™…โ€โ™‚๏ธ
  • Everyone makes up their own ๐Ÿ’ฅ

							../schematics > ls
							electronics-rev-010A.PcbDoc
							electronics-rev-010_copy.PcbDoc
							electronics-rev-010_copy_20180809.PcbDoc
					
Can I use mechanical assembly v4-MKII with PCB rev-010A?

Semantic Versioning - SemVer

  • Pseudo-standard ๐Ÿคทโ€โ™‚๏ธ
  • Widely adopted ๐Ÿ™Œ
  • MAJOR.MINOR.PATCH
"we propose a simple set of rules and requirements that dictate how version numbers are assigned and incremented"

Our SemVer

  • MAJOR: Changes that affect other components ๐Ÿ™ˆ
  • MINOR: Changes that only affect your component ๐Ÿ’ช
  • PATCH: Changes that only affect your component but don't change any functionality ๐Ÿงน
"understand what changed at a glance"

Version Control

Version Control

  • Design Documents need version control ๐Ÿ“„
  • git โค๏ธ
  • Propreitary Binary file formats ๐Ÿ˜ญ

Version Control - git

Version Control - git

Version Control - git

  • commits + tags ๐Ÿท๏ธ
  • branches and PRs ๐ŸŒฒ
  • Custom Porcelain/GUI ๐Ÿšฝ

Version Control - Allspice

AllSpice.io

CI/CD

CI - Hardware

CI - Hardware

CI - Hardware

Can software best practices be applied to hardware development?

  • Hard but not impossible ๐Ÿƒโ€โ™‚๏ธ
  • Extract the essence of the best practice ๐Ÿ’ง
  • Apply in context ๐Ÿค”

That's all folks! ๐Ÿ‘‹


chinmay.audio/talks

#Hiring

  • Like to work on hard problems? ๐Ÿ’ช
  • Underwater wireless communications? ๐Ÿ“ก
  • Join us!