Cooking bacon and working with AI
I have been on a deep dive for the last six months, using AI to do software development for a property management business. Today, a teaser: how I used it to write code while cooking bacon at home
I have been on a deep dive for the last six months, working sometimes 70-hour weeks on a complex “web-app” software development project for a property management business.
That intense and horizon-expanding journey will be the subject of an upcoming post; In a matter of months, with the assistance of ChatGPT and GROK AI, I have built an extraordinarily useful set of business management tools to streamline this business—making it radically more efficient than it has been in several decades.
I am stunned, every day, seeing what I was able to build so quickly and how useful it is.
I feel compelled to share what I have personally experienced using AI for this project, because it is genuinely transformative. I have said recently to a few people that AI has made me younger; and in two very real ways—it has.
It would have been completely beyond my comprehension three years ago that I could or would have been able to do what I have recently done in such a short time and to such a high degree of utility and quality—by myself—on this project.
But I did it—and it was at once creatively exhilarating, technically satisfying, yet worrisome. AI is literally eating my lunch (or the lunch of a small team that in years past I would have had to hire.)
I’ll dive into that story and explore the implications of what is happening with AI and software development soon in a dedicated post.
Suffice it to say that this use case for AI is accelerating at a pace beyond comprehension. I have worked with software engineers with Masters degrees and PhDs from top universities who were less capable and as fast at creating useful, tested, documented, and working software.
So for today: Here’s the story of how I wrote code in mere minutes while cooking bacon.
The backstory for today’s “bacon and AI” moment:
Part of the software toolset that I recently built for this business includes a bulk email feature, which is a common need in firms both small and large.
If you want to send a nicely formatted boilerplate email to all the current tenants (there are a few hundred tenants), there is now a cool popup tool in my web-app suite that creates a list of all names associated with each leased property; there are checkmarks next to each name in a scrolling list on the right side; and on the left is a composer panel that supports markdown so that one can easily create HTML formatted emails with optional attachments.
You can uncheck names if needed, and then when you’re ready, just hit “send”—and the tool does the rest: it creates a personalized message for each tenant, sends it via the company email server along with confirmation in a status bar at the bottom of the screen, and finally logs and tracks the results.
My design strategy for business software is to do what I call context-aware “smart” workflows right inside the web-based tools that you use every day running the business. Minimizing clicks and unnecessary keystrokes is my style.
With properly designed and integrated features, there should be no need, for instance, to switch tasks and open a separate email program like Outlook or MailChimp and juggle a list of recipients while copy/pasting content from some other tool. Also, if you want to see recent emails and replies to a given set of tenants—that, too, should be a simple in-context quick search and one click away.
The most common tasks that you need to do while using my new software suite are therefore all right at your fingertips, built in. I even included a “sticky note” feature that allows you to have searchable, contextually relevant notes always on screen (or attached to specific PDF documents.)
These “smart notes” can also generate reminders for you (if the text of your note starts with “Remind me to…” and includes a date and time or words like “tomorrow” or “next week”, for instance, it auto creates an on-screen reminder popup that appears on that date/time.)
What I learned by using the AI to develop just that one feature will be covered in my later posts, because the process and insight that I gained from it blew me away.
AI is learning to reason, not just generate clever regurgitations.
People love using sticky notes, and I scratch that itch in a modern and very convenient way with my new suite: it looks and ‘feels’ like a post-it note, but without the paper and mess. 3M is going to lose some business from this office!
My “smart notes” can also do simple tabular calculations, to eliminate the need to fish out a calculator or excel just to total up some quick figures. Calculations are built right into the sticky note.
You just type the word “calculate:” and then put figures on separate lines; after double-clicking, the note converts “K” to thousands, formats the figures in a small table, and computes the sum.
If you change the numbers and double-click, it updates them.
Last week, I sent out a bulk email to all of the tenants on Thursday, wishing them a Happy Thanksgiving. As you might imagine, when you have a couple of hundred email addresses, you’ll invariably get a few “bounce” email messages for addresses that no longer work for one reason or another; sometimes because the address is wrong or the account was deleted, or sometimes because the recipient’s mail system is full and can’t accept new messages.
I got a small handful of these “bounce backs” emails on Thursday; so I opened a sticky note and wrote myself a reminder:
“remind me to fix the bounced email issue on 12/2/24 at 8am.”
That reminder just popped up on my screen at work, but I had already resolved it before leaving home….
This morning, while I was cooking bacon in the oven, I had an idea about how to automate the handling of these “bounces” using some pre-existing code fragments.
I sat in my office chair for a few minutes and put the oven mitt on the table in front of me while I typed.
I gave the AI that I use for code generation a sample program that I had created before —it had all the basic functions already in it that would be needed to both access a mail server (using IMAP, for the techies) and a MySQL database.
I highlighted the sample code in my editor, and wrote to the AI:
“Using this existing code, please create a new node.js script from it that will access the inbox for communications@somewhere.com (the email address from which we sent bulk emails, for example.) Lookup the account connection details using what is already in the code. Find all emails with the subject 'undelivered email returned to sender' whether or not they are marked read. Parse these and extract the original email recipients that they were sent to. Then find those email addresses in the MySQL table I use to store email addresses for tenants and mark each bounced email address for the tenant as ‘deleted’ since it no longer works.”
This instruction is very similar to what I might have written in an email and sent to a young programmer four years ago.
I then stood up, put on the oven mitt and went back into the kitchen to take the bacon out of the oven (which was perfectly cooked by then.) I glanced over my shoulder as I left the room—only to see that the AI had already finished its task.
When I came back to my home office desk, the new code was done—and when I ran it later at the office…it just worked.
It looked for the bounced emails in the sending account’s inbox and cleaned up my mailing list by soft deleting the broken emails. The old email addresses are still in the database; I just tagged them with a ‘soft delete’ flag so that the rest of the system would no longer try to use them.
As I was driving to work, I thought about what this one small example meant. This task, had I wanted to do it a few years ago, would have taken me or another programmer I assigned it to the better part of a day to figure out how to do, if we had to do some initial research on how to connect to IMAP mail servers first, and start from scratch; it would then have taken 10 or 20 minutes of debugging on top of that, maybe more.
Instead of 4-6 hours of work for expensive programmers, I got working code to resolve these bounced email messages in under a minute while cooking bacon—and I did it by using conversational language with an AI.
I’ll dive deeper into what all of this means in my follow up post, but suffice it to say this: in the context of software development, AI has already totally revolutionized the way software is done—and there is no going back.
Pardon me while I munch a bit of bacon now and figure out how I’m going to stay employed.
Update: consider also the time savings by staff here in the property management office. If I gave someone the task to do this manually: “Go find the communications inbox in the Thunderbird email program; look for emails that are bounces—they look like this, but maybe also like this; then find the original recipient in the email that bounced, and write it down on a sticky note; then go find a tenant in the system who has that email, and remove the broken email from that one screen I showed you last week…” to do all that for seven emails would have been 15 minutes or more of “labor”.
Now it’s just…fixed. In the snap of a finger.
CognitiveCarbon’s Content is a reader-supported publication. To support my writing and research work, please consider becoming a paid subscriber: at just $5 per month, it helps me support a family. It is genuinely needed.
Freedom isn’t free; I need to work harder to pay other people’s student loans and afford bacon in Biden’s America, while keeping a family fed and housed.
You can also buy me a coffee here. Thank you for reading!
You’ve just described how improved technology (AI) can be used for GOOD!!
If there weren’t evil people in the world trying to cull the herd and completely control the rest, I wouldn’t worry about AI (especially a reasoning AI) being used for bad.🤔
God bless you, Cognitive Carbon, as you obviously are one of those God has gifted for this time.🙏
Great explanation of the process of creating an expert system for your business management needs.
I finally got a chance to query an AI (Perplexity AI) on the benefits and risks of a laparoscopic robotic surgery under general anesthesia inguinal hernia repair that the doctor was scheduling me for. It gave good answers and follow-up questions and information I could check out. It also listed the sources it used. Upshot: at my age the risks were significant and I was better off doing traditional surgery under local anesthesia. I went to the source material and was able to see the accuracy of what the AI concluded and why. I am impressed with this beneficial use of AI for us average folk.