Building a new software project in a weekend
How polite.ai came into existence.
I started a new project yesterday morning.
The idea is around using machine learning to improve the quality of interaction in online chat systems. If you want to read more about it, here is the website that came out of the weekend of work.
I really started working on it yesterday morning but that doesn’t mean I haven’t been thinking, researching, and putting some bits in place with a view to end up with a project rather than a hack.
Even a weekend hack would need an initial trained engine to demonstrate the concept and I found an open source repo project and write up in a paper that demonstrated their approach to a very similar problem. I was able to use these to understand the kinds of challenges and indeed simply use their raw data and training network parameters they had meticulously researched to get a leg up. It was brilliant to be able to put a quick proof of concept up with a REST API to convince myself the approach was even viable before I roped others into a “daft” project.
Servers (or serverless if this works for your application) are cheap and easy these days even if you are building deep learning networks that require 10s of Gigs of RAM. I had a bunch of developer credits on Google Cloud Platform which will pay for a few small servers for the better part of a year. A Wordpress skeleton on GCP is probably overkill, pages.github.io would have been fine but harder for non-developers to edit. It does look great though and couldn’t have been simpler or quicker to setup. Add letsencrypt and a free SSL certificate keeps everything authentic.
Life would have been easier if I’d chosen a top level domain of anything other than .ai but I was smitten with polite.ai for the project so it had to be done. That is my only significant cash cost so far and that did need doing a few days in advance.
I kicked off the project on the train into London yesterday morning on the way to TADHack by filling out the Wordpress website template with a description of the problem I thought needed solving.
Chatting to folks arriving at the hackathon, of the sponsors, Matrix seemed to be the obvious integration target and a team of six folks I’d never met before seemed to just coalesce around the idea. Lucy quickly jumped on board and started editing and re-formatting the website, whilst Joe and I put the GitHub project and team together.
Joe had already been looking at Matrix bots, so he set to work on that while I was debugging the Python server setup for the “production” REST interface. By mid afternoon we had the mechanics of it basically working.
Conversational bots need a personality so several dialects were quickly hacked in after meticulous research by Lucy. English, French, and “Father Ted” were added and the latter quickly became the primary demo dialect. Everything was going really well by the end of the day. We had a bit of a personnel change on Sunday as Joe who had lead the Matrix integration charge on Sat was doing something else on Sun morning. I ate too much pizza and drank too much beer while Joe briefed Joe (yep, two, that is confusing), John and Adil on where he was up to.
We seemed to go backwards a little on Sunday morning largely by my breaking things and the fact that putting together robust build environments on the fly during a hackathon is hard. It didn’t make a difference. Come demo time, we had a working system even if a couple of the things we had put against the “by the demo” milestone weren’t quite done. Lucy had put together a slide deck and Joe arrived just in time to take some of the credit for his hard work on Sat.
Anyway, the project now seems to exist. I’m sure a lot of code we hacked together over a tremendously fun weekend will need “revisiting” pretty heavily but we have proved it can be done, now all we have to do is prove it can be done properly!