About Kinesis

Running a one-man development company is not for the faint-hearted. If I'd known this back at the start, I might well have stuck with the day job but, after 10 years, I can honestly say it's been an rewarding experience that I wouldn't have missed.

Working on KineticFusion, my mapping research, and now KineticGrid has given me exposure to the many aspects of running a business, but has also allowed me to delve into a broad range of technologies. Making quick business and technical decisions, following how these decisions have impacted weeks and months into the future, and seeing how these choices have impacted clients, employers and the products themselves have been revelatory.

Some examples of areas I worked on when developing KineticFusion are:

  • Reverse engineering of SWF format and all later SWF versions
  • Reverse-engineering of compiled ActionScript 1.0 and 2.0 using complex pattern-matching algorithms
  • Parsing embedded media such as JPEG, GIF, PNG, WAV, and MP3 for storage as external resources
  • Creation of full optimised SAX architecture for the RVML dialect
  • Creation of font parser for TrueType fonts and media parsers for images and MP3s
  • Writing of a full AS2 parser, semantic analyzer and code generator from scratch using ANTLR
  • Development of a stateful ActionScript compiler capable of very fast (sub-second, even back then!) recompiles of large class hierarchies
  • Designing and documenting of a server-side architecture and API for easy integration into a server side environment
  • Designing architecture for extending RVML with user-created tag libraries.
  • Creation of a simple, fast, and efficient Java Swing UI for interactive execution
  • Creation of Java-only and Windows NDIS installers with several NDIS extensions
  • Full automation of all builds compiling source-code, generating documentation and SWF examples, and packaging into both windows and Java installers
  • Optimization and obfuscation of Java Jar code using Proguard and bespoke Proguard extensions
  • Design of local documentation storage in XML, and generation using a combination of XSLT and Java DOM transformers. These were used to generate 3 different documentation sets for Developer Edition installation, Server Edition installation, and for online use.
  • Design and implementation Java Licensing
  • Encryption implementation in both Java and PHP
  • Creation of web-based automated PHP license generation
  • Creation, and management of content of dynamic HTML and PHP used for web pages
  • Customization and management of online user forums and mailing lists
  • Integration of a full e-commerce solution into the web site
  • Ensuring that all support calls and mails were followed through with and closed
  • Responding to every sales enquiry
  • Bug-fixing, bug-fixing, bug-fixing...

Around 2007, I accidentally fell into UI development after years of C, C++, Prolog (3 years!), and Java. Around this time, Macromedia were open-sourcing the Flex library, Flash 9 and AS3.0 had just been announced and I moved from being a Java tools developer to, firstly, a Java Swing developer and then onto Flex in 2009.