CrossPoint


About

CrossPoint (www.crosspointapp.com) is IoT and smart device automation platform offering numerous integrations, a sophisticated rule engine and an easy to use interface. It allows users to use a single platform to control various devices throughout their lives to automate their daily tasks.

My Role

I joined a team that was well underway working towards a beta release. I took on various secondary tasks so that core team could focus on getting the project out the door. I developed an integration with Stripe payments platform for the webapp, both frontend and backend. I also built a marketing website for the beta launch.

Technologies used

Frontend work was done in Angular 5+ for both the webapp and the website. Backend work was done in Go (1.12) and PostgresSQL (9.2+).










4th Office

About

Client requested that prototype be a web application deployed as a destkop application that should also operate in web browser. The client app was to offer email and instant messaging capabilities. The client app was expected to work both in offline and in online mode and was expected to perform data synchronization via the proprietary API that client provided.

My role

Client requested that prototype be a web application deployed as a destkop application that should also operate in web browser. The client app was to offer email and instant messaging capabilities. The client app was expected to work both in offline and in online mode and was expected to perform data synchronization via the proprietary API that client provided.

I was brought on board to provide skills and expertise on following aspects of the project:

  • Architect the data layer of the client application in a way that is going to be browser independent and that allows for offline operation both as a browser and desktop based application.
  • Expertise on distributed system design, data replication/synchronization, etc...
  • Implement the data layer for the client app. This includes syncrhonizing metadata, text messages and binary objects.


My involvement was instrumental as none of the existing team members had previous experience with distributed, eventually consistent systems. During my tenure on this project I helped project team achieve all the above mentioned goals and helped prove that the concept is sound and feasible.

Technologies used

On this project I used following technologies:

  • node.js (Electron framework for destkop application).
  • Angular 2/4 as the web application development framework.
  • PouchDB for local meta-data storage.
  • RxJS for application logic.
  • Typescript programming language.

Adthena

About

Adthena is the only competitive intelligence tool that analyses your whole market with no keyword limits and no competitor limits. Dynamically monitoring your complete market landscape enables gap analysis with your main competitors and accurate Share of Voice trend reporting.

My role

I was brought on project to help with development of front end of the Adthena web application.

During my engagement on Adthena project I have, besides implementing a plethora of features, introduced a number of improvements to the architecture of the web application. Thus increasing stability, performance and development velocity for the front end application.

When I started my work on the project, front end was basically an extended prototype built using Backbone.js and jQuery. During the following six months I have introduced Marionette.js and abstracted away and DRY-ed up a lot of the often used functionalities of the application. I have also done away with the callbacks in the application and replaced them with a combination of jQuery Deferred functions and an event infrastructure for passing information between various application components.

Another important bit of infrastructure work is implementation of a GNU Gettext protocol for managing translations of text between different languages - this will save a lot of time and money that would otherwise be spent on supporting multiple languages.

Technologies used

On this project I used: Bootstrap, Grunt, SCSS, Handlebars.js, Backbone.js, Marionette.js, d3.js, Highcharts, jQuery, intecom.io and sinon.js

For localization stack I used: jsxgettext, po2json and jed.js, which allows Adthena to use standard GNU Gettext toolchain for managing translations.

Feedback

I found Janez a very able engineer, easy to work with and very communicative about implementation decisions.
-Shaun Russel, Adthena Product Manager




Ralph & Russo


A
bout

Ralph & Russo (ralphandrusso.com) is a haute couture fashion house. The project I participated on is a new website for that is online since summer 2014.

My role

I implemented the single page application (SPA) portion of the website. To archive that  I implemented integration between Wordpress CMS  and Marionette.js based single page application.

Technologies used

I have built the single page application using Backbone.js, Marionette.js, Coffeescript, Jade, SCSS and HTML5. The application layout is based on Bootstrap 3.



Buzzmove


About

BuzzMove.com is a British marketplace for removal companies and consumers seeking their services. The purpose of the site is to make the interaction between the removal company and the consumer as easy as possible.

My role

I was hired to help improve the fidelity of the Bacbkone.js based single page application for setting up the move and booking. And to help improve the site's user experience, since the existing team working on the project was more engineering focused.

I implemented some new user interfaces, introduced some Backbone.js best practices and refactored the key areas of existing code for better maintainability and to increase fidelity.

Technologies used

The application font end work I did was Java Server Pages (JSP) based, augmented with Backbone.js and SCSS.

Main application layout is Bootstrap 2 based.


Epek


About

Epek (epek.co.uk) is an on-line marketplace with superior user experience expressed through: clean and simple design, user friendly worklfows, excellent performance and first class support for mobile devices.

My role

I was hired to help with the development of back end and to supply know how from the fields of Software Development Lifecycle (SDLC), Internationalization (i18n) and Localization(l10n).

I did a lot of code cleanup and refactoring to better accommodate automated testing and continuous integration process that Epek envisioned. I also worked with the front end team on implementing new features, for which I supplied backend REST API services. I also implemented PayPal Adaptive Payments integration.

Technologies used

The backend REST API services are Google App engine applications implemented using Python and Golang.

For testing we used Selenium and Nose.

For development workflow we used Git Flow and nvie's branching model (http://nvie.com/posts/a-successful-git-branching-model/).

For continuous Integration we used Travis CI.

Online reservations system

About

Trilane online reservations is an on line booking system I have built. It features a simple user interface and workflow, users get SMS/email appointment reminders.

My role

I built and designed everything.

Technologies used

Front end is a JavaScript/AJAX application built using Backbone.js.

Back end services is a Django/Python application that is accessed exclusively using the REST API built with Tastypie.

Application dependencies and configurations are handled using Buildout, deployment and version management is handled with Fabric scripts.


PyNMEA

About

PyNMEA is an Open Source library originally authored by Becky Lewis. Its purpose is to provide serialization and deserialization of NMEA statements into Python objects.

PyNMEA is used as a component of the Wemar Nautipad application.

My role

I have expanded and enhanced PyNMEA library. I have added support for SEATALK protocol (via Gadgetpool USB NMEA/SEATALK Interface) and TMQ flavour of NMEA.

Visionect Geoffrey

About

Geoffrey is an innovative electronic menu and ordering system. Running on a proprietary EInk tablet developed by Visionect d.o.o.

It features a wholesome support for the restaurant/bar work flow life cycle. Browse the menu, add you selection to the cart and submit your order. Read news, check local events, see local weather forecast, review and request your bill. Everything is just a touch away.

Geoffrey's core features are tablet UI, business analytics module, integration with POS systems and a powerful WYSIWYG administration interface.

My role

I was the Senior Developer for the application part on this project. I either implemented or supervised implementation of all the functionalities of the system.

Technologies used

Front end is a JavaScript/AJAX application built using Backbone.js, CoffeeScript, SAAS and HAMLCoffee.

Back end services are Django/Python applications that are accessed exclusively using the REST API built with Tastypie.

POS system integrations are handled either via Geoffrey web services API or via proprietary middleware applications that bridge the POS system API and Geoffrey web services API.

Application dependencies and configurations are handled using Buildout, deployment and version management is handled with Fabric scripts.


Wemar Nautipad

About

Wemar Nautipad is an innovative marine instrument and marine bus proxy server. Running on a proprietary EInk tablet developed by Visionect d.o.o.

UI component can be used to display information from existing instruments or to control them. It enables control of  the autopilot using the tablet interface.

The server component has support for NMEA and SEATALK protocols and can be used to either control the existing instrumentation using the Nautipad interface or it can be also used to proxy commands between NMEA and SEATALK devices.

My role

I was the sole implementor and architect of the application for the first version of this product.

Technologies used

Front end is a JavaScript/AJAX application built using Backbone.js framework.

Back end service is a collection of REST web services, comprised of a multithreaded Python application and a Tornado web server. For persistence SQLite database is used.