About
I’m a pragmatic software engineer with diverse experience. I like to write about Android, Design Patterns and everything else I learned on the way.
I have extensive experience with legacy code, as well as launching fresh green-field projects.
Furthermore, I enjoy task automatization with a CI/CD approach in mind and have previously designed and implemented release procedures for mobile apps.
In my spare time, you can find me strumming my guitar 🎸, buried in books 📚, enjoying movies 🎥, or indulging in computer games 🎮. I also have a penchant for outdoor adventures like camping ⛺, hiking 🌄, and cruising on my motorcycle 🏍️.
Contact me
Find me on Linekdin / Github or just say Hello
with an
email.
You can also check my resume
Mentoring
Interested in mentoring session? Check below:
Projects
Sometimes I build something just because I want to :)
Biedra
This project started as recruitment task. Since then I rewrote it completly about 3 times, just to play with various libraries. I was changing HTTP stack, databases, presentation layer, I think I even used RxKotlin at some point. But I always had CI, some tests and clean domain layer there, so changing parts of the app was pretty easy.
Remote Logger
I was once tasked with spiking a vendor library/SDK integration. The problem was - the library was working only in Android release
app mode, where generally you don’t get debugger. And I couldn’t make it work. So I wrote a little tool, that gathers logcat logs and sends them via websocket to a listening service. The logs are then printed in HTML with some colors etc.
Recently I rewrote the server thing in GoLanghttps://www.linkedin.com/in/aswiderski/ as purely CLI tool.
Notti
Every one knows how Builder pattern works. It produces a valid object with some default values that can be overwritten with setters, if something is required it goes to the constructor. Well Google engineers had bit different idea, and I wasted 2 days debugging why notification is not being displayed at all in my app. So I created a little library that would prevent me (and others) from making this mistake again.
Frida playground
Sample app and scripts used to hack it using Frida. I wanted to play with this tool after some conference, and I didn’t find a nice all-in-one guide, so I wrote one and used this project for it.
AirRide
Android app for controlling car suspension via Bluetooth. A pet project I did with my brother, he took the hardware part using Arduino and some valves, I did the Android app programming. The app allowed creating loops of commands that could be played from a playlist, using phone accelerometer to send suspension commands, or using more traditional on-screen buttons.
Technologies
Random ordered list of tech I like to use
- Android
- Kotlin
- Flutter
- Spring
- BLE
- Dagger
- Koin
- Espresso
- ExpressJS
- Firebase
- Genymotion
- git
- Gradle
- JavaScript
- Jira
- JUnit
- Linux
- MongoDB
- NodeJS
- Realm Database
- Room Persistence Library
- RxJava
- SonarQube
- Detekt
- Mockk
- Spock
- GraphQL
- TypeScript
- Jenkins
- Docker
- Figma
- Confluence
- Jira
- Miro
- Slack
- IntelliJ Idea
- VS Code
- Postman
- Insomnia
- Swagger
- Vim
- Mermaid
- NeoVim
- GoLang
- Domain Driven Design