Information

Przemysław Kamiński

Software Engineer, PM

10+ years of IT experience. Most on software engineering position with quite a bit of management experience.

Technology agnostic; jack of all trades. Love working both with IT and the business-centric challenges.

Right now hyped the most by Elixir and Emacs.

Current status: Looking for work_

Check my resume:

RESUME

FIND ME ON:

Samples

Portfolio

~ Disclaimer ~

Following list of projects isn't 100% complete compilation of my works. Some I forgotten, some I found too boring to list, some was just ordinary, prolonger bugfixing and testing stuff. List is semi-chronological. I tried to keep chronological order, but some of the projects start and end are blurry, overlapped or just couldn't recall it.

Voxcommerce Group sp. z o.o. Projects

Biuranet.pl

General Role: Developer

Technology: PHP, Cms2, Smarty, XML, jQuery

Biuranet.pl is an realestate website with focus on the rental of the commercial spaces.

Continuous (out of project) works included standard maintenance, bug fixing and incremental changes ordered by the client.

Filesystem Media Distribution

Role: Sysadmin

Media for Biuranet was kept in a single directory. After a years of successful operation it turned out there were few hundred thousands of leftover media, which was too much for filesystem to handle.

The project was to redistribute files inside the filesystem in sensible way and reconfigure media handling inside application to conform to the new structure.

Search engine rework

Full rework of search engine to adhere to the new business rules. As previous system couldn't be extended further project included re-implementation of search engine from the scratch and integrating it into existing website.

Import management

Biuranet.pl received a lot of imports from different sources. Some of them deviated from offer standard they used and had to be implemented on source-by-source basis. Project goal was creating the framework for per-source data decorators and a implementation of few such decorators.

Metrohouse S.A.

General Role: Developer

Technology: PHP, Cms2, Smarty, XML, XSD, jQuery, MySQL

Continuous works included standard maintenance, bug fixing and incremental changes ordered by software owner as well as maintenance of Metrohouse's database servers.

Initial frontend rework

Role: Sole developer

The project started at the point where any visual changes to a Metrohouse.pl website were unfeasible due to view code being present in the logic structures. Its goal was to separate this visual code in a shared Smarty templates.

Frontend SEO URL Rework

Role: Sole developer

Project goal was to change the way how offers was displayed. Due to complexity of realestate market, previous offer presentation was contextual and based on the search. Role was to clearly identify offer to present (without need for the context), display it and make sure offer identifier is the only thing that was presented in the url.

MSSQL -> MySQL migration

Role: Lead

Metrohouse S.A. had an issue with Microsoft SQL databases which shown various anomalies. Company's management decided to outsource it to Voxcommerce Group sp. z o.o. My role was to verify feasibility of such change, doing test run, recommending hardware provider for servers, migrate the date and transition systems to new DB backend.

Import management

Role: Sole Developer

Metrohouse backend system and frontend systems were separate and required data import/export in order to sync the offers. Those exports were usually big (>1GB) and contained XML definition as well as media data for offers.

My responsibility was identifying the cause of failed imports and either bugfixing importer or providing bugreport for exporter. It was done through self-developed toolkit which could rapidly identify issues without parsing (or even reading) full import file.

Yelloow (work title)

Role: Lead

Yelloow was a realestate website for offer search/presenting. My role was to rework data model used in the backend to conform to modern realestate data set requirements (more compatible with set data standards in industry).

E-mail based CRM

Role: Lead

Technology: Perl, Python, Linux, Postfix

Project goal was to provide such plugin to one of developed CRMs, that would completely track client interaction and business flow solely from e-mails.

Main challenge was preparing and keeping sample database from different e-mail clients and providers as well as complete test codebase, so that parsers and writers could be extended without producing regressions.

Infrastructure Management

Role: Sysadmin

Technology:Perl, Shellscript, Linux, Munin, Zabbix, Apache, Nginx, MySQL, PostgreSQL, jQuery, Debian, Ubuntu, VPS

Upkeep of Voxcommerce Group sp. z o.o. 6 Linux servers.

Continuous work: performance monitoring, reliability monitoring, backend fixing

ETargi

General Role: Senior/Sysadmin

Technology: PHP, Zend Framework, PostgreSQL, jQuery

ETargi was a virtual exhibition system designed initially for Realestate.

Continuous work included development and release management.

Search engine

Role: Emergency Lead

Shorty before official launch of the application major problem with search engine was found. The team was unable to fix it after few iterations so I was given the role of setting up a team and fixing the issue.

The project consisted of full architecture analysis, plucking the old search engine and designing/implementing new one on very short deadline.

Data importer workflow optimization

Role: Designer/Lead

Data import was taking a huge chunk of team size, often taking few days to fix even minor issues. My role was to identify the issue and fix it, which resulted in 2-weeks microproject, during which new, contextless import mechanism was designed and developed.

Homebroker S.A.

General Role: Developer

Technology: Linux, PostgreSQL, PHP, SOAP, jQuery, Prototype.js

Homebroker is one of the biggest realestate agents in Poland. My involvement was around backend systems: CRM, DBMs and - later - with the data export functionality.

CRM Recruitment module

Role: Sole Developer

Development of recruitment module, which would handle all steps of recruitment, from landing page with candidate data entry, trough multi level evaluation till the paperwork needed for candidate to start the job.

CRM Payments/Invoices module

Development of Invoices and Payment module. Project goal was to provide automatic payment processing (through bank integration) and lean Invoice generation along with polish-law required invoice related features.

CRM Target module

Role: Developer

Complex module created for staff goal tracking. It gathered the data throughout the system using complex rulesets while providing additional information such as projected progress or expected money flow. My role was designing to design ruleset framework as well as implement rules based on business documents and provide the data dashboard for system users.

CRM Application generator

Role: Senior

Module which role was generating finance documents based on the given conditions and data available. Project included analyzing and providing framework for more then 150+ different finance, investment and loan application template, implementing those application templates and making sure they are properly presented and branched (due to tree-like structure of document dependencies).

Export System

Technology: PHP, Zend Framework, RabbitMQ, PostgreSQL

Role: PM/Senior

One of the Homebroker's daily activity was preparing data export for partner. As often those exports were enormous in size (sometimes exceeding multiple GBs) they were rigid and slow to generate.

Goal of the project was to provide system that would be able to shorten processing time while giving flexibility of a modification of entity on per-offer per-import-target level.

My role was full setup of the project, including cost, budget and pitch for the client, up to the design of the final software and partial implementation.

Magazyny.pl

Search Engine

Technology: Python, Django, PostgreSQL, PostGIS, Flash

Role: Designer/Senior

Project goal was to provide search capabilities that would extend over competitor products and included, for example, search with logistic network or warehouse grid search parameters, as well as many other features.

My role was to provide design of those features as well as support the development team in implementation.

Content Disperser

Technology: Python, Django, Javascript

Role: Senior

Client wanted to launch number of landing websites that would lead to common endpoint, yet which wouldn't be recognizable as the same website by search engines. Goal was to prepare content editor that would allow for content versioning and website launcher that would allow to launch such content-flavored websites.

API communication

Role: Designer/PM

Technology: Python, Django, REST

Designing API for communication between the site and external systems. Designed communication, security layer as well as versioning mechanism for future development and led the development team throughout development process.

Freelancing Projects

SMS Gateway

Technology: Rails, jQuery

Role: Developer

Simple project that required reintegration of existing SMS gateway into client website.

Society Age Visualization Tool

Role: Developer

Technology: Angular.js, D3.js

The project goal was to provide custom UI elements, that would allow simulation of various effects on society in real time. My role was both to design the UI elements (architecture and UX-wise) as well as full implementation when greenlit.

jQuery Carousel Plugin

Role: Developer

Technology: jQuery

Client required Carousel plugin that would give them customization possibilities beyond what was possible by available plugins.

Data parser

Role: Developer

Technology: Node.js

Client required data parser for shopping aggregation website, requirement was Javascript-runnable parser. Designed/developed framework for rulesets and implemented ruleset for given examples.

WeWantToKnow AS Projects

Internal games portal

Role: Sole developer

General technology: Rails, MongoDB, Redis

Project was a web application which allowed end-users to play web versions of the selected Dragonbox games as well as provided additional features for educational market.

License management

License management sub-project. Project goal was to provide license management for games available on the website, including, amongst many: trial license, license re-new and expiration, license merging, generation of license consumption tokens, license arithmetics and more.

Feide integration

Technology: SAML

Integration of Feide, Norway's edu identification provider with the license system using SAML (with partially self-made implementation due to library not fully implementing standard).

School management (class/teacher/school)

Role: Sole Developer

Technology: Rails, Angular, D3.js, Alloy

School management for educational users, providing a lot of advance data model manipulation such as: class management, class promotion, student and class transfers, virtual classrooms, workgroup support and substitutions.

Progress reporter/tracker

Technology: Rails, Angular.js, D3.js

Tracking and presentation of educational goals. Project main challenge was to provide "algorithmic adapter", that would allow to recognize student's progress in the game, map it to the goal based on provided edu documentation and present it to end users (mostly teachers) in digestible form.

Savegame syncing

Technology: Rails, Alloy

Goal of the project was to provide save state syncing with big emphasis on edge scenarios, such as multi-device, account sharing, data clashes etc.

Account management

Technology: Rails

Account management system for edu users with different set of features for different user types (e.g. access to games for students, access to class management and reporting features for teachers)

Educational Report System

Technology: Redis, Sidekiq, Rails

Role: Sole Developer

The goal of the project was to provide educational insight for the parents (or guardians) of the game users. System would recognize current state of the player based on performance, progress as well as time (and other extra-game data) and then send personalized report to the player's guardian.

Wordpress instance maintenance

Role: Sysadmin

Project goal was to ensure versioning on the Wordpress instance so that changes could be rolled back in case of human error or system failure.

MongoDB legacy app migration

Role: Sysadmin/Developer

Technology: MongoDB, Linux, VPS

One of the MongoDB provider for legacy app updated their architecture without properly notifying database owner. As application was legacy, the DBMS was old and impossible to setup on any modern system. The goal was to setup DBMS and match the libraries so that the system could be kept running.

Dragonbox Account Manager

Role: Designer/Developer

Technology: Rails, OAuth2, Devise, Doorkeeper, PostgreSQL

Goal was to provide end-users with a simple account system so that they could use both existing and future services with only single set of credentials.

Dragonbox Data Analysis

Role: Designer/Developer

Technology: Shell script, R, Ruby, MongoDB

The goal was to provide insight in the usage of the games based on held data. Project was to extract data from existing, external data backend, prepare for processing and then provide set of algorithms to provide visual feedback on findings.

Family Friendly Social Network (Prototype)

Role: Developer Technology: OAuth2, Ember.js, Rails, AWS (Content storage)

Prototype project with the goal of testing idea of a family friendly social network.

Dragonbox CMS

Role: Senior

Technology: Rails, PostgreSQL, S3 + Cloudfront, Heroku

Goal of the project was providing a web development team framework that would allow them to set up front end applications easily.

Binary size shrinking of Dragonbox Big Numbers

Role: Sole Developer

Technology: Unity3D, C#

Initial goal of the project was to externalize used voice packs for languages. Mid-project analysis shown that externalization didn't provide expected effects and project was turned around with strict focus on decreasing size of the binary, which was done by troubleshooting and fixing size-related problems.

Dragonbox Data Collector

Role: Sole Developer Technology: Ruby, Sinatra, Elixir, Phoenix (later), Heroku

Goal of the project was to provide lean data collector for the games. Initially done in Sinatra it turned out that ready app on Heroku didn't provide expected latency. During exploratory phase Elixir version had been made, which proved to be much more proficient and stable,

Release process maintenance

Role: Substitute

Technology: Fastlane, XCode, Release Manage

Substituting for a person responsible for a game release management process. My responsibility was to move game development trough multi-step processing pipeline to a moment of release on storefronts.

Dragonbox Common Account Services

Role: Lead

Technology: Rails, Google Apps

Few apps with the goal of providing different services for Dragonbox Account holders, such as newsletter management or educational signup.

Dragonbox Forum Project

Role: Lead

Technology: PHP, Ruby

Goal of the project was setting up community for education workers associated with WeWantToKnow. General idea was to setup any kind of forum, but integrating it with existing account structure.

First, PhpBB backed project was rejected by client, second - Ruby based project was setup.

Declarative document transformation

Role: Developer

Technology: Elixir

Little project with goal of transforming multi-dimensional document into flattened record form. Written in Elixir so that instead of DOM or SAX-like parsing, declarative transformation are used.

Dragonbox Core (+Dragonspeak)

Role: Lead

Technology: Rails, Ruby, RubyGems, git, Heroku

Redesign of the architecture of Dragonbox Account and accompanying services, so that it takes form of the common core and microservices linked through protocol named Dragonspeak.

Dragonbox Teacher Enrollment Program

Role: Lead

Technology: Rails, Ruby

First microservice based on Dragonbox Core architecture, backed by Dragonspeak.

Dragonbox License Manager (Login Access)

Role: Lead

Technology: Rails, Ruby, Ember.js

System for managing software licenses for Login Access marked products. It consisted of two parts - Backend management system for license generation and management and internal license manager as an gated access for software products.

Dragonbox License Activator

Role: Senior

Technology: Rails, Ruby

License consumption service. Main challenge was to minimalize number of interactions required in spite of multiple entry conditions and outcomes possible.

Uplift

Role: Lead

Technology: Unity3D, C#, XML/XSD

Unity3D package manager. Goal of the project was preparing package manager, that could work seamlessly with Unity3D, while being easy to integrate with CI solutions and providing possibility of using directly from command line (thus increasing possibilities of automation).

Project is using Unity3D editor internals and some undocumented features in order to achieve desired behaviors while, at the same time, having to work around closed features.

Internal projects

Card Presenter (available at iOS App Store)

Role: PM

Technology: Swift, iOS development

We needed small utility, that could present electronic business card for prolonged periods. As nothing like this existed we decided to do something like this internally, while seeing what's the fuss about Swift.

Seyph (available at iOS App Store)

Role: PM

Technology: Unity3D, C#

Testbed project to make sure we can create game project from start to finish. While gameplay is rather simplistic we decided to add some engineer features and polish them to a gameplay level quality, such as: level generators, transitions or asset themes.