I am a front-end developer with twelve years of experience, including three years in information security.
As a teenager, I was interested in game development, OpenGL graphics and demoscene computer art subculture.
This led me to BSc in Computer Science and later my interest evolved towards front-end web application development. Over the years I have gained some expertise in back-end languages such as Python and Ruby.
I have spent the last three years in information security working on all aspects of IT security, including cloud security, incident response and infrastructure recon. I have assisted the dev and devops teams in web applications security. This was an interesting experience and I have developed a unique set of skills well outside of the typical range of skills in a dev team.
I have a keen interest in working with the team and communicating with people. I am self-motivated and determined to solve problems, and I will look for the information I need to accomplish goals.
I love to work with well crafted, testable and secure code and have a great time doing awesome visuals. It has never been easier to develop web applications!
Most of my technical skills are in front-end, while back-end has been secondary so far. I have also picked plenty of infosec expertise, but these skills are either too general to list here or tool-specific. I do not want list tools used by previous employers for security reasons.
Back-end Python, Ruby on Rails
Databases PostgreSQL, MySQL, MongoDB, Elasticsearch
Linux Ubuntu, Red Hat
Code control Git/GitHub, SVN, Perforce
Processes Familiar with agile process and test driven development
Visualization OpenGL/WebGL, FusionCharts, HighCharts, D3, Raphael.js
Graphics Gimp, InkScape
I have started Offensive Security Certified Professional (OSCP) certification and have finished two months of labs. I am planning to take the exam by the end of the year.
Scrap value of hacked computer
A presentation about the value of hacked computers and ways criminals monetize them. Presentation is coded in HTML/CSS and JS. There is no single image, all visuals are pure CSS. To see all presentations visit my GitHub presentations repo.
RC model flying
This is a presentation about my hobby - RC helicopters and drones. It was a very interactive session which attracted a wide audience. Agenda was unnecessary, as we jumped straight into Q&A almost immediately ;-]
Password security presentation
A presentation about security I created for my colleagues in Amdocs. Password security is very important but often disregarded, so I shared took the opportunity to share knowledge.
Secure passphrase generator based on 60k words English dictionary. It is a stronger version of Diceware passphrase generation method. Entropy estimations for a passphrase as well as classic machine-generated passwords are provided for comparison purpose. Words are generated by the client in JS and there is no communication with the server other than JS/HTML and dictionary file download.
Introduction to Webstorm
A presentation about JetBrains Webstorm - excellent IDE for front-end developers. I truly believe one has to master own tools before can archive real magic. Webstorm is my tool of choice and I really love it! ;-]
I made a set of wireframes as a proposition of mobile-friendly version of Snapshot Serengeti page. It is one of the awesome projects hosted by Zooniverse. I am not an author of the original project. I have only optimized navigation and rearranged the layout to be more responsive. A lot of people spend hours every day travelling to work and back home, so it is important to let them do science on the go!
I have created wireframes for Chronos weekend project in Amdocs. It was a pretty interesting initiative and we had planned to deliver an awesome piece of software and replace the corporate holiday tracking system. The existing tool was software equivalent of torture chamber ;-] From a time perspective, it was little too optimistic for such a project to attract enough attention and ongoing effort to result in a minimum viable product (MVP) and have it integrated with the rest of corporate suite no matter how horrible. Although, we could give something back to the community and open-source it.
I have used wireframe toolkit from eleqtriq.com
My implementation of the force-based algorithm. Physics! Did I mention I love physics?! ;-] Position of nodes in the graph depends on the resultant force - set of forces reduced to a single vector. There are three main forces computed for each node in each step:
- repulsion based on Coulomb's law, as all nodes carry the same charge
- the resilience of spring connecting nodes based on the Hooke's law
- gravity force which pulls up nodes, so single nodes or separated groups stay fairly close to the centre of mass
The initial position is random - far from optimum in terms of energy. Such a state is very unstable and once simulation starts diagram stabilizes. In the end, the graph is very close to its local minimum state of energy. This might not be a global minimum - perfect state, but often is good enough and requires less computation.
Energy minimum means that all spring-driven forces are in balance with repulsion electric forces. Nodes are not moving anymore and kinetic energy is very close to zero.
Another important thing is friction. Dampening wastes energy, so simulation stops at some point, otherwise, it would keep moving forever.
Each node has a mass, size and colour derived from the input data. In other words bigger value - bigger mass and size of the bubble. The relation between nodes is expressed by the length of spring, closer relation - shorter spring.
Large UI project I developed for Bluemetrix. Front-end was designed and coded solely by me and it was my first commercial project. Back then there were much fewer tools available to developers and incompatibilities between browsers were a major pain point.
Visualization of porous materials C++ / OPENGL
This is my university final project. Program generates 3D porous (granulated) material with a fixed location of pores. Pores position and size is calculated and collision detection ensures all pores are rendered correctly. The graphic has been done in OpenGL.
3D engine C++ / OPENGL
The engine loads maps and creates 3D landscapes covered with textures. Data such as textures or height maps are loaded from uncompressed files. Parameters of the scene can be changed by command line parameters or during run time. It is a basic rendering engine, but at the time I was proud of it. I had planned to expand the engine into RTS (real-time strategy) game, it never happened. Instead, I managed to reuse big chunks as a foundation for my final university project.
Telescope model SolidWorks
3D telescope model built in SolidWorks. This is a very accurate model (up to millimetres) of a real telescope. Project was fully interactive and composed of many movable parts. Constrains in SolidWorks define the position of parts and the way they move and respond to forces. It was a fully assembled model.
Gauss function visualisation C++ / OPENGL
Visualization of Gaussian function. The graph shows the characteristic "bell curve" depending on the input parameters. The application was interactive and it allowed to control curve.
Open source: The Battle for Wesnoth
I am Polish translation maintainer and coordinator of open-source game: The Battle for Wesnoth. It is a turn-based strategy game with a fantasy theme. Wesnoth has many different campaigns and scenarios waiting to be played. It is a very mature and stable project, that had been actively developed for over a decade.
My contributions are tiny compared to the work of skilled volunteers that had created over years hundreds of beautifully animated units, Artworks are just awesome! ;-]
Citizen science, because science is awesome!
Zooniverse is home to the internet's largest, most popular and most successful citizen science projects. Create an account, pick a project and start classifying data to help scientists. You can keep track of your all contributions on Zooniverse page. So far I contributed 15k classifications to date.
Crowd science is a very interesting concept and I am really glad to see the community is growing. Zooniverse is a great opportunity to learn real science. Projects I have participated in:
The Andromeda Project
The Andromeda Project goal was to identify thousands of star clusters in the M31 Andromeda, the closest spiral galaxy to our own Milky Way. The majority of identified clusters were never classified in any catalogue before, so every contribution has a significant impact on astronomy. The project ended in 2013. Currently, I contribute to Local Group Cluster Search, which has a similar goal, except it covers remaining galaxies in our Local Group.
Galaxy Zoo is a large-scale galaxy research project where volunteers classify shape and features of galaxies. This improves understanding of how galaxies formed and their evolution. I have seen thousands of galaxies, and my favourite objects are spiral and merging galaxies. Elliptical galaxies are the largest, but they are rather smooth, oval-shaped, often with no distinct features.
Planet Hunters is all about hunting... exoplanets. NASA's Kepler space telescope, now retired, delivered a large amount of data. Volunteers have sifted through it over years and discover thousands of new planets around stars outside of our own Solar System. The recently launched Transiting Exoplanet Survey Satellite (TESS) is providing us with even more data.
Space Warps is a very unique project. Massive galaxies warp space-time around themselves, bending light rays so that we can see around them. When it happens, gravity lense is giving us a zoomed-in view of the distant universe behind the lensing galaxy. Lenses can help us investigate young galaxies more than halfway across the universe, as they formed stars and started to take on the familiar shapes we see nearby.
Planet Four project is a must for everybody interested in Mars. It is a great opportunity to explore the surface of Red Planet. Using HiRISE data from the Mars Reconnaissance Orbiter, volunteers can study wind patterns on the Martian surface. Purpose of the project is to identify and measure features left by geysers of carbon dioxide bursting trough ground layer.
Snapshot Serengeti is an interesting window into the dynamics of Africa’s most elusive wildlife species. I helped classify all the different animals caught in millions of camera trap images collected in Serengeti National Park. I like animals and the project was a unique opportunity to understand their behaviour and learn about species.
I am interested in space, astronomy and pretty much any kind of science. I build and fly radio-controlled models and drones, which leads to electronics, soldering and DIY in general. I like hiking, cycling, running and try to live a healthy lifestyle.
I have a few radio-controlled helicopters. CopterX-450, the biggest 6-channel model was built from a kit. It is very precise, powerful flying machine and it flies in exactly the same was as real helicopters.
I have built a foam (depron) plane from scratch in autumn 2012. It is cheap and simple model. It was my first fixed-wing model and I spent about 4 weeks cutting and glueing parts. Wing profile is rough and isn't very aerodynamic. It causes turbulent flow at higher speeds and this makes the plane hard to control.
All my cats have been rehomed or found homeless. The smaller black & white is, unfortunately, missing since 2011.
I designed and completed this workbench project in 2011. Model 3D was created in Google SketchUp. It was a very interesting project and the first furniture I have ever made. The bench is very stable and stiff, however, I had to add diagonal slats in order to support legs, because a 90-degree connection isn't rigid enough. Drawer works smoothly, as it is mounted on ball-bearing sliders. I find the workbench very handy, especially when I do soldering.