[HN Gopher] The tools and tech I use to run a one-woman hardware...
       ___________________________________________________________________
        
       The tools and tech I use to run a one-woman hardware company
        
       Author : todsacerdoti
       Score  : 394 points
       Date   : 2021-05-18 18:47 UTC (4 hours ago)
        
 (HTM) web link (blog.thea.codes)
 (TXT) w3m dump (blog.thea.codes)
        
       | ModernMech wrote:
       | > I initially started with Makefiles, but it quickly became hard
       | to work with. Makefiles are wonderful, but at a certain level of
       | complexity it makes more sense to move to an actual turing-
       | complete language.
       | 
       | Small nit, Makefiles are Turing complete. This of course does not
       | negate the stated reasons for moving to Ninja -- despite being
       | Turing complete Makefiles _are_ frustrating at a certain level.
        
         | rightbyte wrote:
         | I guess she uses Python to generate Ninja files. If she thought
         | makefiles were unwieldy writing Ninja seems strange.
        
       | ncmncm wrote:
       | All this makes sense, except that programming microcontrollers
       | without C++ leaves you in a world of pain. Most of what one uses
       | C++ for, in that environment, happens at compile time, automating
       | stuff that is bound to go wrong if you keep trying to do it by
       | hand.
       | 
       | So, no virtual functions, no memory allocations, no smart
       | pointers, probably no exceptions. But, templates that earn their
       | keep. The normal experience with C++ done well is no need for
       | debugging. Debugging microcontroller code is a royal pain, so
       | preventing whole orders of possible bugs is worth a lot.
        
       | stelcodes wrote:
       | I absolutely love this web design omg
        
       | transgressions wrote:
       | Interesting post, not a woman though.
       | 
       | Just a man in a frock, see:
       | https://twitter.com/theavalkyrie/status/1124493829510447107
       | 
       | Let's not steal the achievements of real women by pandering to
       | men playing dress-up.
        
       | williesleg wrote:
       | I hate assholes who use their gender or color to push their
       | point.
        
       | syntaxing wrote:
       | I was under the impression most low level firmware is still
       | written in C? Is there a new preferred language? (Rust?)
        
         | sgtnoodle wrote:
         | C and C++ still seem to be prevalent. At least in my
         | experience, rust on a microcontroller is still mostly
         | theoretical. There's plenty of obscure languages, though, both
         | compiled and interpreted / virtual machine based.
         | 
         | For "embedded" linux grade CPUs, rust is starting to gain some
         | practical traction. A few years ago the idea of writing
         | application level glue code in it was still a bit silly, but
         | these days it's starting to actually get linked into production
         | systems. It all seems to be done in a way that's interoperable
         | with existing C/C++ codebases, though.
        
           | backslash_16 wrote:
           | Explaining my experience - I haven't done any hardware or
           | firmware programming besides messing around with Ardunios. I
           | have written a low amount of C (tiny VM for toy language) and
           | a moderate amount of Rust (a couple thousand lines for
           | various projects, mostly console apps that needed to run
           | fast).
           | 
           | It sounds like you have some experience in this and I have
           | been curious for a long time why Rust can't or doesn't run on
           | almost every micro-controller? Is it based on the compiler? I
           | thought that because Rust has no runtime/produces a binary
           | which does not require a runtime that as long as the Rust
           | compiler emits the right backend instructions it should just
           | work?
           | 
           | Adding to my confusing, I think rustc uses LLVM which is a
           | way of separating a language's frontend from the backend code
           | emitted, so I thought any micro-controller supported by LLVM
           | would work for Rust.
        
             | steveklabnik wrote:
             | My day job is writing Rust code for microcontrollers.
             | 
             | What you're saying isn't wrong, it's just that... embedded
             | development is _incredibly_ diverse. LLVM doesn 't support
             | as many platforms as GCC does, and even once LLVM gets
             | support for something, we need to do some work in Rust to
             | get things working; support isn't automatic.
             | 
             | If you get to pick what your hardware is, Rust is
             | fantastic. If you don't get to pick... it's a roll of the
             | dice.
        
         | luma wrote:
         | Not really, C is pretty deeply entrenched in the embedded
         | world. Unless you want to bitbang something like a USB host,
         | you'll be relying on vender libraries, and those libraries are
         | overwhelmingly developed in C. Same is true for pretty much the
         | entire build chain, debug tools, etc.
        
         | tgflynn wrote:
         | Kind of. Rust seems to be becoming quite popular. It has
         | features that allow low-level programming while maintaining as
         | much type safety as possible. There's even talk of using it in
         | the Linux kernel.
         | 
         | EDIT: I'm not sure why you ask that here though. Rust doesn't
         | appear to be mentioned in this post.
        
           | matheist wrote:
           | Not OP, but probably this bit:
           | 
           |  _> I write our firmware using C. While some might gasp at
           | using such an  "old" language, it turns out that the
           | combination of my familiarity with C, the maturity of its
           | resources and tooling, and the low-level nature of writing
           | firmware means that C happens to be a joyful language for me
           | to write firmware in._
           | 
           | Which has the flavor of defending the choice of C as if it
           | weren't the standard choice.
        
             | smackeyacky wrote:
             | Realistically for most micro controllers it's the only
             | choice other than machine code. Basically because it's the
             | only one offered by the manufacturers.
        
       | mc42 wrote:
       | Thea's work is immaculate, and always an interesting read. Her
       | synthesizer modules use FR4 PCBs as the front panels as well, a
       | technique that's pretty popular but executed so well it's
       | beautiful. [1] Even her documentation is made with care; when I
       | have more disposable to spend I'm definitely buying a module.
       | 
       | [1] -
       | https://twitter.com/micktwomey/status/1383527521744867338/ph...
        
       | slhomme wrote:
       | Very inspiring. I'm myself starting a similar journey with my
       | first hardware product (https://getgumball.com) and it's really
       | reassuring that it is possible to do something like this in
       | "solo" mode. We hear a tone of people doing it in the SaaS work,
       | but not so much in hardware - if anybody here knows other similar
       | examples, I'd love to hear about it!
        
         | amenghra wrote:
         | Noice. If I were still working in an office, I would 100% get
         | one!
        
         | nudgeee wrote:
         | Nice one, and congrats on the product!
         | 
         | I've shipped out the first few units of my solo project a
         | couple of weeks ago (a super niche tool for DJ's):
         | 
         | https://cardinia.net/mini/
         | 
         | Feels good to follow through from a hobby project to an actual
         | shipping product. Its been fun re-igniting all the things
         | learnt during electronic engineering classes back in
         | university.
         | 
         | What is a fun contrast is that by day i'm a web/mobile software
         | engineer, where memory and disk is large and plentiful, and by
         | night i work on cramming a TCP/IP stack, USB stack and audio
         | decoding threads into 80KiB of RAM :)
         | 
         | Currently busy ramping up production of a small batch of units
         | and adding checkout to the website.
        
         | zdw wrote:
         | Looks cool!
         | 
         | FYI, the About/FAQ/Pre-Order links at the top of your site are
         | currently broken.
        
           | slhomme wrote:
           | Oh thanks! Yes, this website is still very much a work in
           | progress I do it the "#buildinbuplic" way, so some content on
           | the website still needs to be created / improved.
        
       | goatcode wrote:
       | Hats off to this lady for running a one-person tech company.
       | Doing all the tech stuff would be easy, but handling bookkeeping,
       | taxes, supplies, logistics, vendor relationships, sales, customer
       | relations, everything... I'd actually die. Loads of energy!
        
       | deltaeerie wrote:
       | Winterbloom's documentation is also truly amazing. So much
       | polish. E.g. https://gemini.wntr.dev/
        
       | walshemj wrote:
       | Realy nice link - I have just put together a korg nts1 kit
       | monphonic synth.
       | 
       | I remember looing at the early acorn computers that where in
       | eurorack modules - this is the one before the Acorn Atom
        
       | codazoda wrote:
       | I find her use of the words "me" and "our" refreshing. I've
       | created a bunch of mostly unsuccessful businesses(1) and haven't
       | really resolved this language for myself. Here are a couple
       | quotes from the first paragraph...
       | 
       | > exactly one engineer - me
       | 
       | followed by
       | 
       | > our current tech stack
       | 
       | This is something I struggle with when I'm writing about my own
       | business or product. Sometimes "our" feels like the right thing
       | to say but I know it's really just "me". She seems to have
       | resolved this herself and uses "our" when speaking about the
       | company, the technology, company philosophy, etc. It's kind of
       | refreshing and she might have just helped me decide it's okay to
       | say "our" as a solo maker.
       | 
       | 1: https://joeldare.com/how-to-lose-money-with-25-years-of-
       | fail...
        
         | GuB-42 wrote:
         | As I said in a downvoted post, I disagree. The post is a
         | technical writing with an emphasis on setting up an environment
         | for a single person.
         | 
         | For a technical writing, I would treat it like code, use the
         | most accurate word possible, and here it is "me".
         | 
         | Even more confusing since by looking at the company website,
         | there is more than one person involved. For example "When we
         | use a third-party library, we pull its source directly into the
         | firmware's source tree" implies that someone else has access to
         | the repository when it doesn't seem to be the case.
        
         | anotherevan wrote:
         | Although she is the only engineer, I'm assuming she is not the
         | only person in the company, so the use of "our" might be a
         | reference to the tech stack "used by the company" in that
         | context.
        
           | lvh wrote:
           | Correct: there's one other person, a production assistant,
           | and two cats. [0]
           | 
           | [0]: https://winterbloom.com/about
        
             | a1369209993 wrote:
             | > there's one other person, a production assistant, and two
             | cats.
             | 
             | A bit pedandic, but since we're talking about grammar
             | anyway, that should probably be:
             | 
             | > there's one other person (a production assistant), and
             | two cats.
             | 
             | As written, it sounds like the production assistant is
             | separate from the person.
        
         | zinckiwi wrote:
         | The royal we serves an excellent purpose. A rule of thumb could
         | be: imagine you hired an employee. What would stay "we" and
         | what would stay "me"? In the former case, the fact that you are
         | solo is an implementation detail and should be abstracted from
         | your audience.
        
         | ramshanker wrote:
         | Our is the two together : Speaker/Writer + Reader/Audience.
         | When I am writing something with the mindset of explaining it
         | to others, even code comments, ours feels more natural to me.
         | Imaging a person sitting across the table, and we are
         | demonstrating something. So instead of saying, "Now I am going
         | to turn this nob", it feels more natural to me to say "Now We
         | are going to turn this nob".
        
         | valbaca wrote:
         | I agree. I think one thing that helps is what would change if
         | another person joined.
         | 
         | Who started the company? Well, that would still be you and will
         | never change, so use "me".
         | 
         | Who owns the tech stack? Right now it's "me" but after another
         | hire it would be *us*.
        
       | ChrisMarshallNY wrote:
       | Thanks for sharing that!
       | 
       | I love this: https://winterbloom.com/about
       | 
       | My HR department is twice the size of hers.
       | 
       | I too, am a one-person (gender difference) company, and there's a
       | _ton_ of stuff I do that would not work with a team.
        
       | steve_adams_86 wrote:
       | Without knowing much about the hardware scene, this was
       | incredibly easy to follow, informative, and generally really
       | interesting. This is a cool overview.
       | 
       | Also very impressive. What an undertaking. I can see why someone
       | like this would succeed - she seems exceptionally organized,
       | knowledgeable, and competent.
       | 
       | I have dreams of getting into hardware sometimes, then people
       | like this really temper that thought. I don't have anywhere near
       | the chops and brain power to pull something like this off.
        
       | kingsuper20 wrote:
       | Without looking at any pictures or researching, I have a strong
       | feeling that this is a dude.
        
       | xupybd wrote:
       | Interesting writing style. I like the switching between I and we,
       | it reenforces that this is a company of one.
        
         | shrimpx wrote:
         | It's similar to academic writing in single author papers.
         | Generally you'd use "we" but specify "I" in cases where you're
         | emphasizing a personal choice. Also, "we" is often broad enough
         | to include the reader, too.
        
         | canadianfella wrote:
         | I don't like that at all. "We" means more than one.
        
         | bambax wrote:
         | I was wondering about this. Is it a company of, like, two
         | people, where she's the engineer and there's someone else doing
         | other stuff like marketing? Or is she alone, and if yes, why
         | the plural?
         | 
         | Amazing project and superb writing in any case.
        
           | slx26 wrote:
           | https://winterbloom.com/about
        
         | milesvp wrote:
         | As someone who's been thrust into the embedded world for the
         | last couple years, I have to say that her posts are a breath of
         | fresh air. Her other articles are well worth the time if you're
         | interested in the topic.
        
       | swyx wrote:
       | ah the solo dev tech stack! a very popular category, but this is
       | the first one that is hardware focused.
       | 
       | software ones i have collected:
       | 
       | - https://draculatheme.com/pro/journey
       | 
       | - https://www.indiehackers.com/post/launched-my-first-course-e...
       | 
       | - https://panelbear.com/blog/tech-stack/
       | 
       | - https://jake.nyc/words/tools-and-services-i-use-to-run-my-sa...
       | 
       | - https://www.listennotes.com/blog/the-boring-technology-behin...
       | 
       | - https://anthonynsimon.com/blog/one-man-saas-architecture/
       | 
       | - https://news.ycombinator.com/item?id=25614966
        
         | purerandomness wrote:
         | Jen built https://lunchmoney.app (a budgeting and personal
         | finances tracking app with a great UX) all by herself.
         | 
         | https://lunchmoney.app/about
        
         | herodoturtle wrote:
         | Fellow solo SaaS owner here.
         | 
         | I'm only part way through reading all of your linked articles,
         | and so far they're absolutely great!
         | 
         | Just wanted to say thanks for collecting and sharing.
        
           | swyx wrote:
           | haha thanks. i collect it for my paid community
           | #shamelessplug https://codingcareer.circle.so/c/creators-
           | mastermind a small group of fellow creators and indiehackers
           | here. i started with an infoproduct myself (made $120k so
           | far, def recommend it to everyone before tackling your own
           | SaaS), looking to work my way up to saas someday but am being
           | patient with it.
        
       | GuB-42 wrote:
       | I am a bit confused about the writing. Sometime it is "I",
       | sometimes it is "we".
       | 
       | Does it means there are other people involved? Contractors maybe.
       | 
       | Edit:
       | 
       | Answered my own question. Design is indeed a one-woman job, but
       | helped by one other woman (and two cats) for production.
       | 
       | And looking at the downvotes, it looks I was the only one
       | confused. I was wondering about it for the repository aspect.
       | Working alone is an entirely different experience compared to
       | having even a single other person on the same codebase.
        
       ___________________________________________________________________
       (page generated 2021-05-18 23:00 UTC)