This page contains list of my selected personal projects.
It does not contain all of them and I don’t publish information about commercial projects here due to appropriate agreements (e.g. NDAs).
If you are interested in my commercial projects, visit my LinkedIn profile. In case of being interested only in open-source code, visit my GitHub profile.
I like to share my code and ideas with others. According to coderstats.net, all my open-source projects have 3200+ stars and 450+ forks on GitHub.
My current main programming language is Java, but I also use Python and Bash for some scripting. Besides that, I try to discover new programming languages, paradigms, and tools. Moreover, I worked or played with other technologies in the past and I never stopped learning new stuff. I work mostly with Unix operating systems. If you are interested in details of my system setup, see the repository my dotfiles.
Android application, which analyzes the state of the brain with an external electroencephalograph.
It reads EEG signal and blink strength (with EMG sensor) from NeuroSky MindWave Mobile device connected via Bluetooth to Android device. It is able to read attention level, meditation level, blink strength and brainwaves data. It can also draw plots representing change of attention and meditation level in time. In addition, this application can record EEG data into local SQLite database and export it to Dropbox servers in *.csv format for further analysis. If you want to use this application, you need to have NeuroSky MindWave Mobile device. If you want to read more about this project and technology, check Brain Computer Interface category on my blog. Moreover, I described process of publishing this application in Google Play Store, so you can read article about that if you are interested in technical details connected with this subject. You can read an article related to the project and published on this blog at: http://blog.wittchen.biz.pl/eeg-analyzer-android-app/. This project was part of my Master Thesis at Silesian University of Technology. Despite the niche area and domain, this application was downloaded by more than 15k users from Google Play Store.
ReactiveNetwork is an Android library listening network connection state and Internet connectivity with RxJava Observables. It’s a successor of Network Events library rewritten with Reactive Programming approach. Library was featured on Android Arsenal and Android Weekly website (twice). It was also trending project on GitHub. You can read an article about introducing ReactiveNetwork on this blog.
Android library listening network events.
Checks if a device is connected to WiFi network, disconnected from WiFi network, mobile network or if device is offline. Checks if WiFi network has an Internet connection. It also monitors signal strength change of available access points. When connection state or WiFi signal strength changes, we receive appropriate event. This library is open-source and still under development. Library was featured on awesome-android GitHub repository, Android Arsenal and Android Weekly China. You can read related blog post about Introducting NetworkEvents.
Android library listening available WiFi Access Points and related information with RxJava Observables. Its functionality was extracted from ReactiveNetwork project to make it more specialized and reduce the number of required permissions.
Wrapper for Android SharedPreferences with object serialization and RxJava Observables. Project was featured on Android Arsenal website. I’ve managed to obtain more than 90% unit test coverage in this library. Read related blog post about Introducing Prefser.
Small Android library scanning BLE (Bluetooth Low Energy) beacons nearby with RxJava. It has tiny & easy API. You can use it to build practical applications utilizing Internet of Things concept. Check out blog post about Introducing ReactiveBeacons.
Small Android library listening airplane mode with RxJava Observables. It’s compatible with RxJava2. Check out blog post about Introducing ReactiveAirplaneMode.
It is string formatting library for Java, Android, Web and Unix Terminal.
Kirai means phrase in Swahili language. Library is inspired by the phrase, TaggerString and BabushkaText projects. It takes the best elements of mentioned libraries and mixes them in a one, lightweight and easy to use project. It started as an Android library, but evolved to pure Java library. Kirai has a lot of Unit Tests written according to TDD methodology. Tests provide a specification of the library and check if it is fault-tolerant. In addition, Kirai has its own job on Travis CI server and we can check whether the build is passing on the GitHub page of the repository. Library is available on Maven Central Repository and was featured on Android Arsenal.
Simple open-source Android library providing custom Weather Icon View, which can be useful during development of mobile weather applications. Library was featured on Android Arsenal.
Android library providing InfiniteScrollListener for RecyclerView in Android. It allows implementing a list of items, which can be scrolled infinitely on a mobile device.
Library, which allows detecting swipe events on Android with listener and RxJava Observable.
Library, which detects different touch gestures on Android with a listener and RxJava Observable.
Simple shell script, which allows to setup CheckStyle, FindBugs, PMD and Lint for your Android project easily. This project adds Gradle setup for quality tools mentioned above to Android project. After adding this, we can easily increase the quality of the project by static code analysis and apply it on Continuous Integration server.
Proof of Concept of getting, building, initializing and running SAP Hybris Commerce Suite inside Docker container. Except for Dockerfile, this repository contains helper shell script for Unix systems and appropriate documentation. With this setup, we can have basic Hybris installation up and running out of the box. You can read an article about Dockerinzing Hybris on this blog.
Simple shell script for downloading SAP Hybris Commerce suite from Artifactory. It’s also able to get release date & time of the package and download URL. Moreover, this shell script has unit tests written with shunit2 and is backed with Travis Continuous Integration Server. The simplicity of the project cannot be an excuse for not writing tests and keeping the project robust. If you are interested in this topic, read an article about lifting quality of a shell script.
A command-line interface to Spotify on Linux. It’s a simple script written in Python.
This project is inspired by the similar project called shpotify, which does similar things, but on macOS. Read an article about Controlling Spotify on Linux like a hacker.