These are some of the applications I've built
Cross platform parental control system (network filter) for schools (client-server, for OS X and Windows, TDI and NKE drivers on the client side and a GUI admin tool on the server side, custom drawn UI). The client part performs filtering of the network traffic. The server app contains an embedded Web server that blocked requests are redirected to.
Dash cameras management software for OS X – downloading video recordings and sensor measurements from camera devices, representation of lots of chunks of recorded video data as a single video stream in chronological order, video playback and video navigation, displaying vehicle position using Google Maps API based on NMEA data recorded by a camera's built in GPS receiver along with the video playback, displaying graphs of accelerometer recordings, cameras preferences, custom drawn UI, custom UI controls.
Tech details: QTKit
Antivirus Software for OS X
Although the application wasn't developed from scratch, and the project didn't involve UI design, were done
Data recovery software
A Qt-based Windows application for recovering data from damaged partitions and drives.
The application is able to restore data from damaged filesystems (FAT, exFAT, NTFS, HFS+, Ext/Xfs/Reiser, BSD UFS, VMFS), search for raw file data on the hard drive by byte signatures, search for partitions by their signatures on the whole drive, securily erase deleted files, clone drives, partitions and disk images.
The application wasn't created from scratch: it is based on several single partition type-specific existing applications (which were non functional with major stability issues at the time). The task was to merge these applications into a single one, create an API facade for existing low-level libraries, fix the problems they had (memory corruptions, crashes, being unable to recover data), implement a new modern-looking user interface.
Used technologies: Qt, Windows API, various partition-specific datastructures.
A Russian language one-on-one anonymous chatting application, that connects the user to a random stranger.
It doesn't require a sign up. The chat starts immediately after the app has been launched, and a new conversation with a completely new stranger starts with a simple swipe gesture.
Initially the chat keeps the user anonymous, unless he decides to tell the stranger who he is.
After the conversation has finished, the app helps the user to publish it on his VKontakte (russian Facebook) wall. The application supports Night (dark) and Day (light) visual themes.
Chat for Two allows to share images between users. When the picture is taken (from a camera or an iOS library), the app uploads the picture to an anonymous image hosting site. After the image has been received by the correspondent, the picture is removed from the hosting site automatically.
A printer driver for Energenie E-Paper printers (e-ink devices) for OS X (CUPS backend, CUPS filter, CUPS GUI Pane, a GUI/USB devices managing agent). Sending and receiving documents to and from a USB printer device, sending/receiving documents to and from a cloud server (when a USB device is not connected the documents are being “printed” to the cloud server, until the printer is connected again), auto-updating firmware on the device and software on Mac. Integration with Finder (context menu item for direct submission of documents and firmware files to the device). Tech details: CUPS filter, backend, agent, daemon
Ascent h1 driver
An OS X application for managing a variometer device (a wrist latitude meter for paragliders). Downloading/uploading GPS measurements over USB, generating latitude reports, displaying battery level. Custom UI design). The window becomes colorful when the device is connected.
The application uploads pilot information to the device, automatically checks for and installs firmware and software updates, generates IGC files with secure record (a kind of a hash value based on the file contents) to prevent them from altering before uploading to the competition websites
The users can upload these IGC files to specialized websites to take part in competitions.
Video Slate adder
An application that adds an intro slate to ProRes video files, showing various parameters of the video
Application for managing a DMX controller device
A PIC32MX-based USB device acts as a programmable DMX controller (DMX is a protocol for controlling lightning fixtures, fog/haze/snow/bubble machines on a stage). Completely designed and implemented an OS X application for programming this device. The application allows editing database of fixtures and libraries of fixtures in a Contacts-like UI, presents DMX fixtures on a scrollable Calendar-like view, whose cells correspond to various DMX channels (different fixtures are shown as "calendar entries" with different adjustable colors), programs DMX Cues, Loops and Arrays on the device. The application interacts with the device using USB CDC protocol (regular communication mode), and uses USB HID to interact with the controller's bootloader (firmware upgrade mode).
Application also allows importing fixture database files and has extended drag&drop functionality
Used technologies: IOKit, CoreData, Heavy OS X UI customization and custom UI controls, UX, USB HID, USB CDC interacting with a PIC32 controller, PIC32 MPLAB toolchain, PIC32MX USB Starter Kit board II
A context translator for OS X
An OS X application for translating the text that the user has under the "mouse cursor". The text can be anything - a selected piece of a paragraph in a text editor, a button title or a title in a system menu.
The application also allows replacing the currently selected text with the translation with a simple keystroke. It was specifically designed to be as easy to use as possible.
PDF Georeferencing application for OS X
An app that allows to figure out geographical coordinates of arbitrary points on a map (supplied as a PDF document) based on several known anchor points. The app manages a database of these known points (loads them from an input CSV file)
A Plugin for Apple Mail.app for uploading messages onto a cloud server (reverse engineering of the undocumented plugin API).
Audio Unit for MainStage
A MIDI FX Audio Unit, that loops incoming MIDI messages for a specified number of bars. Designed an AU View and AU Kernel. The AU Kernel can memorize played notes with the MIDI keyboard and rearrange them.
Smart light keyboard driver for OS X and Windows
Cross platform user-mode keyboard driver for multiple-layout keyboard. This keyboard has several layouts on its keys, which are shown on the hardware keyboard only when the appropriate layout’s lights are on. The application watches key presses, and changes layout when a “switch layout” key has been pressed, highlighting a corresponding layout on the keyboard).
Accessibility tool for entering text into active application's window using neural sensors for disabled users with limited mobility (Windows, MFC, GDI+, C++). A semi-transparent non-active virtual keyboard, whose rows are highlighted one after another each second. After a signal comes from a neural sensor, the row is selected, and columns start highlighting the same way. After a second signal comes from the sensor, selected character (intersection of the selected row and column) is being input into the active window.
Power Manager expansion for Windows
Electricity metering and accounting application (Windows) – reading measurements (Voltage, Power, Current, Frequency, Impedance) from the power metering devices connected via LAN, WLAN, USB, building graphs of these measurements, calculating statistics, controlling remotely electrical sockets of programmable surge protectors (Energenie PMS/PWM devices). The application hasn’t been developed completely from scratch.
A barcode scanner driver for OS X that exposes a SOAP web-service for a web front-end (provided by the customer). The application downloads scanned barcodes from connected barcode readers (USB CDC devices) and allows a web page to read this data. Developed a device driver, integrated an embedded web server and a soap engine into the application.
Emergency signalling clientThis application is an OS X client for signalling emergencies. A special device is connected to signal the application that a threat has occured (the app "raises an alert"). After that the application notifies the server and allows the person who raised the alert to communicate with the other clients of the alert system. The server, depending on the configuration, places automated calls, and sends SMS to responsible people.
Photobooth for OS XAn extension of an application that works with sensor screen on Mac. Allows taking photos, sharing captured images and printing them for different users. Also deferred uploading of the images with the server (when the network connection is bad/not available), photosharing using SMS (using an external GSM modem), E-mail and Twitter (using social sharing APIs) I didn't develop this application from scratch, however I've done a lot of the enhancement, including UI. The app presents an onscreen keyboard for entering text and phone numbers.
Designed an electric circuit for controlling a motor and programmatically dimming LED strips (based on an Arduino board), integrated it with an OS X application, redesigned and restructured the OS X app.
A forex application. Downloads from a server trading signals and visualizes them on a table and on a rotating Earth (The signals are represented by colors. Bright red - strong sell, red - sell, green - buy, bright green - strong buy, grey - neutral).
“Yuriy did an excellent job. He was quick and very professional. We will definitely use him again and recommend him to others.”
“Great developer! Everybody in our company is very happy with his impressive work.”
“Took the time to understand exactly what the requirements were and worked through unexpected issues. Delivered precisely what I needed!”
“Yuriy did an excellent job, and delivered exactly what we wanted. There were a few delays (caused completely by my company), and I was very impressed with how Yuriy followed up on the project and was able to move forward despite the lack of clear and complete answers from our side. I would definitely recommend his work, and he will be our first choice for future mac software development work.”
“Fantastic job, reliable and responsible programmer!”
“Yuriy did a great job. He understood exactly what we needed. He did more than we asked for and we will definitely use him again for coming projects.”
“Yuriy will complete your project faster than anyone else on this platform and will provide quality code. If he's available you should hire him. He will learn anything, create anything, and fix other peoples bugs all in short order and a professional manner. He'll even provide a roadmap for after his involvement”