Career Profile
I’ve been programming since I remember. I turned my passion into work. Experience has taught me that technology is just a tool. But I like my tools: Ruby (programming language), Ruby on Rails (backend development framework), Linux. I share my knowledge and experience. I’m a mentor at CoderDojo and at the Rails Girls workshops. I participate in conferences and local IT meetings, and sometimes, I present a technical presentation.
Projects
Internet applications that I have worked on. Some of them may have already been turned off. Not all startups are still available on the market.
Experiences
Instead of creating websites for local clients, we started to implement long-term projects.
Initially, we worked on the casino online. We’ve built games like slot machine (fruit machine), American poker, Blackjack (Twenty-One), American style roulette and French/European style roulette. The application had a management panel for moderators, which allowed to check the entire history of games played. My tasks in this project included prototyping and technical decision making, architecture design, refactoring and performance optimization, integration of individual modules, deployment, team management and customer contact. The project was written in Ruby on Rails with elements in JavaScript. We used animations based on sprites and CSS3. The whole app was well tested in RSpec and Cucumber with Selenium.
In the meantime, we were implementing a web application to manage ideas called hitdea. I was responsible for designing architecture and implementation, managing a team of a few people and translating business requirements into technical tasks. As DevOps, I was also involved in building and developing network and system infrastructure as well as deployment of Rails applications to production. Acting as the CTO, I participated in key business meetings for this startup (San Francisco, Los Angeles, New York, Miami).
During the end of the first version of the application we received feedback about the need to build a mobile application. We decided to divide the monolithic architecture into microservices and at the same time build a frontend that communicates with the backend via the API. Thanks to the use of Ember.js as a frontend framework and PhoneGap as a mobile development framework, we were able to quickly implement a mobile application. Although, a second, working version of the application was created, it has never been used in production. In retrospect, I consider the decision to build microservices as erroneous and premature.
There were also many other applications in which I had my share. I created contextual advertising management application in Ruby on Rails. I co-created a system of linguistic analysis for Polish and English based on 6 million words and Solr search engine. I worked on linguistic games built on Ruby on Rails. I must also mention such web applications as FutureLearn, SelectHub, purpura, or nopaperwork.
As a programmer, my main task is to deliver well-done products. I like my job and my company. I am always open to work as a consultant, contractor or freelancer.
I decided to become an entrepreneur and together with a friend I founded a small interactive agency. We implemented simple projects for local companies. We focused on providing websites, online stores and small applications in PHP. For web projects, I used PHP language, Smarty template engine, MySQL and PostgreSQL databases and Magento eCommerce platform. In addition, I participated in the design, preparation and implementation of the embedded system for gambling machines. The embedded system built by our team was called FSL4G (Fractal Soft Linux for Games).
I dealt with both internal and external projects. I belonged to a team of several people writing in Java, specializing in the implementation of GUI. Depending on the affiliation to the project and the project team, I used different Java versions and required technologies. One of the projects was a SCADA (Supervisory, Control and Data Aquisition) class system called OpenEye SCADA. It was a product for monitoring and management of industrial infrastructure. I achieved a module to monitor the activity of web servers. I have created the following functionalities:
- query generation
- impersonating the device
- proxy connections
- response analysis
I also worked on the CallMax project. It is a Call Center / Contact Center tool used for communication between the company and clients. It enables the introduction of standards and optimization of telephone conversations, electronic correspondence and SMS messages. It’s used for mass service of business partners and individual clients.
I could develop my programming skills as well as knowledge in the field of network security and operating system administration.
I worked in a team that created DxDesigner - schematic editor for electronic schematics. This software was designed to assist designers in designing electronic diagrams, optimize their work and minimize potential design errors. I was responsible for the development of a solver based on logic programming. Most of the program was implemented in C++ using the Boost C++ or Qt libraries. The solver was realized in the language Prolog (Logic Programming Language).
Skills & Proficiency
Nobody but the creator knows 100% of the technology. The more we deepen our knowledge in a given field, the better we realize what we do not know yet. This is my subjective assessment. I have taken into account the technologies that I like and in which I feel good. If there is no technology here that is needed then I will be happy to learn it.