Dart Developer in Belgrade, Serbia
Android/iOS Developer2018 - 2018LotusFlare
Technologies: Android, Java, RxJava, iOS, Swift, RxSwift, JUnit, XCTest
- Applied clean architecture to native Android and iOS apps using three-tier separation. The bottom tier is the data tier and has no knowledge of other tiers. The middle tier is the domain tier that transforms raw data and applies business logic. The top tier is a presentation layer that contains native UI and user-facing logic.
- 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's being tested.
- Created and integrated RxJava wrappers for a clean architecture approach.
- Code-reviewed every PR from other team members. Every PR had to go through automated unit testing for functional verification as well as through manual code review for development transparency and continuity purposes.
- Collaborated using the Git feature branch workflow. Each developer worked on his/her own branch. After the development for a feature has been completed, he/she would create a PR to merge that feature branch into master. After a code review approval, the branch would then be merged and deleted.
Android/iOS Developer2016 - 2018Novomatic Lottery Solutions
Technologies: Android, Java, RxJava, iOS, Swift, RxSwift, JUnit, XCTest
- 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 (Agile) 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: Android, Java, HTML, CSS, PHP
- 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: Visual Studio, Microsoft Proprietary In-house Tools
- Worked with a diverse student team. Everyone in 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 that was contributing to Office products (namely 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 feedbacks on upcoming Microsoft products that were in development and not published yet.
- CircleIn (Android App) (Development)https://play.google.com/store/apps/details?id=com.circlein.android
CircleIn is an online platform that enables high-school and college students to have an easier and more engaging learning experience. As CircleIn user you can:
- Ask your toughest questions and get answers from peers
- Get a push notification when someone answers or comments on your question
- Use group video for homework sessions, or help
- See, search and share class notes
- Earn community service hours for scholarship, college, internship or job applications
- Reach your network of classmates daily with chat
- Hypotheek24 (iOS App) (Development)
Hypotheek24 is a small iOS app project for a client from the Netherlands that allows users to apply for a mortgage and submit all the data directly from their iOS device.
- Catalyzer (iOS App) (Development)https://itunes.apple.com/gb/app/catalyzer/id1206802860?mt=8
Catalyzer is a mobile application that enables users to encounter other like-minded users that are nearby. It is not a dating app but is targeted at users that have just happened upon some extra free time, whether a previous arrangement was canceled or an ongoing activity was shorter or less interesting than expected.
Simply click a button and wait for the app to do its magic—it will connect you with a nearby user that is also available and lead you to a nearby bar. All with a single click!
- Head Organizer of JobFair (2015) (Other amazing things)
JobFair is an annual, two-day, student-oriented, career fair that takes place in Belgrade. It is organized by two non-profit student organizations.
In 2015, I had the privilege of leading a team of over 100 volunteers for over six months. This resulted in 36 companies taking part and over 2,000 students attending the event. This year also brought a completely rewritten and redesigned CV database as well as the search engine that corporate partners could use to find suitable candidates for their current or future openings.
- Flutter Tutorial: How to Create Your First Flutter App (Publication)Google’s Flutter mobile SDK only recently made it to version 1.0, but it is already catching up with React Native in terms of market share. Flutter is also used to develop apps for Google’s upcoming Fuchsia OS. In this article, Toptal Java Developer Nemanja Stosic demonstrates how to create a simple messaging app using Flutter and Firebase.
- iOS Continuous Integration with Xcode Server Explained (Publication)Continuous integration using nothing but Apple tools used to be tedious and time-consuming. This changed with the launch of Xcode 9.0 last September. In this article, Toptal iOS Developer Nemanja Stosic explains how you can harness the potential of new Xcode features to streamline iOS development.
LanguagesJava, C++, Kotlin, Swift, Dart, C#, SQL, Python
Libraries/APIsXcode Server, RxSwift, CocoaPods, RxJava 2
FrameworksSpring, Flutter, JSF, JavaServer Pages (JSP)
ToolsAndroid Studio, Git, Xcode, Bamboo
ParadigmsScrum, Functional Programming, Agile Software Development, Unit Testing, Test-driven Development (TDD)
PlatformsAndroid, iOS, Visual Studio 2017
StorageMySQL, MongoDB, SQLite, Realm
- Bachelor's degree in Computer Science2012 - 2018University of Belgrade - Belgrade, Serbia