Software Development

I am a Software development generalist with a heavy product and entrepreneurial experience and focus. I have some language preferences, but have used enough different languages that I learn new programming languages very quickly. I have been writing code since the age of 10, and since the age of 15 (1988) I was doing contracting work developing software.

I have been doing both hands-on solo development, been part of a development teams, managed development teams (on-site and off-shore), and done architecture and project management (of large scale) software products. In my different endeavors through-out the years, software development has always been a component and something I keep active and alert with-in (either as main focus in a new startup, or through side projects/products).

Development productivity, well structured (maintainable code) is important to me. I know that developer productivity can vary by an order of magnitude between developers, and know what to look for when building development teams.

I have done a fair amount front-end/client side, but prefer to build back-end scalable solutions with JVM based environments to build really scalable solutions, that scales horizontally.

Technologies and Buzzword Bingo

Some of the Technologies I worked with since 1990 include:

Programming Languages. Java, Javascript, C++, Shell Scripts, Python, some Ruby

Web technologies (Client). HTML5, CSS3, Sencha Touch, Sencha (ExtJS), jQuery, and some experience with other JS frameworks.

Mobile. iPhone, Android (some), Sencha Touch, Appcelerator, Java ME.

Java Platform & Frameworks.  Java, Java EE, Java ME, AWT and Swing, JNI, JMS, JBoss AS, JBoss Portal Server, IBM Websphere, Eclipse, Apache Hadoop, Apache Lucene, Apache, Hibernate, Seam, Play Framework, and more.

Semantic Web. I have built and prototyped semantic web solutions and used various frameworks mainly OpenRDF and Jena.

Payment processing. Setup and integrated payment processing in various solutions, with Credit Card gateways, Paypal etc.

Databases. MySQL, IBM DB2, Microsoft SQL Server, Apache Cassandra, MongoDB, Neo4J, OrientDB. Also built products/adopted products to a number of others (Oracle etc).

Scaling and caching. MemCached, JBoss Cache, EHCache,

Hosting & Infrastructure. Amazon AWS (EC2, S3, RDS, Simple DB), Google AppEngine, and various hosting providers in Europe and the US.

Operating Environments. Linux (very knowledgable), Mac OS X (very knowledgable) and Windows and major past experience with AIX, SGI Irix and Solaris. Plus some old obscure legacy ones.

Projects (selected)

These are some of the projects I have worked on:

Startup website & Payment system. Built a simple website for a new startup in the Bay area in Java Play Framework, included front-end and back-end for managing customers, sign-ups and credit card payments (with integration to Stripe).

Distributed in memory Graph Database. After working a bit with Neo4J and few other graph databases for the Knowledge Engine (below), I realized I needed a more scalable in-memory database to accommodate the desired data/transaction volume, scalability and performance.

Semantic Knowledge Engine. Built a semantic knowledge engine in Java to be used for a few projects. It crawls data sources and turns them into a triple-based (RDF like) semantic knowledge graph, that can be queried in real-time to quickly build-reports and visualizations and drill-downs into the data.

LinkedIn API (alpha). Turns out there are no great Java API libraries for the LinkedIn API, so built this for a project that I worked on. Plan to open-source this in the near future.

URBANiGO – Mobile Social Discovery Platform. Developed the native application for the iPhone for the product, and a Web based version of the mobile application that runs on mobile touch devices (iPhone, Android). Developed the back-end application in Java and Play Framework for a mobile Social Discovery platform that interfaces directly with Facebook.
Read more →

VOIP Platform. Built a Product stack consisting of a SIP switch (based on Asterisk), and billing, payment, service and management layers in Java. The platform is an scalable end-to-end solution for running a Google Voice (or GrandCentral) type of service.

Orange Mobile Services Platform. Developed part of the platform in Java, later on created the architecture and assembled the development team for the Portal Server (Websphere), CMS (Interwoven and custom) part of the project. The project consisted of a team of aprox 100 members, with a budget of aprox EUR 50M.

VIOMA Media Manager. Created architecture and initial code base, and setup and managed development team to build a distributed Media Management (add-on) product on top of VIOMA Content Manager, that seamlessly interfaced (and replicated media) across large scale deployments of standard streaming servers. Primary target where VOD services for Cable networks and Teleco’s.

VIOMA Content Manager & Integration Server. Enterperise Content Management and Data integration platform. Founded the company around my product idea, and I created the architecture and developed the initial code base for the product line, including a XML database engine, data integration and transformation. Product was built in Java, built and recruited development, Q&A and documentation teams for scaling up product development.

Learning Management System. Designed and built the first Internet based LMS system deployed in Sweden in 1997. Built using various technologies (Java, C++ and Lotus Notes) and run distributed with (on and off line) with data replication between servers and clients.

Winix Groupware. Was part of the development team that built a Internet based groupware solution in 1992, before graphical web-browsers. It consisted of a UNIX based back-end, and Windows based front-ends, and written in C++. Worked mainly on Terminal emulation and scripting language engine.