Personal Details

avatar.png
avatar.png

Email address: adrian.kuta93@gmail.com (mailto:adrian.kuta93@gmail.com)Website: adriankuta.dev (https://adriankuta.dev/)LinkedIn: linkedin.com/in/adrian-kuta(...) (https://www.linkedin.com/in/adrian-kuta-9366b2ba/)GitHub: github.com/AdrianKuta (https://github.com/AdrianKuta)

About me

Meet me – a technology enthusiast who began his journey into the world of programming on the Android platform during my college years in 2012. I've always had a keen interest in technology, with Android serving as my gateway to the realm of mobile application development. For nearly a decade, I delved deep into the intricacies of this platform. However, over time, I realized that I didn't want to confine myself to a single technology. In search of new challenges, I turned my attention to React and React Native. After several months of rigorous learning, my efforts bore fruit – I started working on my first commercial project utilizing these technologies.

My professional career has been a continuous evolution. Over the years, my projects have interwoven between Android and React, allowing me to develop skills in both areas. Yet, it's in my nature to continuously seek growth and explore new horizons. Witnessing how artificial intelligence (AI) is revolutionizing the tech world, I decided not to be left behind. Since the beginning of this year, I've been intensely diving into the knowledge of AI, aiming to become part of this exciting future. My career is a testament not just to a passion for technology but also to a readiness for continual learning and adaptation in the rapidly changing world of IT.

Experience

Senior Android Developer, React, React Native

Better Software Group (https://bsgroup.eu/)May 2020 - Until now

  • Creating modern and responsive user interfaces using Jetpack Compose, a modern tool for building user interfaces for the Android platform.

  • Implementation of multiplatform projects – Android, iOS, SmartTV, Web

  • OTT and VOD applications

  • Experience in working on many projects at once.

  • Experienced in Scrum methodology as Scrum Master

  • All projects’ tasks were managed in Jira

  • Configured continous integration for multiplatform applications.

  • Participation in meetings, planning with client.

Senior Android Developer

Etteplan (https://www.etteplan.com/)March 2019 - April 2020

  • Projects in MVVM Architecture, with use of DataBinding, LiveData, RxKotlin, Coroutines, Koin, Architecture and Navigation Components, Room Database etc.

  • Experienced in implementing Banking Application with NFC payments.

  • Created application for Realtime Video Stream, with use of Wifi Direct

  • Experienced in Kanban methodology

  • All projects’ tasks were managed in Jira

  • Configured continous delivery on Jenkins.

Android Developer

Capgemini (https://www.capgemini.com/)January 2017 - February 2019

  • Projects in MVVM Architecture, using Retrofit, Dagger2, RxKotlin, Architecture and Navigation Components, Room and Realm databases.

  • All projects’ tasks were managed in Visual Studio Team Services(VSTS).

  • Experienced in Agile(Scrum) methodology

  • Created application with audio streams, eBook reader and in-app purchases for eInk devices.

  • Created native applications with high security requirements for Nuclear Power Plants.

  • Created multilingual application to manage tasks, create custom events and reports, and display charts with measurements.

  • Configured continuous delivery on VSTS

  • Writing tests: unit tests with use of JUnit 4 & 5, UI tests with use of Espresso, and TDD projects with use of Groovy(Spock Framework)

  • Experienced in developing own libraries and multimodal projects

  • Implemented push notifications (FCM) managed by Azure.

  • Application developing lead role in ongoing project, particiaption in managing tasks, sprints and business scope.

  • Speaker at internal meetings regarding e.g. Navigation Component, TDD with Spock Framework

  • Participation in courses for iOS Development, RxKotlin and AR/VR for Android

Android Developer

Applover (https://applover.com/)December 2014 - December 2016

  • Implementation of native Android applications in Java using MVP (Model-View-Presenter) architecture.

  • User interface design, including creating custom views and animations.

  • Both individual and team work.

  • Self-written app published on Google Play, reaching approximately 20,000 downloads.

  • Developing applications using Google Maps, Directions, Places, Open Street Maps APIs, integration with Firebase Notifications, Estimote Beacons, Retrofit, RxJava, Dagger.

  • Implementation of Continuous Integration using GitLab.

  • Implement PUSH notifications via Firebase.

  • Active participation in hackathons.

Skills

This is just a fragment of the tools I had the pleasure of using. Nowadays, it would be difficult for me to name a tool that I haven't had the opportunity to use, especially in the context of the Android platform. Therefore, whenever I have free time - either during a project or after work - I like to explore known tools, looking for ways to even better use their potential, improve efficiency or optimize existing solutions. I pay particular attention to new technologies such as JetPack Compose, which has some of its libraries in Beta at the time of writing this CV.

Programming

  • Java: Advanced level, with experience in building and maintaining Android applications.

  • Kotlin: Advanced level, with extensive experience in creating modern Android applications using best practices and design patterns.

  • JavaScript/TypeScript: Advanced level, with broad experience in developing web and mobile applications.

Frameworks and Libraries

  • React: Expert in building interactive UIs for web applications using modern hooks and context.

  • React Native: Advanced level, experienced in creating smooth and responsive applications for Android and iOS.

  • JetPack Compose Creating modern and responsive user interfaces using Jetpack Compose, a modern tool for building user interfaces for the Android platform.

  • Redux: Proficient in managing application state, including designing store, actions, and reducers.

Tools and Technologies

  • Android Studio: Advanced skills in the most popular IDE for Android, including debugging, profiling, and testing.

  • Android SDK: Deep knowledge of the Android Software Development Kit, including Activity lifecycle, Android Jetpack, and other platform components.

  • Firebase: Experienced in Firebase integration, including authentication, real-time databases, analytics, and push notifications.

  • SQLite/Room: Advanced knowledge of managing local databases in mobile applications.

  • Git: Proficient in version control and collaborative work using Git.

  • CI/CD: Experienced in automating build, test, and deployment processes using tools such as Jenkins, Travis CI, GitHub Actions.

Testing

Ability to write and maintain unit and UI tests for Android applications.

  • JUnit/Espresso

  • Maestro

  • Spock Framework

Other Skills

  • Understanding of Design Patterns: MVC, MVP, MVVM, and others used in mobile and web applications.

  • UX/UI Principles Knowledge: Ability to create intuitive and visually appealing user interfaces.

  • Teamwork: Excellent teamwork skills, with experience in remote work and agile methodologies.

Private projects

AI - Artificial Intelligence

In the context of AI, I have not managed to complete a complete project so far. I am currently in an intense learning phase, and my private initiatives are more like experimental research facilities. However, I have found that the best way to learn new technologies is to set yourself a specific goal. Therefore, I took up the challenge of creating my own AI model, focusing on training convolutional neural networks (CNN) for photo classification based on person recognition. I believe that a single AI model may not be sufficient, so at the face detection stage I use the opencv library and the haar cascade mechanism. Later, I plan to use tensorflow and keras to train the CNN more thoroughly.

In terms of user interface, I am also exploring Compose Multiplatform, a modern tool that allows you to create UI that works on multiple platforms, which is part of my process of learning interface design.

Android & Kotlin multiplatform libraries in Maven Repo.

As part of learning how to create my own libraries and tools for developers, I developed a few small libraries that I made available in Maven, a repository popular among programmers. Obviously, these libraries won't change the world, but their main goal was to expand my knowledge about the possibilities of creating open-source tools that support the programming process.

Multilevel Expandable RecyclerView

https://mvnrepository.com/artifact/com.github.adriankuta/expandable-recyclerView https://github.com/AdrianKuta/Expandable-RecyclerView/blob/master/LICENSE https://github.com/AdrianKuta/Expandable-RecyclerView/actions/workflows/publish.yml

With this adapter you can add expand feature to regular RecyclerView.

All objects are store in Tree (Data structure) (https://github.com/AdrianKuta/Tree-Data-Structure), so adapter can create multilevel expandable groups.

Under the hood, the tree is flattened to simple list, so from RecyclerView's point of view it can operate as usual.

NAS Server

Having my own NAS server is not just a hobby, but an opportunity to delve into the fascinating world of technology. In my spare moments, I dedicate time to exploring its capabilities, which translates into countless hours of fun and learning. My journey with the NAS started quite innocently but quickly evolved into something much bigger. Currently, my server acts as a hosting platform, running several websites, including the one you are reading this post on.

I also use it as a testing environment, invaluable while learning React or Nest for the backend. What once seemed like a mere hobby has now allowed me to gain extensive knowledge in managing multiple Docker containers, facilitating their communication, and creating my solutions. This process also made me realize how crucial it is to ensure network security - both private and public.

Over time, my interest in network security has grown to proportions that sometimes seem excessive to me. The network architecture in my home, with routers, switches, and VPNs, could be compared to the network infrastructure of some companies I've had the chance to work for. I sometimes laugh that my home network is more complex than some professional installations. However, this reflects the depth of my engagement in a hobby that has become a true passion and a source of valuable skills.

Education

The sections related to education in my professional life are unique because they do not just encompass the degrees obtained from universities. My approach to learning is somewhat different – I see my entire career as a continuous opportunity for education. I value mental flexibility more than memorizing detailed terminologies. Striving for constant development through learning allows me to train my brain to adapt with ease in the face of new challenges or technological changes. Therefore, I regularly reach for books from various fields and follow websites dedicated to the latest technological trends, aiming to continuously expand my knowledge even after completing formal education.

Computer Science

Wroclaw University of Science and Technologyengineering degree, 2012 - maj 2016

  • Specialization in mobile applications and computer security.

  • Design and implementation of IT systems.

  • Practical classes in programming in Java.

  • Embedded systems

  • Algebra and logic

  • Mathematical analysis