- engineering
- experiments
There Is No Finish Line
For years, I thought I was trying to learn enough to solve the problem in front of me. I wasn't. I was building the person who would eventually be capable of solving problems I didn't even know existed yet.
Logan Etherton8 min read
For years, I thought I was trying to learn enough to solve the problem in front of me.
I wasn't.
I was building the person who would eventually be capable of solving problems I didn't even know existed yet.
I just couldn't see that at the time.
I thought I could do this
When I first learned about machine learning, I had the same reaction I've had to a lot of things in my career:
I can do this.
So I started reading.
One of the first things I encountered was support vector machines. I got one working. I had no idea what it was doing. I could use the library. I could follow the examples. I could produce a result.
But I didn't get it.
And that bothered me.
So I started reading about the mathematics underneath it.
That created a new problem.
I didn't understand the math either.
Fine.
I need to get better at math.
So I signed up for Khan Academy. I took Algebra II. Linear algebra. Calculus. Calculus II. Probability. Statistics. Optimization. And I'm sure I'm forgetting some.
I watched Grant Sanderson's brilliant Essence of Calculus series from beginning to end. Then Essence of Linear Algebra. Then differential equations. Then neural networks.
And somewhere along the way, understanding how to use these things stopped being enough for me.
I wanted to know how they worked.
So I started building them
I learned how to implement linear regression from scratch. Then logistic regression. Then K-nearest neighbors. Then more. Eventually I wrote gradient descent myself. Then neural networks. Eventually, transformers.
From scratch.
Not because writing your own transformer is the sensible way to ship software.
It isn't.
I did it because I wanted to understand what was underneath the abstraction.
Every time I hit something I didn't understand, I went down another level.
So I kept going.
There was always another layer.
And I thought that eventually I would reach the bottom.
Then I started failing
Here's the part that's funny in retrospect.
All of that happened before the failures I've been writing about.
Before I tried to build an automated trading system. Before reinforcement learning taught me how to trade one particular month. Before I spent months manipulating financial data until I had successfully modeled a market that had never existed. Before Kairo was even a word that had come out of my mouth.
I had done the work.
Years of it.
I had learned the math. I had learned the algorithms. I had built the algorithms. I had learned enough that I no longer needed somebody else's implementation to tell me what was happening.
And then I went out into the real world and got stomped anyway.
Again.
And again.
And again.
That was hard.
Because somewhere underneath all of that work was an assumption I didn't know I was making:
Eventually, I will know enough.
Eventually I'll have the math. Eventually I'll understand the models. Eventually I'll understand the data. Eventually I'll understand the domain. Eventually I'll have enough experience. Eventually I'll stop making these mistakes.
Eventually I'll arrive.
What a waste
When some of those projects failed, I remember thinking about how much time I had spent.
Years.
All the reading. All the courses. All the math. All the nights staring at something I couldn't understand until, finally, I could. All the code. All the experiments. All the things I built that ultimately did not become the thing I thought I was building.
And I remember thinking:
What a waste.
Of all the things I got wrong during those years, that may have been the one I got most completely wrong.
None of it was wasted.
Not the math. Not the algorithms. Not the trading system. Not the reinforcement learning. Not the terrible preprocessing. Not the experiments that worked. Not the experiments that failed.
Especially not the experiments that failed.
I needed the systems that failed.
I needed the experiments that answered the wrong questions.
I needed the data that stubbornly refused to behave the way my theory said it should.
Because every time reality disagreed with me, I learned something that another successful test inside my own little world could never have taught me.
Sometimes I learned something technical. Sometimes I learned that I had asked the wrong question. Sometimes I learned that a measurement wasn't measuring what I thought it was. Sometimes I learned that an assumption I considered obvious wasn't obvious at all.
I needed enough experience to distinguish:
"I don't understand this yet"
from:
"The thing I understand very well does not work the way I thought it did."
And increasingly, I learned something much more important:
I learned to become suspicious of how certain I felt.
Those were the baby steps required to get here.
And I'm still taking them.
Then I built Kairo
Kairo came together surprisingly fast.
Not the finished system. There isn't one.
But the thing went from an idea to something real in a matter of months.
I've thought a lot about why.
It wasn't because I suddenly became smarter. It wasn't because I finally found the right framework. It wasn't because AI made engineering trivial. And it sure wasn't because I finally knew everything I needed to know.
It was because of all those years I thought I had wasted.
When I needed statistics, they were there. When I needed probability, it was there. When I needed to understand optimization, I understood it. When I needed to reason about models rather than merely call them, I could.
When something produced an astonishing result, I had enough scars to ask what the result actually meant.
When the data looked too good, I had already learned what it feels like to manufacture a reality that agrees with you.
When a model produced beautiful reasoning, I had already learned that beautiful reasoning and evidence are not the same thing.
When a test passed, I had already learned to ask whether I had tested the thing I actually cared about.
When something failed in the real world despite working perfectly in my system, that feeling was familiar.
I had been there before.
Many times.
The failures weren't detours from the path.
They were the path.
I couldn't have skipped any of it
This is the part I don't think I understood when I was younger.
I wanted the shortcut.
Not because I was lazy.
Quite the opposite.
I wanted to know what I needed to learn so I could go learn the hell out of it. Give me the curriculum. Give me the papers. Give me the books. Give me the problem set. Tell me what I need to understand and I'll go understand it.
I still love learning that way.
But there is no curriculum for the problems you don't know you're going to encounter.
I couldn't have read a book that told me what I eventually learned from those failures.
Someone probably could have told me some of it. I'm sure people did. I could have repeated the words back to them.
That's not the same thing.
There are things I knew intellectually years before I knew them in a way that actually changed my behavior.
I knew overfitting was bad. I knew historical performance didn't guarantee future performance. I knew correlation wasn't causation. I knew models contain assumptions. I knew garbage in, garbage out.
Great.
I could pass the test.
Then I spent months building a market that had never existed.
Knowing the sentence and having the scar are different things.
I needed both.
Learning to actually operate this way took me years.
Expertise didn't do what I thought it would
I used to think expertise meant accumulating enough knowledge that eventually the uncertainty went away.
I think almost the opposite now.
The more I've learned, the more kinds of wrong I've become capable of recognizing.
Expertise gave me better vocabulary. Better tools. Better hypotheses. Better experiments. Better ways to interrogate reality.
What it did not give me was veto power over reality.
And thank God for that.
Because the moment I start believing I've finally learned enough that reality should behave the way I expect it to, I'm right back where I started.
There is no finish line
For a long time, I thought progress was how you got somewhere.
I don't believe that anymore.
And I'm glad I don't.
Because what would I even do after that?
There is always another knob to turn. Another metric to improve. Another workflow to automate. Another technique to learn. Another thing that promises that the finish line is finally right around the corner.
I chased that for a long time. I still catch myself chasing it.
But there is no finish line.
I know more today than I did five years ago.
Five years from now, I hope some of the things I believe today seem naive.
That doesn't mean today's work was wasted.
It means it worked.
There will be more things I don't understand. There will be better questions I don't know how to ask yet. There will be systems I build that work beautifully until reality gets a vote. There will be things I'm completely certain about that turn out to be wrong.
Good.
That's not what happens on the way to the thing.
That is the thing.
I spent years trying to figure it out.
Eventually I learned to become deeply suspicious of the phrase "figured it out."
There is nowhere to arrive.
Progress isn't how I get to the finish line. Progress is the whole thing.
Start from the beginning: I Built Kairo Because Sales Stopped Working