AI Assisted Development FTW #30
Michael-A-Kuykendall
started this conversation in
General
Replies: 2 comments 2 replies
-
development? sure AI sucks at writing a README, it will never be good at it
only an AI would point that out as a feature, the operating system is the one doing the auto-allocation, not you oh yeah, on that note:
if you are the one doing the auto-allocation, and not letting the OS do it for you (by providing 0 as the port), it speaks volumes on how unbelievably bad the code must be |
Beta Was this translation helpful? Give feedback.
2 replies
This comment was marked as off-topic.
This comment was marked as off-topic.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
My Engineering Manifesto by Mike Kuykendall
NOTE: this was hand pecked by a bad typist-- you are in for a rough ride
I am a 20 year web developer and software engineer; the latter came only in the last few years of my career and primarily in my off resume work doing private contracts.
Throughout my career I was constantly caught with the "Are you an engineer or are you a developer?" argument, either scrutiny during a application process, or when trying to decide directions about employment in my early career. There was this nest of different generations of languages all of them working differently in different ways and then there were some available jobs to those of us like me who didn't have the ability to get to college financially.
My life is a pretty open book I was a Staff Sergeant in the United States Air Force for 5 1/2 years. This was during the 9/11 era so I was deployed all all around the world quite a bit during that time. I had joined to get the Montgomery GI bill JUST to be able to go to college, But 9/11 happened while I was still in before I had started my schooling. So getting through my two year degree while getting Airman Leadership School nominations to become a non commissioned officer as well as maintaining a day shift supervisor status of my shop in the United States Air Force working 12 (often 18) hour shifts.
When I got out I started with an associates degree in Computer studies and Pluckiness. I got into IT work, I started learning code. I immediately moved into web development as fast as I could get myself there, and often I would just get jobs by saying, "Look I can learn that, AND get there faster, AND I'll take 10% less than the other guy to do it" just to get the experience.
After a while I had a lot of experience.
My ethos throughout my career was basically bring me your garbage.
By sifting through the garbage that nobody wanted at every new firm or opportunity, I was able to learn rapidly compared to my peers. I would ask new employers to give me their worst and most dastardly long standing problems first, because that's the best way to judge a company and their technical acumen.
For twenty years I did this moving through the LAMP stack; Wordpress; Drupal; and occasional small C++ side gig, a couple of Perl gigs; Heck and some long forgotten resumed work that I deleted long ago I did some flash work in action script! So I pretty much did whatever was there and I worked for anything and for anybody. I did machine learning for schools to predict server usage I did Coca Cola ads I designed a testing regimen for the US Navy. I was one of the primary architects of the OPM 2.0 redesign as well as numerous side contracts due to my public trust clearance.
I say all that to tell you guys how I got here
After twenty years of slogging through all of the worst messes from the smallest startups and one off shops to the largest corporations in America I learned to be code agnostic. After a while I didn't really care about the syntax I understood the logic structures and I understood the large scale data needs and I understood type safety and how to handle the memory and how to properly cache and all the really key concepts that make you good at real software engineering.
So while being a "fake" developer and not having real engineering skills according to the world, I picked up most of the primary skills an effective software engineer would need. This has led me to build large teams and work successfully from public to private sector.
When the AI revolution hit I avoided it for as long as I could But once I dived in I immediately saw that this was the next generation of computing, and that everybody was basically misunderstanding where we were at. This is exactly like when Google took over the web and we had one place we could search or before that when everybody had slide rules and now there's calculators; a lot of people had to lose some soft skills, but they gained a lot of time because we mechanized something that used to be stupid and dumb labor.
Like for instance slogging through syntax.
For anyone saying AI assisted development is not engineering I would ask you are you working in pure binary or assembly language? Because if you are not you're already building on top of something that was built to make you do it more easily. If you're one of those AI assisted developer haters then you have to understand that the assembly guys that look at that would be disgusted, and the COBOL devs are forking their fingers at you in the Witch's sign of evil.
I just wanted to explain in advance my engineering methodology and how it came to be.
Once I got into AI assisted development I immediately saw that the testing that I used for my code was no longer going to be working and I became immediately embroiled in creating better tools and mechanisms to work in this space and that was what led me to shimmy.
I created a property based testing regimen that has a dumb name the invariant PPT system invariant and property based systems used together. Here is the link for that document to consume in repo; docs/ppt-invariant-testing.md
That is my testing ethos during initial runs; use Github Spec Kit and work exclusively backwards from strict specifications whenever possible.
During the course of this process I figured out I'm the worst typist on the planet Earth as you can probably tell I'm going to leave this little chunk straight up to prove my humanity here normally I try to edit everything with AI because I suck a typing and here's a fun bit when using a mic I have a little bit of a speech impediment that causes a lot of words to screw up. So I get a double whammy I don't have any good way to get my points across at the speed of my mind.
Not until AI came along!
Now here's the interesting part that's probably going to blow all your minds; Before going from zero to nearly 1000 stars on Github in less than 10 days...
### I HAD NEVER WRITTEN ONE LINEW OF RUST CODE.
That's right, I said it, And to be honest, it's easily proved if I hadn't from my public LinkedIn to me public Github repos.
I always admired Rust from afar but before this AI assisted development revolution I've never touched it, because every time I thought about it it was "Nope it's too dense, I would never get anybody to support it, I would be the only one and way over my head, I would never be able to find help."
But if you take a second and look at it Rust it has everything that you want in a programming language especially when you're working in an AI assisted development environment; it gives you low-level performance and memory control like C/C++ while guaranteeing memory safety and fearless concurrency without a garbage collector.
Once I did get into AI assisted development I asked them all, "Hey why isn'tanybody working in Rust?" and they said public doesn't have real tooling for LLM, and there's not a big ecosystem, because it's so hard to use; and I'm thinking why? Because the AI is now the agency handling the syntax (like the abacus < calculator < graphiong caculator < math coporvessor) I no longer have to fumble my way through dumbass small scale issues I can think of large scale architecting issues and leave it to a very careful regiment of engineering and testing.
Using Specification Driven Development specifically has been a lifesaver for me when I got into the deeper end of very complex projects that are still underway. One that I'm kind of hinting at here will be an LLM tool chain that I'm working on for the Rust environment it will be launched before any of the road map features for shimmy, because it will be providing the backbone for some of the things that I'm going to be doing going forward and that's all I'll say right now just consider that a little tickle.
For those who will immediately throw rocks I'm sure everyone who looks at my code or anyone who looks at code nowadays can immediately pick up signs of AI assisted development, it's not hard; you'll see the emojis or the use of the emdash —or just the language, To anyone who is looking for this and caring, JUDGING, they've already seen that I'm using AI assisted development.
But the thing is I'm looking at all your projects too and I see you guys doing it as well. I read your readmes. I see those walls of text.
Consider this my engineering manifesto to say I'm not ashamed of it; a matter of fact I'm proud of it.
This is the best way to proceed; I am now really truly language agnostic I can work in anything, anywhere, because I have good engineering methodologies, and good logic, and a history of good projects and bad to base my decision making on. A 1000 times during the formation of All My Stuff especially Shimmy I have determined that my judgment outweighed an AI'S at every turn. The only thing they're good at is the code and that's occasionally.
I'm just putting this out there as an announcement because it's going to be obvious to anyone who is looking for AI assisted development but that I do use it but with a complex testing strategy that I used during the testing; With specifically trained models that I use that have been trained and use my own technology.
I eat my own dog food to create this tool. Shimmy has been invaluable WHILE BUILDING SHIMMY.
As has my mystery Rust-based tool chain that will be launched IMMINENTLY.
I praise ruthless efficiency in my code and I always have. My projects don't leave until they meet a definition of done that I keep as a perfectionist at such a high standard that I try to reduce my issues to the lowest level possible. I also find them sickening and I hate having issues around so I tackle them immediately whenever I can and often I time my PRs/announcements so that I can make sure the work shows up during work hours for user, while I'm still doing it and swcheduling off hours.
I invite derision. Bring it!
Beta Was this translation helpful? Give feedback.
All reactions