My company is SoftPerson, which specializes in “semantic computing” in everyday general-purpose applications. The past decade or so was one of a lot of reading, research and experimentation with entirely new technologies and user experiences, but no product. I can’t really continue for more than another year without revenues, so I came up with some remedies.
These are my plans for the current year.
- Releasing a NConvert semantic code conversion tool early this year
- Kickstarter for NStatic, a static analysis tool, next month
(In a future year, I would do the same for my natural language wordprocessor product).
In both cases, I would start out with a light version of the application, lacking much of the AI, to minimize risk and time to market. Then, I would follow up with the killer functionality. Consumers who buy the light version may receive the AI-enhanced version when it finally releases.
There are a variety of reasons that I was not able to release NStatic earlier, many of the reasons have little to do with the AI.
- My code generation was originally in Perl, which is difficult to refactor, and is now written completely in C#.
- I relied on and let down by third-party components for some core functionality such as parsing C# in attempt to focus on my core value proposition. My codebase will be based on Roslyn.
- Working with source code is time-consuming. NStatic will initially work with the IL from compiled assemblies and use the symbols information from PDB files.
- The mathematics is intense. Some of the issues that I have to deal with is ensuring non-termination.
I have been contacted by recruiters from two different major tech companies, so I may go back to work in the industry if I can leverage the ideas and techniques that I developed. The pros of working in the industry is that I can share ideas with top researchers and my discoveries will be widely disseminated.
I may turn some of my experiences and notes into book form. The books may be self-published using the Gumroad service.
- General-purpose Layout Engine
- Building a Word-Processor or Any Other Document-Based Editing
- Structured Editing
- Semantic Computing
- Real Natural Language Processing (Focus on Parsing and Semantics)
- Symbolic Reasoning Engine
- High-Performance Immutable Data Structures
- Practical Guide to Building a Software Startup
- The Design and Architecture of Various Open Source Projects
- Python Math Libraries (Sympy, Numpy, SciPy and others)
- .NET Core
- Jetbrains IntelliJ IDEA & Nitra
Some of the code that I will write will be open-sourced.