Platform for collecting computer vision training data

I’ve been hired by Emotient to implement and manage a platform that allowed collecting images and their annotations. Annotations included location of people’s faces, location of facial features, head’s 3D orientation, people’s demographics and — importantly — their emotional states. We employed thousands of Mechanical Turk workers and a few Facial Action Coding experts to enter this data for a couple million images.

We enforced quality control on the annotations and had rules to aggregate opinions of multiple workers. The data was later used to teach deep learning networks. The collection platform which was created using Ruby on Rails and MongoDB provided APIs for use by the machine learning team and also interfaced with the trained neural networks to focus data collection on images that made the computer struggle.

Digital store and license manager

Flux Inc. store allows customers to purchase and download software; manage their licenses by activating and deactivating installations; create teams of employees who have rights to activate installations using shared pool of licenses purchased by their company. Internally at Flux Inc. this website tracks trial downloads and allows salesmen to follow up with prospective customers to help them with the setup at their clinic.

Cardiology Clinic Paperless Environment

Innovative system for paperless patient service. It automates a lot of tasks indirectly related to performing studies. The implemented system books the patient appointment, prints a study passport, feeds the devices work-lists, serves as a gateway to a medical image management system. It automatically faxes the study results to referring doctor and sends a billing claim to Ontario Ministry of Health.


Web application helping with production of short voice-over clips. Beside registering an order from the customer and handling payment it coordinates the work of copy writers, voice artists and the quality assurance team. It automates the workflow of different team members and simplifies resource sharing. Provides a communication system for the staff and the customer. All this makes it possible to deliver high quality copy and voice-over at extremely competitive prices and in less than 48h since the order placement.

Support Chat System

I was tasked with preparing a support chat application which the clients access through a web interface and the agents answer help requests with a desktop application. The project, at the time, was interesting from a technical perspective. The communication was done through a JSON interface which allowed the web client to be a simple JavaScript application. It used long polling technique to avoid unnecessary HTTP requests while providing real-time responses. Desktop client was written using Qt Framework which allows agents to use whatever computer they have at home (Mac/Windows). Support requests are queued and assigned to agents based on required skills. Scalability was a major requirement so the servers were designed to work in cluster.

Remote Office Center

This was my first Ruby On Rails application. It allows small companies to reduce their office and accounting costs by outsourcing those responsibilities. The application provides means of effective communication and data exchange between remote office clients and the service staff. Features include documents and contacts management, call logs and basic accounting services.

For this project I was hired by an IT consulting company JSG Jan Grabski.

Call Centre Metrics Platform

Web application that calculates and visualizes effectiveness of a call centre. Beside presenting the information about particular employees it measures the quality of client service as a result of work of the whole team. It forecasts an optimal agents count for a per-hour schedule and provides an interface to prepare such schedule for the team.

Yellow Pages Manufacturing Scheduler

Web-based planning application that helps YPG employees keep track of key events in the publishing process. The tool gives instantaneous view of changes in the schedule. Provides personalized calendars that display only information relevant to a given organization unit. The schedule is generated based on calculations defined using a language created and tailored specifically for the purpose of this project. It makes it easy to arrange and update interrelated events.

Back home