Using engineering to create novel approaches to specific problems
I was sitting down for coffee the other week with my friend and fellow founder, Doug. As one does at 8am over a cup of coffee, we were discussing the 2nd law of thermodynamics and it's application to society - namely the concepts of social entropy and chaos theory. Society is an ever-changing, constantly evolving ball of chaos. Generally unpredictable, sometimes scary, often entertaining, but always changing.
Over the course of my career as a software engineer, I have had many days where I have said aloud "My code is right. The only reason it's not working is because my computer doesn't like me." As much as I would love to blame little gremlins living in the data pipes of my computer randomly pulling electrons out of the stream for my issues of the day, it's always an issue in the code itself.
Computers, for better or worse, are purely logical systems. Input and output. Measurably consistent. It was that logic and consistency that hooked me as a kid playing around with HTML, PHP and C++, and it was that logic and consistency that made me realize I could not do anything else with my working career. With nothing more than a computer and an internet connection (maybe a few brief detours to StackOverflow and ChatGPT), you can build tools to solve any problem you can conceive.
As I moved through my career, I came to the stark and humbling realization that writing code was the easy part. Problems are not always rational, nor do they always have logical solutions. How, then, do you apply logical reasoning to an irrational problem? That unlocked the MORE fun part of software engineering!
The tools that the software community has build since I first opened a text editor all those years ago are nothing short of astounding. What once required an understanding of the nerdy details of your processor (i286 vs i386, right?) are now virtualized and abstracted to the cloud. Disk I/O is near instantaneous, and "we need more RAM" is solved by an update to a kubernetes Yaml file. The new superpowers making the rounds are LLMs and AI.
While machine learning (ML) models have been on the scene for years, they required highly technical expertise, expensive hardware and the time to build your own toolkit to support it. Those initial open-source projects have catapulted the new AI movement into the forefront of society. OpenAI can be hooked up to your existing application through an API, using it's own hardware, in the scale of minutes. Other tools, like oLLaMa and LocalLLaMa, allow you to run your own GPT chatbot from your laptop without paying for API credits or expensive hardware. The next leap in technical achievement has already started.
LLMs are great at taking large swaths of information (context) and generating content based on it. What was formerly not feasible can be near-instantly generated based on smaller and smaller inputs. Due to these open-source tools, it's possible to create novel approaches to specific problems.
One of the important lessons from Chaos Theory was to look beyond the apparent randomness of the chaos, then observe and measure WHY the deviation occurred. If I couldn't determine the why, did I need to change perspective? Zoom in or out? Get another opinion?
When I was considering adding on to the deck in my backyard, I knew I was going to need a structural permit. I knew my city had rules, my county had rules, my state had rules and adopted rules from an international governing body. I started to gather my reading material and quickly realized I was out of my depth. There was so much information, it was hard to search and reference, and it seemed like chaos.
At Fordje, we are trying to bring logic and clarity to the chaos of municipal codes. I am hardwired to solve problems and, through AI, we are finally equipped to apply logic and reasoning to the ever-growing chaos and complexity of codes.
If you are in the Raleigh area, I'm always up for a cup of coffee with a side of tech+philosophy.