A Full-Stack approach to modeling
The explosion of tools such as ChatGPT have really called into question the role of knowledge workers in the economy. While this thought has been in the back of my mind for some time, I got some clarity when my good friend Geoffrey Negiar shared some conversations he has been having with his colleagues. The conversations revolve around where a person who has some technical skill should apply themselves: in the construction of better AI models or in the construction of better products that are powered by AI. I am not an expert in AI by any means. But this question made me think about whether the same conundrum or dilemma exists in other domains as well. Turns out that it does.
The concept or mental model that I came up with is Full-Stack Modeler.
Building vs using off-the-shelf AI models
Artificial Intelligence (AI) is no longer just a buzzword, it has become an integral part of many businesses across various sectors. The increased adoption of AI has brought about a new challenge for businesses - whether to build better AI models from scratch or to use existing off-the-shelf ones. The answer to this question depends on the specific environment that a business operates in, as the model-product development cycle has split into two distinct categories. On the one hand, large companies like Facebook, Google, and OpenAI have extensive computing resources and large teams dedicated to developing AI models. Model building is a collaborative effort that requires bringing together the right people with the resources to express their creativity. These companies focus on building custom-made models that can provide them with a competitive advantage in the market.
On the other hand, smaller companies and startups often use pre-existing models to build their products. They have on-the-ground domain knowledge, which is essential in making models usable for a business problem, as the world of business is complex and full of details that the model builders may not want to deal with. Smaller companies and startups benefit from using pre-existing models as they can save time and money on model building, which can then be used to focus on other aspects of their business.
Full-Stack Modeler: a new mental model
In the tech industry, Full-Stack development refers to a comprehensive approach to building and delivering software solutions. It involves developing both the front-end user interface and the back-end server-side functionality, as well as everything in between.
My question is very simple: Can this idea of “Full-Stack” be applied to other fields as well? I would argue Yes!
Let me provide examples from two fields that I know fairly well: Quantitative Finance and Complex systems modeling.
In quantitative finance, what is generally required of people is expertise in developing models that can be used to analyze and predict financial data. So professionals require expertise in fields such as data analysis, mathematics, and finance. While some specific roles within the industry require expertise in back-end engineering, UI development or even knowledge of the rudiments of data visualization is hardly ever asked for. So in the context of quant finance, becoming a Full-Stack quant requires an understanding, if not deep-rooted expertise, in all parts of the tech stack. Crucially, it also requires the ability to develop user interfaces that can be used by non-technical users.
Another area where Full-Stack modeling is applicable is complex systems modeling. This is an area where the Full-Stack approach takes a different form. In complex systems modeling, Full-Stack means having a strong foundation in areas such as statistical mechanics, followed by specialization in specific fields such as network analysis or active matter modeling, and then finally understanding the system you want to model. The eventual model can be something like the macroeconomy, pedestrian movement on a sidewalk, or vehicular movement. The Full-Stack modeling approach in complex systems modeling requires knowledge across multiple fields, including physics, engineering, and computer science. So full-stack in complex systems modeling encompasses two different axes: technical competence for modeling these systems, and technical competence to bring these models to life in code. And while scientists are known for writing bad code, building some level of skill in software development can become extremely handy for complex systems modelers.
An exciting middle ground.
The initial question about whether one should go build the best AI models or go build the next great AI product is a false choice in many ways. An honest middle ground exists: becoming a “Full-Stack Quant” or a “Full-Stack Modeler” means not only building models but also being able to spin up a rudimentary application to demonstrate the value of the model in a basic way. The goal is to be able to build a model from scratch and then deploy it in a way that demonstrates that the model can solve a specific business problem. There is of course a spectrum between the two extremes of “only modeling” and “only product building” and one can choose to position oneself somewhere along that spectrum. The important point is to recognize that such a spectrum actually exists.
In summary, Full-Stack development is not limited to the tech industry. I believe it has relevance in other fields such as Quantitative Finance and complex systems modeling, where building models that can be used for analysis and prediction is crucial, but only part of the story.
Building Career Alpha
In his essay Do Things That Don’t Scale, Paul Graham points out that startups often succeed by doing things that don’t scale, such as manually recruiting their first users or providing personalized customer support. By doing these things, startups can build a loyal user base and create a strong brand identity that will pay off in the long run.
The same approach can be applied to building a career. In both examples I presented above – quant finance or complex systems modeling – rather than focusing solely on specializing in model-building, it may be more effective to take a step back and focus on building a solid foundation across separate themes. These separate themes span the gamut of skills: DevOps, understanding how to store data within databases, managing your code, following best software development practices, presenting your results in a compelling way, building prototype UIs to present a business or scientific use case.
The key to success, in my experience, is to focus on building a strong foundation and finding a personal “alpha” or edge. By doing things that don’t scale through a Full-Stack approach, professionals can stand out in a crowded field and succeed in the long run.