At an old job, I spent an enormous amount of time printing out paper copies of websites. And receiving copies in the mail printed by other people. Bank statements, invoices, etc. Then I entered that data into financial software. Then into spreadsheets. Then I entered it into yet another spreadsheet to prove I had done all this.
Close to the end of that job, I took my first class on databases . I created databases, imported data into them, exported data from them. The instructor was good and the assignments were devious. It was hard. At the end, I was confident that I could write an SQL query for nearly any report one could want from a data set. It might take awhile to make initially. But the benefits were insane. The report could spit out the data instantly. I could run the same report again the next month. And the next. Month after month. Year after year.
With the realization came elation. The possibilities were endless. This was not some obscure process that some megacorp could implement. This did not require a thousand hours of paintstaking coding. This was something I could do. In ten minutes.
At work, I started playing with vlookups and macros, trying to mimic simple SQL queries. Processes that had previously taken hours suddenly took seconds.
But then one afternoon, I raised my head from whatever bank statement I had been staring at and looked around at the room I was in. It was filled with people. We were all staring at sheets of paper. Reading them. Parsing them. Retyping them into spreadsheets and our financial software, which itself was just a glorified spreadsheet.
A single database with a good administrator could do the work of three of us easily. No, six. More, if they hired people just to do the basic data entry. The result would be so much more accurate. And powerful.
And then if we didn't receive paper statements, if we didn't print out websites.... If we got all our data dumped electronically from the bank's database, from all of our vendors, from all of our customers....
And I saw a vision of the future. A place where rooms like this simply didn't exist. A place where data, once inside a computer, was never again manually entered into another computer.
I had only the vaguest idea of the technical details. Now I realize it's all about the API. Banks, vendors, and customers need to share an open, standardized API.
APIs for data should be as conventional as nutritional labels on food. They should be as traditional as everyone clapping at the end of a middle school play. Why do I have to look at a paper internet bill from Comcast? Or, after logging in, an electronic replica of a paper copy. Why can't I issue a request to their API? Why can't I receive this data electronically, as JSON? Or any format other than the stone-age CSV file.
The API call would not just be light-years cheaper and easier for me. It would be cheaper and easier for Comcast.
I didn't see any of the technical details that afternoon. All I felt was the certainty of it's possibility... its inevitability. The room I was in would cease to exist. Whether in five years or a decade or two decades, all that surrounded me was doomed.
My vision ended. As it faded, five o'clock came and I wandered home.
The next day, I quit my job. And started learning everything I could about programming.
I want to build this future.