Inefficiency has been a constant flaw found in software development. Let me give you an example based on many years of experience: a software designer hands off a wireframe to a software developer. Then the developer manually codes the user interface depicted within the wireframes either from scratch, or by applying existing code from a previous project via "copy-paste". This two-step process is repetitive, error-prone, and lacks some serious automation.
Having watched the same thing happen over and over again, it was clear that somewhere the valuable source code for the project was trapped inside the wireframe. If a designer had the ability to auto-generate starter code for a software project based on the project's wireframes, I knew this inefficiency could be eliminated altogether.
And so in 2012, this insight motivated me to create technology with an important practical application: teach a machine how to understand a wireframe design and then automatically produce source code from such a design. I called my invention the "Wireframe Recognition and Analysis Engine."
Before getting started, I performed a lot of research, which included an extensive prior art search, to see if the idea floating around in my head already existed. Upon confirming that none such technology existed, I decided to create it myself.
My father encouraged me further by telling me: "Go invent and build the technology. Once you do that, go get it patented". I went ahead with my project, determined to become a Maker and builder of an invention.
The actual "building" of the invention was arduous----the mental equivalent of scaling a vertical incline. As a Maker, I felt empowered and experienced a unique joy which came from actively piecing together concepts from multiple disciplines, just as one would piece together a jigsaw puzzle to form a complete picture. While I was building the prototype, my brain drew upon various fields: design, software development, artificial intelligence, machine learning, image processing, and data modeling. I enjoyed playing with these ideas and seeing how they could relate and interconnect to one another.
I filed a patent application with the USPTO detailing my invention. I chose the name “Wireframe Cognition” (“wirecog” for short) as the marketing name of the invention. I was awarded a patent for the invention (U.S. Patent 8,943,468) and the term "wirecog" is now a registered trademark. After being awarded the patent, I reached out to two tech giants in the software development industry, presenting my vision for Wirecog. I was hopeful that these two companies may be interested in licensing the patented technology I made. Unfortunately, I never heard back from them. As a result of that, I felt all the more determined to validate the value of my idea.
The validation I needed, came to me in the form of the Infy Maker competition. I decided to submit Wirecog for the Infy Maker award and in March 2016 I was recognized as an Infy Maker Award Winner. It was fantastic to win the award and I am grateful for the recognition of my Making ability.
Winning the award provided me with a lot of encouragement and exposure. I was invited to speak at the 2016 World Maker Faire at the New York Hall of Science. Shortly after that, I was also invited to present Wirecog to students and faculty at MIT. This exposure gave me the confidence to present to large crowds, and I ended up delivering a talk to approximately 300 people at GopherCon India, which happens to be India’s largest conference on Google’s Go programming language. After watching my talk on Isomorphic Go, which happens to be an emerging technology, I was approached by Packt Publishing, a major international technology publisher, to write a book on the subject. No one had ever completely implemented an isomorphic web application in Go, so I founded an open source project to provide the underlying technology to do so.
I used the grant money provided from the Infy Makers award, along with grants from Disney and Linode, to help fund the Isomorphic Go open source project (https://isomorphicgo.org), which happens to be the first technology that allows for the development of isomorphic web applications using the Go programming language.
So what’s next for this Maker? To scale the next vertical incline and take Wirecog to the next level. To follow the next part of my journey, I invite you to click here or follow me on Twitter @EngineerKamesh.