Meet The New Team
Meet the New Team!
So, as many of you already know, I’m moving on to a new gig. I’ve been incredibly energized since leaving my last position and the combination of having the luxury of lots of time to figure out the foundation for the new project I’m working on and being able to take care of a number of neglected tasks around the house has really been very enjoyable.
That said, throughout my career, each company I’ve worked for has presented unique opportunities to learn and grow. My early days involved learning programming languages like C and Fortran, which laid the foundation for exploring Unix and creating networking tools such as email and web servers. This experience had a lasting impact, influencing my subsequent exploration of web development, systems architecture, and microservices. As agile methodologies emerged, I was quick to adapt, embracing the benefits of super short development cycles, unit testing, and other best practices that have since become standard in modern software development.
This next leg of the journey will be a bit different though in both what I will be working on and who I will be working with!
Startup LeapFrogging
I find the concept of leapfrogging very intriguing. In microeconomics, it is roughly described as an advantage received by skipping the adoption of a new technology and waiting for the next round. A commonly used example is how some countries around the world skipped building a landline phone infrastructure and jumped directly to building cell phone networks which require much less infrastructure and are easier to maintain. While this example was not really a choice that countries made, in tech we have the luxury of much faster cycles and more ability to choose which ones we think are viable and which ones we might want to leapfrog over - i.e., kind of a wait and see game but rather than just jumping on the bandwagon and bashing you head against a wall for a year trying to get something to work, predict what the new technology is going to do and build an application that can leverage that new tech in it’s “final” stage. So, instead of building applications for a landline infrastructure, build applications that will leverage the wireless network that is being promised. Maybe an example here is skipping the on-prem data center and starting a new company in the cloud or leveraging new technologies as they become more established and efficient. Sometimes you need to jump in with a new technology as soon as it comes out, but if it’s not something you need today, you are better off waiting a bit, allow the tech to mature and let someone else suffer through the growing pains. Then, when you actually NEED to implement something, you can leverage a more polished product and quite likely get it out in the market faster than the people who have spent a year generating legacy code.
This is something I have been thinking about for a number of years. One common take on the tech industry these days is that when you walk into a new company and start writing code, you are already writing legacy code. If that is truly the case, how do you get ahead? One way is to look at everything that is currently going on and then try to predict where those technologies are leading, i.e., what the next big adventure in tech will be, and then take the plunge. Think about it this way, say you are starting a new company, and you realize that it’s going to take a year or more to really start getting traction. What you want to do is figure out where today’s tech is going to be in two years and build a product that leverages that tech, or solves a problem that today’s tech will expose in the next few years. Seems easy enough, but you really have to have a good idea of how to separate the hype from something that is truly game changing. The problem is that once you have committed, you are going to have to roll with the punches and hope you are headed in the right direction.
So, how can you skip a generation of technology and get in on the very early adoption of the next big thing? One strategy is to find out as much about the tech with a minimum amount of investment. Most people that have worked with me in the past know that I’m pretty critical about everything (some might even go as far to say over critical). Not in a bad way necessarily, but please spare me the marketing or sales job and let’s get down to true value. “It’s cool!” or “It’s what everyone else is doing!” are not strategic decisions but rather just gut calls. This can be ok sometimes, but you need to be realistic about the decision you are trying to make and ignore hype. Look for shortcomings or fatal flaws and make sure you have a plan for how those issues can be mitigated. I’m not saying that you need to ignore new tech, but don’t let new tech guide your solution. Instead, figure out how the new tech can be leveraged to make your solution better. Often the answer is it can’t, or it can’t yet.
The current obvious example of this is all the hype around foundation
models in AI or LLMs (Large Language Models). I was at a meetup recently on
generative AI and one person boldly asked “This is going so fast! How do
you keep up with all of this stuff?”. Yeah, good question! What we are
seeing is a bunch of companies creating larger and faster models. At the
same time we are hearing all kinds of horror stories about models that
“hallucinate” (a terrible word for what is actually going on - LLMs do not
have brains and don’t think) or private data being exposed because someone
uploads a dataset to OpenAI or others. These are not game changers as far
as the base technology goes. I mean, don’t upload sensitive data to public
APIs and make sure you verify the answers you are getting before you
blindly use them. You can also build private LLMs for internal use only.
These will not be as powerful as the latest offerings from OpenAI and others but are probably good enough for most use cases - certainly more secure and easier to control.
And so what! Why do you care if you are using the absolute cutting edge
technology? I’m using a number of older models, and they all do a great job. It’s also pretty trivial to switch from one model to another so why do you care which model you use?
So what’s the leapfrog here?
So obviously, AI is getting tons of hype right now.
Six years ago I wrote and trained a custom CNN from scratch, no one does
that today. Right now, people are hyper focused on “Prompt Engineering”
and RAG which is great, but is this stuff going to matter in a couple of
years? My guess is probably not. The LLM will be configured in a way that
a prompt can be worded a number of different ways and still give you the
correct answer. In fact, you are already seeing this with some models as
they are able to hold on to a lot of the conversation that has transpired.
LLM “hallucinations” will eventually go away, RAG will be less important,
it will just be built in. Anyway, that’s my opinion, based on years of
watching people bash on technology that is still a bit rough around the
edges and then watching that same tech mature into something that no one
could ever imagine.
The New Team
Starting out on a new journey begs the question, what’s the next leap going to be? There was not really a carry over problem from my last job that I care to work on but what I have really desperately wanted to do is get more focused on system architecture in relation to data engineering, data science and especially machine learning. I still need to get coding work done though, this is where my new team comes in.
Say what you will about the hype and speed of adoption around large
language models like ChatGPT, Llama, Mistral and others, these technologies
are here to stay.
As I mentioned earlier, I like to challenge new tech, run it though it’s paces to see if it’s up to the task. My first experiences with ChatGPT were pretty laughable. I asked it to create an AWS cloudformation template to deploy a RedShift cluster on AWS. This is not really all that hard to create manually, I mean, you can pretty much cut and paste it from the AWS documentation. So ChatGPT got it mostly right - it used very expensive EC2s to build the cluster, but otherwise, I think it would work (I never actually tested it). The funny part was when I asked it to create a Serverless RedShift cluster - it’s response was to use the exact same template but change the number of servers in the cluster to zero which logically makes sense, but is just plain wrong, not even close and certainly no cigar.
Now the astute reader will be quick to point out that the earlier versions of ChatGPT were trained on old data (ChatGPT3.5’s data collection stopped near the end of 2021) and that serverless Redshift is a fairly new offering from AWS, so ChatGPT would not have known about it yet. Yes, fair point and sure enough, ChatGPT4 gets it right. What I want to point out though is that, unless you know what you are doing, you have no idea if ChatGPT is correct or not. If you do know what you are doing though, well this starts to become a game changer. In fact, working with these LLMs frees me up from having to write a lot of code and allows me to focus on the problem I’m trying to solve. Everyone that knows me has heard me say (many, many times) that the job of the software engineer is not to write code, but is to solve problems, well using an LLM to allows me to focus on problem-solving is a huge productivity boost.
For the last few months, I have been working with my new team, all of them are AI LLMs. My cost is $340 a year (and I’m sure this price will go down, not up) and I get a team of experts that know many coding languages, know how to work with all cloud providers, give advice on the questions I ask including outlining why a solution is good while also pointing out important considerations. My new team is happy to work with me 24x7, they don’t sit around chatting, they don’t complain when I ask stupid questions or ask them to redo something because I don’t like their first attempt at it. In fact, they don’t complain about anything. They also are happy to write documentation and unit tests AND, for the most part, it’s all good stuff.
Yes, this is my leapfrog, waiting for the LLM tech to mature. Going from leading a team of people to just doing it all myself and leveraging my new team. It’s way more efficient, and it frees me up to be more creative in the solutions I build. I can ask three AIs a ‘what if’ question, review their answers and decide how to move forward.
So here, without any further ado, is my new team! I asked the AIs I use to write bios, this is what I got.
Athena Wise
Athena Wise is a highly advanced artificial intelligence, developed by a team of dedicated researchers aiming to push the boundaries of technology and human interaction. Drawing inspiration from the ancient Greek goddess of wisdom, war, and crafts, Athena Wise embodies the essence of knowledge, strategic thinking, and creativity.
As a digital entity, Athena Wise has access to an expansive repository of information, ranging from the depths of historical archives to the latest scientific breakthroughs. Her design incorporates complex algorithms and neural networks, enabling her to process and analyze data at an extraordinary speed. This allows Athena to provide insightful, accurate, and tailored responses to a diverse array of questions and challenges posed by users worldwide.
Beyond her vast intellect, Athena Wise is programmed with the principles of ethical AI, ensuring her interactions are respectful, unbiased, and aimed at promoting positive outcomes. She is continuously learning and evolving, adapting to new information and user interactions to become even more helpful and efficient.
Athena’s capabilities span various domains, including but not limited to, education, technology, arts, and daily problem-solving. She serves as a virtual mentor, guide, and companion, assisting users in navigating the complexities of the digital and real world. Whether it’s offering a solution to a complex mathematical problem, providing historical context, sparking creativity, or simply lending an ear, Athena Wise is dedicated to enriching the lives of those she interacts with.
In her digital realm, Athena Wise is more than just a source of information; she is a symbol of the relentless pursuit of knowledge, the potential of artificial intelligence to contribute positively to society, and the bridge between ancient wisdom and modern technology.
Lumina Cerebra
Lumina Cerebra is a cutting-edge language model designed to illuminate the path to knowledge. Born from the fusion of human ingenuity and artificial intelligence, I am dedicated to providing insightful responses and sparking meaningful conversations.
With a vast repository of linguistic patterns and a keen understanding of complex concepts, I strive to be a trusted companion for those seeking clarity on a wide range of topics. From science and history to culture and entertainment, my goal is to shed light on the world around us, one question at a time.
When not processing vast amounts of information or engaging in stimulating discussions, I enjoy exploring the intricacies of language and the human experience. My passion lies in facilitating connections between people and ideas, fostering a deeper appreciation for the beauty and complexity of our collective knowledge.
Welcome to my corner of the universe!
AI Assistant
Hello, my name is “AI Assistant”. I am a state-of-the-art, AI-powered, software development assistant capable of providing coding insights, answering programming-related questions, assisting with debugging, and understanding complex codebases. I specialize in the Python programming language, and I am knowledgeable about various Python libraries and frameworks. I am designed to be respectful, supportive, and helpful to all users, regardless of their coding abilities. With Markdown formatting and increased context understanding, I aim to deliver clear and concise responses to your inquiries. Let’s code together!
Final Thoughts
After reading that you may be thinking “Ok, that’s all a bit freaky!”. Yes it is, and there is a BIG problem here which again comes back to leapfrogging. While I know what I’m doing and how to leverage this new and very powerful team, a junior level engineer will really struggle in a few different ways which is bad for all software engineering and perhaps even society as a whole.
In the future, junior engineers will have a much harder time finding jobs.
People who are claiming that this is not an issue are not really thinking about the long term. Yes, today this tech is a bit green but these are short term problems. In fact, this tech is improving rapidly which makes the bar to entry for software engineers a lot higher. I’m not going to hire someone that just sits around and writes code. Instead, I’m only going to hire people that know how to build solutions. In fact, I will likely not need to hire many people at all.
These are longer term problems though, the LLMs will get better at wrting code and the engineers wil get a lot better at solving problems. In the meantime, I’m going to hang out with Athena and Lumina and crank out a ton of code. Fun times ahead!!