The One Engineer Dev Shop
Chris Gammell
Presented at the Hackaday Superconference 2022
Define "Dev Shop"
"Dev(elopment) Shop"
A development shop is a company that provides services of building a product or service, or else or updating existing products for external customers.
Some of them are huge!
Hundreds of employees
10s of simultaneous projects
Full Service Shops
- Hardware design
- Software design
- Mechanical design
- Cloud design
- App design
- Brand design
- Industrial design
Support Services
- Manufacturing liaison
- Project management
- Accounting
- Purchasing / procurement
- HR
These roles will be the basis
for our discussion
Why would you want to do more of the work?
As a "One Engineer Dev Shop" (OEDS)
Bill more hours
Learn / Build more skills
- Maybe you can bill more later
- Maybe you can build your own project using those skills later
Less communication overhead
- Potential cost savings for client
"Perfect is the enemy of the good"
- For things like a proof-of-concept (POC), you expect to revise things later
- The important thing in a POC or prototype is often showing everything working together in some form.
- Premature optimization will waste your client's money.
It's fun / rewarding / empowering
Why does Hackaday care?
- Building projects for the Hackaday Prize!
- Self reliance when building any project
- Going out on your own
Caveats
The Lone Wolf Engineer is a Myth
- CMs and providers have huge teams
- Software / tools are developed by many people
- Just because you outsource doesn't mean you're doing everything
Image: https://tinyurl.com/2faybh8y
Just because you can, doesn't mean you should
- Always talk to your clients about what they want you to take on. Some say, "I don't want to have to think about it"
- A key skill is understanding when to hand off a part of the project to a specialist because that will be a better experience for your end client.
Image: https://tinyurl.com/2p8avvda
Just because you can, doesn't mean you should
- Outsourcing labor will be a major component, so some of the money spent on the OEDS is for overhead/management of others
- Using starter projects / templates
- Less defensible / original work
- Less polish of the final product, and of the
Image: https://tinyurl.com/2p8avvda
I am no longer a full time OEDS
- I work within a development team full time at Golioth
- I still get to work similar to an OEDS building Reference Designs
- I still do some small consulting work for old clients
Electrical Engineering
Overview
- EE Design
- PCB manufacturing
- Assembly
- Testing
Design
- More integrated, integrated circuits
- SIPs
- SOMs
- RF combos
- Availability of design resources
- Vendor reference designs
- Vendor design reviews (!)
- FAE support
- Online tools like WebBench
- Tools
- Open source programs like KiCad
PCBs
- The rise of low-cost board houses
- Process improvements
- 4 and 6 layer boards are marginal cost upgrades.
- I start almost every design at 4 layers to cut down on layout complexity and prep for RF on a design.
- Better process control means low cost boards are "good enough" for simple RF / controlled impedance.
- 4 and 6 layer boards are marginal cost upgrades.
- Speed improvements
- Hands-off process
- Process improvements
- Error checking
- Built in DRC for almost every platform
Assembly - in-lab
- Assembly equipment in the prosumer realm has exploded, again powered by China
- Stencils eaiser than ever, often with PCBs
- Low cost and open source PnP like the Lumen
- Reflow machines like the T962 (hacked)
- Prosumer things like the Vapor Phase One for increasingly complex
Assembly - Outsource
- Offloading the time burden of assembly
- Cost / complexity of assembly coming down (China)
- No-touch / low-touch assembly
- MacroFab
- CircuitHub
- Eurocircuits
- Aisler
- Quickturn assembly houses (domestic)
Assembly (con't)
- Other contributing factors
- More integration of chipsets make it easier to put down fewer components, sometimes in larger parts like the Octavo SIP.
- Off the shelf modules allows you to pull more complex layouts into simpler designs (ie. CM4)
Testing
- Building out a home lab has never been easier
- The capabilities of low- to mid-grade equipment has risen. You now get "more for your money" in terms of specifications.
- Specialized tools for optimizing processes like the Joulescope
Firmware Engineering
Overview
- Reference Firmware
- Ecosystems
- Build tools / automation
Reference firmware
- A good chunk of the IP still comes from silicon vendors
- Reference designs
- Example code
- Configurator tools
- FAE support
- Libraries from module makers
Ecosystems
- Software frameworks often are morphing into total ecosystems
- It's no longer just a way of writing firmware, it's a way of choosing hardware that maximizes
- An RTOS that acts as an ecosystem
- Zephyr RTOS cross platform support driven by vendors
- Also a range of sensors and other drivers built in
- An Ecosystem that is developing more into an RTOS
- Arduino ecosystem continues to have support from community and industry
- In all cases, choosing an ecosystem is an efficiency boost that allows you to speed up your work and do more with less (people)
Build tools / automation
- CI/CD finally coming to the world of embedded in a larger way
- Potentially allows you to remove more of the testing infrastructure (your first test engineer) by building that in.
- Can be extended with hardware tools working with the design/test loop
- Blue Clover
- Lager Data
https://interrupt.memfault.com/blog/continuous-integration-for-firmware
https://bcdevices.com/
Mechanical Engineering
Overview
- Accessible 3D modeling
- Machines
- Digital fabrication services
Accessible 3D modeling
- Not calling out open source because it's still somewhat limited
- FreeCAD and OpenSCAD exist but aren't at the same level
- Built-in CAM
- Enables working with machines (next page)
- Vendor provided models (STEP files)
- Able to understand if a part will work mechanically without it shipping to you, speeding up processes.
- 3D models delivered to clients look better
Machines
- Affordable machines
- 3D printers, including resin based printers
- Milling machines, routing tables
- Laser cutters
- 2D cutters like vinyl cutters
- On site machines are normally not going to be super high end for a OEDS, but they allow much faster iteration
Digital Fabrication Services
- Better access than in-house machines
- Less maintenance
- Less expert knowledge required
- "Pay for what you use" allows more access to higher-end / better resolution processes
- Wider variety of materials
- 3D printing - Shapeways, Sculpteo, Make.xyz
- Sheet metal - OSHCut, Send Cut S
- Laser cutting - Ponoko
- Generic machining - Hubs, Fictiv
Software Engineering - Device
Overview
- Hardware as code
- Prevalence of Linux systems
Hardware as code
(Code as hardware?)
- Being able to pull additional functions in house
- FPGAs allowing much faster iteration cycles on complex tasks
- Open toolchain (Yosys, nextpnr)
Hardware designers reacting to FPGAs being called software
Also, Software designers calling verilog 'software'
Linux accessibility
- Raspberry Pi or BeagleBone being pulling into a POC
- And having the ability to migrate to prod in some form
- Building out more advanced tooling using things like Buildroot and Yocto (not necessarily easy, but accessible)
- Starting from known images is the time saver
Software Engineering - Frontend / Backend
Overview
- Backend
- Cloud services and scaling
- Easily deployed infrastructure
- Front end
- Low code / No code
- App / Web frameworks
Cloud services and Scaling
- It's possible to stand up significan infrastructure if you want
- AWS
- Azure
- Google Cloud
- There are specialized services dedicated to hosting services for your device deployment
- Golioth
- Vertical hardware platforms
Easily deployed infrastructure
- Standardized and repeatibles ways to launch infrastructure
- Marketplaces of IP so you don't need to
- AWS EC2 Amazon Machine Images (AMI)
- DigitalOcean Marketplace
Low-Code and No-Code Platforms
- Visualizing data and giving your end customer a way to interact with devices has continued to get easier and more polished
- Grafana
- Ubidots
- Datacake
App / Web frameworks
- Speeding up deploying an app POC
- Another version of templating but for a front end
- Doesn't necessarily to be native app (Android/iPhone)
- Browsers on phones can approximate the same functions
Industrial and Brand Design
Overview
- Tools filtering down the chain
- Outsourcing
Tool accessiblity
- Tools moving to monthly costs, so less up front investment
- Even open source tools improving usability
- Parts of functionality built into other tools
- 3D rendering built into things like CAD programs
- Better interoperability
- More interchange formats
- Even if not working on final design, can hand off to a specialist
Outsourcing
- Marketplace systems
- Fiverr
- Upwork
- 99 Designs
Manufacturing Liason
Overview
- PLM tools
PLM Tools
- Tracking changes over the life of the project
- OpenBOM
- Duro
- Tracking parts
- PartsBox.io
- FindChips.com
- No-touch / low-touch assembly
- MacroFab
- CircuitHub
- Eurocircuits
- Aisler
Project Management
Overview
- Workflow tools
Workflow tools / software
- Normally you will be at the mercy of your client
- Interfacing directly can help cut down on tracking, depending on the relationship with your client
- Monday.com, Trello, Jira
- Communication tools for outside entities
- Discord, Slack
Supporting roles
Roles
- Accounting
- Purchasing / Procurement
- Shipping
- HR
- Marketing
- Sales
Workflow tools / software
- Accounting
- Quickbooks Online / Zoho books
- Purchasing / Procurement
- Digikey / Mouser tools
- HR
- Toggl / ManicTime
- Marketing
- Buffer / Wordpress
- Sales
- Shopify / DK Marketplace / Tindie
Thank you, Consulting Forum
If you want to apply to join: https://tinyurl.com/consultant-forum
Thank you!
Twitter: @Chris_Gammell
Mastadon: @Chris_Gammell@choas.social
E-mail: chris@analoglife.co
The One Engineer Dev Shop
By Chris Gammell
The One Engineer Dev Shop
Hackaday Superconference 2022
- 639