Flutter Developer2022 - 2022Metric Creative, LLC
Technologies: Flutter, Dart, Agile
- Developed a cross-platform application in Flutter that targets desktop platforms, primarily Windows.
- Set up a continues deployment pipeline on Codemagic.
- Developed reusable UI elements (Flutter widgets) to have a ubiquitous UX across the app.
Flutter Developer2021 - 2022BlueBridge Technologies
Technologies: Dart, Flutter, Redux, Git, Scrum, Agile Software Development
- Built a cross-platform solution for an Android and iOS app.
- Implemented a Redux-based architecture solution using Flutter Redux and Redux Saga plugins.
- Worked in a fully Agile team with all Scrum-defined ceremonies, from backlog grooming, planning, review with a demo, and retrospective.
- Covered all the reducer methods with unit tests as part of the acceptance criteria for merging PRs.
Flutter Developer [PT]2021 - 2021Arkitec Software Ltd.
Technologies: Flutter, Git, Native Mobile Apps, APIs, VS Code, Dart
- Developed a standalone Flutter SDK that Arkitec's clients can use to integrate the solution into their consumer loyalty apps.
- Developed a React-native client for Arkitec's Flutter SDK solution.
- Served as development support to Arkitec's clients for integrating the Flutter SDK into their products.
Flutter Developer2019 - 2021TeamGo Inc.
Technologies: Flutter, Dart, Git, Firebase
- Worked on the SOLID-principle-based architecture for the scalable and modular cross-platform solution.
- Worked on a multi-module solution structure that enables different projects to use shared submodules.
- Did extensive unit testing coverage with the isolated setup-execution-verification approach.
- Implemented a GraphQL API client, including all three operation types: queries, mutations, and subscriptions.
Flutter Developer2019 - 2021School Village
Technologies: Flutter, Dart, Firebase
- Acted as a sole developer for the multi-tenant Android and iOS app solution for VillageSafety brands.
- Established and maintained the CI solution with Codemagic.
- Did email and password authentication with FirebaseAuth and user records with Firestore.
Android/iOS Developer2018 - 2018LotusFlare
Technologies: XCTest, JUnit, RxSwift, Swift, iOS, RxJava, Java, Android, RxJava 2, UIKit
- Applied clean architecture to native Android and iOS apps using three-tier separation.
- Wrote strongly-templated unit tests. Each test contained an explicit set up, calls under test, and explicit assertions or verifications. Each part was separated by a single empty line break so that developers could easily spot what was being tested.
- Created and integrated RxJava wrappers for a clean architecture approach.
- Code-reviewed every PR from other team members. Every PR had to undergo automated unit testing for functional verification and manual code review for development transparency and continuity.
- Collaborated using the Git feature branch workflow.
Android/iOS Developer2016 - 2018Next Generation Lotteries
Technologies: XCTest, JUnit, RxSwift, Swift, iOS, RxJava, Java, Android, Xcode Server, Scrum, Agile Software Development, RxJava 2, UIKit
- Checked the MVP architecture for Android and iOS apps that it conformed to the separation-of-concerns principle.
- Performed unit testing with JUnit and XCTest test cases. Since we've used an MVP design pattern, it allowed us to mock any component while testing only the single implementation.
- Implemented protocol-oriented programming. Using new capabilities and practices in Swift language, protocol-oriented programming allows for greater flexibility and a higher level of abstraction than OOP.
- Configured and integrated Xcode server bots for continuous integration; also successfully configured a CI pipeline using native Xcode Server toolchain.
- Integrated Fastlane for faster and easier code-signing for iOS apps.
- Adopted Scrum methodology. We used a scaled Agile framework (SAFe) and had daily standup meetings and biweekly sprints with retrospectives and reviews.
Mobile and Web Developer2014 - 2015Spart Agency
Technologies: PHP, CSS, HTML, Java, Android
- Developed social apps which focused on user-generated content. All the apps also integrated social networks (like Facebook or Twitter) for sharing app content or inviting friends to use this app.
- Set up GCM (now FCM) on both back-end and Android side; used Java on both back-end (using utility libraries for GCM) and client side (using Android SDK).
- Implemented the pair programming approach for both development continuity purposes and for exchanging knowledge and practices when the team was in the forming stage.
- Implemented audio playback on the Android platform. The media player was running inside a Service that was controlled through broadcasts from a content-rich notification.
- Collaborated remotely since part of the team was in France and part of the team was in Serbia. From time to time, there was a need to do the planning or product development through online meetings and synchronization.
Data Collection and Labeling Associate2014 - 2014Microsoft Development Center Serbia
Technologies: Tools, Visual Studio
- Worked with a diverse student team. Everyone on the team had a unique background, including philology, engineering, business, as well as forestry, math, and so on.
- Collaborated remotely as part of a team contributing to Office products, namely the OfficeLens application, which meant we also had to synchronize with teams in Redmond and other Microsoft offices.
- Evaluated the performance of neural network data processing. The team that I was part of was charged with labeling data and reviewing neural network output for previously labeled data.
- Validated the results of Microsoft's OCR technology.
- Reviewed and evaluated Microsoft products. I've submitted verbal and written feedback on upcoming Microsoft products that were in development and not published yet.