HN user

dktoao

315 karma

Embedded control system developer, founder of Ghost Wrench, LLC.

Posts10
Comments94
View on HN
CrankGPT 1 month ago

Some of the bottle style ones claim to go up to 6W, they would also be easier to double or triple up. They are not nearly as nice and efficient as the hub dynamos though

Story time! I Worked with not just a "rockstar" but what I suspect was a "superstar" for about three years at my last gig. It was a small company with about 3-4 developers at any given time and we worked on an embedded Linux product in a moderately safety-critical industry that had a messy ~25 y/o codebase and a custom, roll-your-own Linux distro on custom hardware. Our "superstar" had been with the company for ~10 years and due to really high turnover I was the most senior of the rest of the staff with 3 years. The manager of the software team claimed to have 10+ years of software development experience on his resume and LinkedIn, but would ask CS 101 questions in our software planning meetings.

The basic workflow adopted by our manager was thus:

  1. Discover a bug or get a feature request
  2. Pass the task to the development team verbally
  3. Developers prioritize tasks based on which ones are more likely to be forgotten by management
  4. Approx 20% of tasks get completed
  5. Repeat step 1
You might think, with our superstar developer, a workflow like this would be possible. Honestly, I saw him do things (pre-AI) that were astonishing. He would work a weekend and add a feature I thought would take 2 weeks. He created a re-write of our main product and demoed a completely new product using the same hardware by himself in about 6 months. He would take feature requests not assigned to him and just do them before the assigned developer was even finished planning the feature. The sales team would come in with a pitch for an insane new feature idea (like add a Farsi version of the UI) on Friday, the rest of the team would attempt to push back on it, then he would check-in a semi-working version of that feature on Monday. For these reasons our manager loved him and would always ask the rest of the development team why we couldn't keep up. It was demoralizing and frustrating. At the same time, as a company, we were mostly unable to get very simple changes out the door. Most of the insane features we added died on the vine before getting to the customer (but the code would remain polluting the codebase). Any bug that was fixed would reveal 2 more serious show-stopping bugs. New software releases were regularly regressed: they would break one of our customer's use cases and because we never created basic functionality like OTA updates, we would fly a tech out with a flash drive to revert all the software. We worked on 3-4 new products an not a single one ever saw the light of day. Our company github was littered with dead, abandoned, duplicated repos.

Basically our superstar developer absolutely allowed our non-technical management to commit software development seppuku. His successes were highly visible, but his failures were not:

  1. Clobbering other developer's commits because he didn't know how to use git to rebase or merge changes
  2. Copy pasting (not forking) entire codebases to work on a new feature that then got so bloated they were impossible to merge
  3. Absolutely no documentation of any sort, not even comments.
  4. No automated testing of any sort on any of his code even though there was an effort by the rest of the team to do better testing.
  5. Refusal to use the common Docker development platform everyone else had standardized on, many times his code only worked on his machine.
  6. He wouldn't fix bugs, he would just re-write the core logic of the feature that had the bug and then he wouldn't bother to remove the old logic.
  7. Regular, daily code dumps of 1000-2000 LOC that contained new features that were not discussed by the team, sometimes from casual conversations with a sales person, sometimes completely made up by him out of boredom I guess.
  8. Our Linux BSP was stuck in Amber because the only copy of it was on his local machine (allegedly). When asked many many times by the rest of the team to get it in our company repo he would check in something that did not compile and was not even remotely close to what was being used on our boards.
  9. Instead of adding dependencies where needed he would take a 3rd party library, chop it up and copy-paste it into our code directly (see point 8).
  10. Last but not least just general slop code with 15-20 levels of indentation, no modularity, dirty hacks everywhere.
I think about him a lot when I think about companies going all in on productivity maxxed vibe coded AI. I think that under better management that restricted his impulses and gave him more structure, he could have been a great asset to the company. Unfortunately when let run wild over the company codebase he was an absolute menace and ultimately led to less actual useful work getting done and an erosion of customer trust. I think this might be the reason we are getting two diametrically opposed experiences with AI: it is either going to destroy your codebase or deliver features at an astounding pace, and I think the difference is the actual technical knowledge of who is managing these projects. My guess is that there are a lot of places with middling or non-technical management pushing AI coding that are going to be in struggle city in a year or so and not understand how they got there. "But AI was making us so productive!".

I haven't found it that useful for doing any actual "agentic" coding at $DAYJOB with lots of legacy code it wasn't trained on (because proprietary). I do find it useful for summarizing sections of code that I am working on and asking for snippets that do very specific things. Also, it is pretty good at writing one-off short scripts with easily definable inputs and outputs.

I have come to the conclusion that people using AI for coding need to think about it as basically an automated version of the Docs -> Copy Paste -> Stack Overflow -> Copy Paste -> Compile Error -> Google -> Copy Paste -> New feature request from management -> Random internet blog -> Copy Paste loop that most of us do for a lot of the non-logic heavy portions (e.g. API interfacing) of our work with less randomness and more pattern matching or statistics or whatever guiding the process. Honestly, pretty useful, not knocking it.

I do think there is a killer application for AI, which it is already useful for, and that the industry doesn't really promote. That is basically taking a massive amount of unstructured data on a topic and allowing people an easy way to learn from that data without having to read through all of it (which may not even be possible for a single person in their lifetime). This would be a huge boon to humanity alone given the scale of data we produce. I think fundamentally, LLMs cannot take the data that they are so good at summarizing and use it in a creative way, it looks kinda like they can, because they are so good at "borrowing" other people's creative work, but in real-world scenarios where change is constant and the external forces of today are not understood by a model that was trained 3 months ago, they fall on their faces again and again.

I think AI companies know this but cannot admit that this ground breaking (I would argue) technology might only be transformative for one half of the observe->act workflow that would be necessary to replace humans as workers because.

1. It is possible the economics don't work out without replacing workers 2. If they admitted that the only value of their tech was in distilling value already present in other people's creative work, work that the LLMs cannot create on their own, a sane government might force them to pay for their inputs.

Since everyone else is sharing their experiences with this book here is mine:

Reading this books was a huge turning point for me as someone with diagnosed mild Autism. I think a lot of the things in this books are fairly obvious to non neuro-divergent folks. But for me, it was like a manual on how to handle myself in social situations, a thing that was mysterious and frustrating to me before. I wouldn't say I am now some sort of socialite, but I am far from the days of being being excluded from basically every social group I attempted to be part of.

"Our goal should be to give an LLM coding agent zero degrees of freedom"

Wouldn't that just be called inventing a new language with all the overhead of the languages we already have? Are we getting to the point where getting LLMs to be productive and also write good code is going to require so much overhead and additional procedures and tools that we might as well write the code ourselves. Hmmm...

Ok, I think you are going to need to explain to me why "Overconfidence resulting from ignorance" isn't exactly the same thing as "lacking metacognitive ability to understand one's own skill level". Just worded more simply

Embedded systems engineer with experience developing on bare-metal and embedded Linux platforms. I have developed commercial embedded products from PCB design all the way to market. I have my own lab equipment and am fully ready to start working remotely if the job requires it.

  Location: Denver, CO USA
  Remote: Remote | Hybrid | In Office
  Willing to relocate: No
  Technologies: C/C++, Python, Buildroot, ATTiny, ATMega, STM32
  Résumé/CV: https://drive.google.com/file/d/1G5zuFuMXbzGVIIIhlLNEi5Mg6wDOQOFM/view?usp=sharing
  Email: dkuntz417@gmail.com
  Github: https://github.com/GhostWrench
Thank you for your time!

Interesting. It would be great if they could open source that too. I would love me some fully hackable smartwatch hardware!

Ooof, no hardware schematics? Also missing datasheets? This projects seems like a very tall task to me without these fundamental missing pieces. Will Google release them soon or am I looking the the wrong place?

This is good advice but only it has been followed from the beginning and consistently throughout the development of the original code. It is applicable to large organizations with lots of resources who hire professional developers and have a lot of people who are familiar with the code that are active in code reviews and have some minimum form of documentation / agreement on what the logic flow in the code should look like (the article does not claim otherwise). But I would implore those who work at the 80% of other companies that this advice is nearly useless and YMMV trying to follow it. The one thing that I think is universally good advice is to try and aggressively remove code whenever possible.

`the do {} while (0)` block with breaks does exactly what goto does but it is so much more hacky, less flexible and harder to follow IMHO.

Thank you so much for this analysis, even as a person with layman's grasp on economics you made the deception in host's apparent off the cuff assertion very obvious. I think a big part of the problem that we have in America (and the rest of the world) right now is that it takes these charismatic individuals (All-in, Joe Rogan, etc.) 10 seconds to confidently make these false claims based on personal bias and vibes. Then it takes 10 minutes (or more) by someone with a background in the underlying maths looking at the issue in-depth to rebut. The information landscape is heavily weighted towards these grifters, and I am not sure how we can fix that.

[dead] 2 years ago

What does HN think? Too trival to be useful? I commonly use an exception handling method like this in my projects.

[dead] 2 years ago

A little device I created for dice rolling on the go. Included is everything you need to create your own, PCB design, C software and 3D printed case design.

Hello! I specialize in embedded systems and have 12 years of experience on a wide variety of systems and devices.

  Location: Denver, CO
  Remote: Yes
  Willing to relocate: No
  Technologies: PCB design and layout (KiCad), AVR micro controllers (ATtiny/ATMega), ARM Microcontrollers (STM32), ARM Microprocessors (SAM9), Embedded Linux (Buildroot), C/C++, Python, Matlab
  Résumé/CV: https://drive.google.com/file/d/1tqwy_AIahBebBIwrj5xs2n20trVVsssW/view?usp=sharing
  Email: dkuntz417@gmail.com

I think that by the time we had organized tribes fighting over land we were well into the dominant species / civilization / cooperative resource gathering phase. Thus it isn't really an argument against the main point of the article. So... I'm really confused.

Ok, I'm almost convinced now that I am arguing with a ChatGPT bot. An actual human would know that given the context of the conversation this is a non-sense answer. No shit I can scour the internet for bad takes on any subject, wow, what a revelation!

Yes, that is the process of "civilization" that he is talking about in the article. I'm starting to think that some of these comments are generated by someone typing "Give me a really generic conservative argument against UBI" into ChatGPT.

Food is not just laying around on the ground in most cases

I can go foraging / hunting right now and find food, not enough to live off, but in a time before land ownership and mass population explosions, there would have been enough... Which... is the entire point of the article. So are you arguing for the premise of the article then?