I feel like basic web CRUD works, but as soon as you want to use a real API things get tricky.
My current requirement I don't see easily fulfilled (it's ok if this part is code):
- let me authenticate a user against twitter
- and use the twitter api with that auth
- digest the response from the twitter api
- do a bit of regex to filter or sort tweets or any list
We write code so others don't have to. The tools we use enable us to accomplish work with lower code than we would have had to write. I'll go with that definition.
I was recently in a meeting with a client who shared a diagram on the screen for the architecture they were imagining. Their part and our part. He illustrated that they'd have their data sent to us, and we'd train models and then make them available so they could invoke them to receive a JSON response.
At that moment I sent a DM to our CEO on the call saying: do you realize that how much work we will not do because of our platform. When the client finished, I said that we already have that. We have a machine learning platform that has real time collaboration on notebooks, automatic experiment tracking, one click deployment, etc.
The client said he wished we'd be able to deploy these models as Docker containers in their own infrastructure. Check, we already have that.
Pain point after pain point. The client then put his hands on his head and asked his colleagues on the call: "Why are we fucking around trying to build whatever we're building since there's all that? Why don't we just use that?"
It was really nice to hear because before our platform, I or colleagues would have had to make yet another application, deploy it on yet another VM on GCP or something for their users. Train the models, track experiments with ad-hoc [logs or spreadsheets or a colleague's human memory], have notebooks flying around, etc, and do that over and over again. So that shaved a huge amount of work and context-switch. My colleagues weren't bothered at all with this client. This is a luxury we didn't have a couple of years ago.
We built that platform precisely so we don't have to do a certain number of things over and over again for every client. It felt nice to be expected to do something in the future, and have that already done in the present.
So, that's my definition. Anything that reduces the amount of work unnecessarily done by one or all of us is welcome. Anything that reduces the variance of outcome. Anything that reduces cognitive load. Anything that makes success a bit more systematic and consistent.