I'm a software engineer but am very curious to learn about the process of designing and manufacturing a "physical" thing. What would be a good roadmap for someone who dreams about building a factory?
Walk every aisle of your local Best Buy or MicroCenter. Do a mental calculation of how would this hardware product be 10x better with (present day’s) latest software trend.
Eg can I make this blender 10x better by bolting it to an LLM? Can I make this coffee machine 10x better by adding on a coffee+distilled water+third wave salt subscription? Can I make this network router 10x better shipping it with an invisible-to-normies tailscale + Speedify + 5G SIM card for ultra low latency, highly reliable zoom calls from the middle of nowhere using fast open and MPTCP?
Why 10x? Because if it’s not a 10x better experience the switching costs (aka “activation energy”) will be too high to gain market traction before you run out of funding and die.
Stack rank your items by categories such as “will this increase usage from once every 9 months to 9 times a day (ie smoke detector to co2 environmental sensor)”. “Does this have have a viral k factor that the original didn’t (access control for package delivery in door locks)”. “Does this unlock a recurring revenue stream that previously wasn’t there?” (smart decoding of video feed events). Etc.
Narrow your list down from 220 to 5. Build some prototypes. Test your market amongst fellow founders. Find the one niche vertical that has surprising utility and becomes a runaway success which exceeds your ability to fabricate in your living room using arduinos and off the shelf parts until you’ve exhausted Best Buy, Amazon, Spark Fun, and Adafruit’s supply of said item and you need to make your own version.
Get partnered up with a second rate design firm in one of the flyover states that has weird connections for manufacturing in this space from a random guy you met a JS conference three years earlier that cold calls you. Launch a successful crowd funding campaign. Raise funding. Fly to China to meet some contract manufacturers.
Pick the wrong contract manufacturer based on your own inexperience and your design firm’s prior relationship. Have things go terribly wrong because one didn’t use glass reinforced abs instead of regular abs because injection molded tools are expensive and a lot of tooling adjustments boil down to “guess and check”.
Move to China. But like not the cool part like Shenzhen or Shanghai - like a semi-obscure part - like Yiwu. Have way too many hot pots over Mao Tai trying to find a T2 vendor that knows how to injection mold helical gears. Learn some gutter slang from an obscure dialect of Chinese like Gan. Fire half a dozen T2’s. Hire five more. Fire three more. Refine it down to one final T2 that’s giving you problems. Eg try to find a paint vendor that can match the white on your injection molded part to the white on your metal part.
Nope out of the first paint vendor who can actually do this because of sketchy work conditions like a half naked infant running around the factory floor wearing 开裆裤.
Almost rage quit.
Question why you’re pirating grad school text books on material science from Turkish warez sites instead of taking that aqui-hire to AirBnB when they were like 12 people. Make a futile effort to give out safety equipment to T2’s regarding hearing and eye protection because you begin to question how everything is done in this country.
Nearly burn out again.
Begin to see the light. Parts fit. Production is scaling. Find a critical flaw. Fail.
Then do it all again until you succeed or run out of money.
At the beginning: spend more time/money finding a market-product fit that affords you a high 3 low 4 figure or so manufacturing budget for "aerospace grade" CNC construction. Local vendors, established quality control practices, etc.
Of course eventually your product will get knocked off, which is it's own kind of issue.
Get an apprenticeship at a local machine shop. Work insane hours doing manual repetitive labor. Get injured and pressured by your employer not to file workman's comp. Cope with medications, prescribed and otherwise. Join a union (if your employer allows one to exist). Continue working and wondering what life would be like outside of manufacturing.
Join a local makerspace and learn tech like machining, PCB's, printing (3D, vinyl, etc.) through classes they offer. Learning by doing (and especially making mistakes) has no real substitute.
Alternatively, you could get yourself a "classical" engineering degree in Mechanical, Materials, or Electrical. Wouldn't expect it take you less than 3 years full time even if you're fresh out of school with a B.S. in C.S., but mine's been valuable.
Message me if you want to help me build out my factory. Are you in the US?
I don't know whether this'd be possible for you and your situation, but have you considered trying to start one?
Try to find other people who might be interested, and get some of the basic equipment a makerspace would have... and then work on some projects with the other people. If you can't afford the some equipment, perhaps ask some local businesses etc to sponsor the makerspace.
I'm a machinist who got a CS degree in large part because I am also passionate about manufacturing in the US. Perhaps we should chat. I think my email address is in my profile here.
I enjoyed MIT's Fundamentals of Manufacturing course, on edx [0]. The team talk about casting, injection molding, 3D printing, and a couple of other ways.
Great suggestion, MIT also has a deep-dive into Additive Manufacturing, which are all different miniature factories. https://learn-xpro.mit.edu/additive-manufacturing. 3D printing really helped me make the leap from virtual --> physical products.
It depend on your goal. To learn commercial manufacturing requires a different path than how to DIY something. It’s common to conflate the two, but they are very, very different worlds.
I worked for Autodesk making the most used design software in the world for a dozen years, but didn’t understand design in the context of the manufacturing business until later joining a medium sized US PCB fabricator with a vertically integrated software stack — from the layout software to the drill machines and everything between.
There are a surprising number of comments here suggesting starting with playing with or working on ERP software. That is a great way to crush any sense of joy or curiosity you may have about the idea of manufacturing.
Start by physically building something, then layer in processes to be able to build things repeatedly, and then finally layer in ERP software to manage those processes.
On physically building something, if you’re starting from software knowledge, one way to go is to tinker with a microcontroller project using development boards and then spin your own board using KiCAD and design an enclosure with FreeCAD. Just navigating the process of sourcing parts and managing fabrication at hobby scale will let you start to build context and understand tradeoffs.
Please use commercial CAD to design stuff - FreeCAD as you first CAD will tend to do to your love of CAD what ERP will do to your love of manufacturing.
(CAD is one of the areas where the open source revolution has not yet happened. Martyring ourselves on the cause of FreeCAD won't help that happen, unless we're also prepared to dive into its code base, which is unfortunately chaotic and stagnant)
Some better options:
1) OnShape has a free offering for hobbyists. It's a solid parametric modelling engine excellent for mechanical designs. It also has acceptable freeform modeling capabilities. The free version is good for open source and learning, but all your designs are public. The paid version is somewhat hefty at $1500/yr, and is required for commercial projects and private designs.
2) Rhino3D has a free 90 day trial, and a comparatively low price ($1000, one time). While it's clunky for traditional parametric mechanical design, it has freeform surface modelling capabilities that make it great for styled product designs, and can compete with much more expensive surfacing software like Autodesk Alias. For simple enclosures it's fine. It also has the Grasshopper graphical programming system, which let's you create beautiful algorithmically generated designs which are useful for artistic work, product customization, and modern architectural designs. Finally, the ShapeDiver service lets you use Rhino/Grasshopper designs for mass customization products online, where the customer can change the parameters that generate the product, and preview the design in real-time.
Disclosure: I own a product design firm built on top of plain old Rhino. I don't use onshape, grashopper, or shapediver in my business operations, but would if I had a business need. I'm not affiliated with these companies.
That is fair and probably the right approach for mechanical CAD. For schematic and layout, KiCAD actually has become a joy to use over the last few releases. There are certainly still some weirdnesses and quality of life issues against something like Altium, but the team seems to be rapidly closing the usability gap.
I agree about KiCAD for schematics and physical layout.
I get the sense this is because altium designer and Autodesk eagle have inexplicably awful UX that's basically stuck in the 80s, and they haven't really improved in what feels like 20 years. But during that time, KiCAD has been making slow but diligent progress towards feature parity.
That makes KiCAD a victory for open source CAD. I hadn't realized that! That gives me hope for other kinds of CAD!
When I say OSS CAD has not had its day, I should now specify that I mean mechanical CAD, NURBS surfacing, and BIM.
My theory is those have evolved so much in the last 20 years, in ways that required such heavy investment, that the OSS community has not been able to catch up.
Thanks for your remark! Much love and support for the KiCAD community!
I support this question - I work at IKEA as a software engineering leader, but I'm always curious about many things so last year I visited one of our factories in Poland when I was there on holiday, just to see it.
Glad I did, as not only can I do the software leadership part - I've now seen end-to-end some of our processes as I've also done some time of the shop floor, and I've been to our prototype labs - so now I can also talk 'the business'.
I have a pretty good understanding of how we develop, build, more and sell products - so for me KALLAX isn't just a product name and data but a real thing.
I’m a dev team lead for company that implements ERPs (specifically Odoo) across a bunch of different industries. By virtue of that, I’ve managed to wrap my head around a lot manufacturing processes and associated workflows (replenishment, raw material procurement and forecasting). Before this, I couldn’t tell you a thing about manufacturing processes!
If you’re so inclined, spin up an instance of Odoo CE or have a play with the Manufacturing module on a build at runbot.odoo.com
Overall, designing physical things, building working prototypes of novel stuff, and designing factories for large scale production are each an extremely vast domain, at least as large as the whole of computer science and software engineering. They cover literally thousands of specialized disciplines and skills.
Typically, people specialize in some facets of the above. And even seemingly simple products usually require teams of specialists with complementary skills to implement them starting from scratch.
For some mainstream products which are well understood and are much discussed, it may be possible to take an existing open-source design, modify it, and then outsource actual fabrication to a contract fabricator. As a concrete example, one can take a complete design of a small quad-copter [1], learn as much as one wishes about its real time firmware, about control theory and flight dynamics, about electronic circuits, motors and propellers, radio protocols and technology, etc, and get a taste of what it takes to replicate such a product.
A completely different scenario is to focus on one relatively narrow technique which can be mastered in a reasonable time. For example, in this video [2], a legendary software developer makes in his garage a form for injection molding a plastic spoon. So one can do the same. Buy a small machine tool, and using on-line tutorials and help from strangers on-line,learn how to use it. After several years of tinkering it is possible to develop considerable skill without being a full time professional.
Having worked at various manufacturing companies (telecomms, industrial automation, oil, IoT) over many decades, I'd suggest go work for a company that software is part of a bigger system. There's quite a lot that goes into it. The designing/engineering part is just a part of the overall business. So I'd look at the bigger system/process. There's a number of ideas on how to run a manufacturing process, continuous flow, minimizing stock, contracting out parts, what happens after sales, end of life, etc. Consumer products are very different from industrial / specialist products.
I have worked at such a place as well and would strongly recommend this. If it works out right, you can remain in software and do adjacent jobs to manufacturing. I suspect industrial / specialist products would be the better side to get in on, at least at first.
Open up the Library Genesis and build a course in manufacturing and automation, and start a manufacturing services consultancy.
There are many topics to cover, including:
CAD design / Mechanical design / Product design
Strength of materials / Finite Element methods
Measurements / Geometric Tolerances
Reverse Engineering / CMM / Photogrammetry
Additive and Subtractive CAM methods
Marketing / Sales / Contract optimization
Logistics / Supply Chain management
Industrial regulations and compliance
Project management and stakeholder communications
Online commerce / Mass customized goods
And so on.
It's a lot of stuff, and you'll probably have to learn based on individual project needs
You'll also need to build a network of resources you can draw on to reduce project risks stemming from your own lack of experience, meaning you will need a focus on communication, and management.
You would not be blamed if you felt a need to go back to school for some of this. However, the school of contracting is also rather effective, assuming you are an autodidact and can surround yourself with the resources you need to ensure project success.
I want to know because this is the approach I took, and I genuinely hope that sharing it can benefit others. Yet I sense my suggestion may not be as helpful as I'd like it to be, and welcome ideas and improvements.
My guesses as to potential causes:
1) I suggest committing crimes to get learning materials
2) I suggest very hard work / very difficult topics, right out of the gate, instead of hobby grade projects
3) self teaching this stuff might be an iffy prospect
4) self teaching /while winning and executing contracts/ could require a decade of pre-existing manufacturing experience
5) I didn't lead with ERPs
Yes, I am being somewhat snarky. However I genuinely welcome insight here. I want to become a better mentor for people like myself, and potentially OP, who are blazing the hard trail of non-standard careers in manufacturing.
Take apart old junk, especially machines and electronics. See how parts fit together and what types of problems different parts solve (gears, latches, springs, molded plastic, wiring, PCBs, etc)
Had brilliant hardware idea 5 years back. It needed minimum 20 million to get off the ground. Myself I had max 1 million and could not find rest without getting into horrible deals.
By hand because you need to embrace the work of making things.
Because designing and manufacturing things requires much much more work than making it by hand. That's the paradox. Yes at some statistical scale manufacturing becomes more efficient per item but not in terms of raw input of human capital.
So stop making excuses. Stop pretending that thinking about making things is more important than actually making things and failing. A badly made thing is better than the perfect imagined thing.
Looking up the etymology of the word "manufacture", it's from Italian/French/Latin words for "made by hand", weirdly enough (at least, according to my lazy googling.)
I say "weirdly enough" because you contrast the difficulty of manufacturing vs. making things by hand. Originally, they were the same thing, apparently (and maybe too obviously, as everything was "made by hand" in antiquity, but I found it interesting, from a kind of "word nerd" perspective)
I think the industrial revolution changed the word's use by changing the context in which ordinary speakers ordinarily use it.
In this specific case, the OP mentions factories...and that's another word that doesn't mean what it once did when "factor" was a common term for an occupational category.
"Fabricate" is another interesting term that might be useful in this context as it suggests a mechanized workshop..."workshop" seems to fall into this space too. To me it seems scale is much of the difference between factory and workshop. That scale is probably industrial.
I think the biggest hump to get over for software engineers is that the physical world doesn't have the same kind of abstractions because of the inconvenient realities of real materials. Software engineers have the luxury of playing around in purely constructed environments where a lot of the complexity is accidental complexity (like CSS frameworks or how email delivery is a mess due to long legacy) but there's some pure abstraction lurking around in the background crowded by our imperfections as a species. A lot of software engineers pride themselves on the ability to glean out that hidden, pure abstraction.
You get smacked in the face over and over again moving into physical that the real world just doesn't work that way. You can take something as simple as a flat sheet of metal and there's a half dozen different processes to make it (hot roll, cold roll, cast, milled etc.) that each have different properties but there's nothing abstract underlying it.
Here's what I suggest you go: Buy two big totes and then go to a second hand store and buy an arrangement of the most random items ever (eg: a clock radio, a fork, a teapot, a book, a tv, a sweater etc). Break each item down into constituent components and put them all in Tote A.
Pick something random from Tote A that you're curious about and the hard bit is actually finding the noun of what the manufacturing process is (ie: injection moulding, Surface Mount Pick & Place etc.) to have made that thing.
The thing I really like after that is to go to youtube and find companies trying to sell machines/services using youtube as sales collateral (random example: https://www.youtube.com/watch?v=9uet6TNtUXI). They're talking about their process in the terms the customer cares about and it helps you get into the mindset of the customer about what's important in this manufacturing process.
Eventually, as stuff moves from Tote A to Tote B, get a 3rd Tote and move stuff to Tote C when you understand the upstream process as well. If you do this often enough, eventually you start seeing a "grammar" of the physical world. You can look at a thing and understand how it was probably built and why certain choices were made to accomodate the realities that not every single manufacturing process is as easy to pull off (vs in software, you delete one library and replace it with another and you don't really think about it) and you just need to know these things to make anything.
You can specialize down at any point in this process and inevitably will but I think the fascinating thing about starting general is that you eventually just start doing a mental teardown of any engineered product you encounter in the world and builds into a lifelong practice. You instantly spot the others who share the practice via all their little tells in the world and you find a secret club of people where membership is via geeking out about physical design.
Great question! A lot of absolute shite in the comments here. If you dream about building a factory then here's my thoughts:
Read
- Read "Faster, Better, Cheaper in the History of Manufacturing" by Christoph Roser - it's an expensive book but gives a great overview of how we got to where we are in manufacturing. From stone tools through bronze casting, Venetian shipbuilders, Josiah Wedgwood, the Portsmouth Block Mill [0] and so on.
- Simon Winchester's "Precision" is a great book too - more concentrated on the emergence of machine tools which will be your BREAD AND BUTTER in a factory.
Steam engines are irrelevant to you but the tools they drove - the lathe, shaper, milling machine are still pretty much exactly the same. Big difference is instead of a man operating them they are CNC.
To know how to make stuff, you need to be able to look at anything and have a rough idea how it's made. What materials, what processes, and then you can figure out why it's done that way. You won't find a piece of solid wood wider than about 3" at Ikea. Why? Because wider wood is massively more expensive than narrow wood.
- Materials: metals, plastics. Wood and glass are a bit niche really.
- Essential machines: the bandsaw, angle grinder, drill press, the lathe, milling machine, angle grinder, tube bender, sheet metal brake.
- Joining metal: Welding, riveting, rivnuts, taps and dies.
- Casting and foundry work, blacksmithing (surprisingly accessible)
I'd say woodworking is a terrible entry into manufacturing. I went that way because it's useful for renovations. But working the wood is a craft, and I wish I'd started with fabrication and machining.
Likewise, very little is 3D printed at scale. It's great for prototyping and looking at things - that's about it. People will argue, but go to any big-box retailer and try to find something that's been 3D printed...
Electronics: You can now build a massive amount of useful consumer electronics without needing to design PCBs. I've built central heating thermostats, wifi-controlled extractor fans, infrared break beams etc. ESP32, ESP8266 platforms are great for playing with. ESPHome is software that makes programming these devices really easy: here's an example of what you can make https://esphome.io/guides/diy - they have a list of devices they support, that's basically a list of industry standard electronics building blocks for you: https://esphome.io/index.html#sensor-components . You'll quickly realise that a lot of electronics is just the same stuff.
I'm out of time so I'm just going to throw references your way:
Walk every aisle of your local Best Buy or MicroCenter. Do a mental calculation of how would this hardware product be 10x better with (present day’s) latest software trend.
Eg can I make this blender 10x better by bolting it to an LLM? Can I make this coffee machine 10x better by adding on a coffee+distilled water+third wave salt subscription? Can I make this network router 10x better shipping it with an invisible-to-normies tailscale + Speedify + 5G SIM card for ultra low latency, highly reliable zoom calls from the middle of nowhere using fast open and MPTCP?
Why 10x? Because if it’s not a 10x better experience the switching costs (aka “activation energy”) will be too high to gain market traction before you run out of funding and die.
Stack rank your items by categories such as “will this increase usage from once every 9 months to 9 times a day (ie smoke detector to co2 environmental sensor)”. “Does this have have a viral k factor that the original didn’t (access control for package delivery in door locks)”. “Does this unlock a recurring revenue stream that previously wasn’t there?” (smart decoding of video feed events). Etc.
Narrow your list down from 220 to 5. Build some prototypes. Test your market amongst fellow founders. Find the one niche vertical that has surprising utility and becomes a runaway success which exceeds your ability to fabricate in your living room using arduinos and off the shelf parts until you’ve exhausted Best Buy, Amazon, Spark Fun, and Adafruit’s supply of said item and you need to make your own version.
Get partnered up with a second rate design firm in one of the flyover states that has weird connections for manufacturing in this space from a random guy you met a JS conference three years earlier that cold calls you. Launch a successful crowd funding campaign. Raise funding. Fly to China to meet some contract manufacturers.
Pick the wrong contract manufacturer based on your own inexperience and your design firm’s prior relationship. Have things go terribly wrong because one didn’t use glass reinforced abs instead of regular abs because injection molded tools are expensive and a lot of tooling adjustments boil down to “guess and check”.
Move to China. But like not the cool part like Shenzhen or Shanghai - like a semi-obscure part - like Yiwu. Have way too many hot pots over Mao Tai trying to find a T2 vendor that knows how to injection mold helical gears. Learn some gutter slang from an obscure dialect of Chinese like Gan. Fire half a dozen T2’s. Hire five more. Fire three more. Refine it down to one final T2 that’s giving you problems. Eg try to find a paint vendor that can match the white on your injection molded part to the white on your metal part.
Nope out of the first paint vendor who can actually do this because of sketchy work conditions like a half naked infant running around the factory floor wearing 开裆裤.
Almost rage quit.
Question why you’re pirating grad school text books on material science from Turkish warez sites instead of taking that aqui-hire to AirBnB when they were like 12 people. Make a futile effort to give out safety equipment to T2’s regarding hearing and eye protection because you begin to question how everything is done in this country.
Nearly burn out again.
Begin to see the light. Parts fit. Production is scaling. Find a critical flaw. Fail.
Then do it all again until you succeed or run out of money.