Josip Bernat, Software Developer in Zagreb, Croatia
Josip Bernat

Software Developer in Zagreb, Croatia

Member since January 30, 2015
Josip is an expert iOS developer with several years of experience in this field—he's been developing for iOS since iOS 4 beta but vastly prefers the current state of iOS development with Objective-C and Swift. Besides iOS, Josip enjoys writing back-end APIs using Node.js. Work-wise, he is detail-oriented and prefers to be deeply involved in a project with constant communication. He's worked in teams of all sizes and has also led a few.
Josip is now available for hire

Portfolio

Experience

Location

Zagreb, Croatia

Availability

Part-time

Preferred Environment

macOS, iOS, Xcode, Terminal, Visual Studio Code

The most amazing...

...thing I've coded is an application for finding movies in cinemas around you which runs great on every possible iOS device.

Employment

  • iOS and Node.js Developer

    2018 - PRESENT
    IntelliQuit (via Toptal)
    • Integrated real-time camera capture analysis using OpenCV for detecting objects in camera buffer.
    • Developed an API using Node.js on an AWS EC2 instance.
    • Set up a web instance using Ubuntu 18.04LTS that runs Node.js API and CMS.
    • Wrote a CMS using Node.js and Pug templating.
    • Setup MariaDB on AWS RDS.
    • Supported cross-AWS instance communication using AWS SQS.
    • Established a Redis memory database for storing user sessions in CMS.
    Technologies: iOS, Node.js, MariaDB, AWS EC2, AWS RDS, AWS SQS, OpenCV, C++, Swift, Objective-C, JavaScript, Ubuntu 18.04 LTS, Pug, Redis, JWT
  • Lead iOS Developer

    2015 - PRESENT
    Stroeer Media Brands Apps
    • Led the team in the creation of a stunning user interface and user experience.
    • Successfully communicated with the Android and back-end developers to sync the features across platforms.
    • Created a library for fast image downloading and decompressing images for the faster display on slower devices.
    • Polished the app to optimize every percent of performance and have super slight scrolling.
    • Examined the app closely to fix every possible bug.
    Technologies: iOS, Swift, Objective-C, Xcode, Mac
  • iOS and React Native Developer

    2019 - 2020
    Large Retailer (via Toptal)
    • Refactored and upgraded an existing iPad application.
    • Created a reusable multithreaded Core Data stack for importing and fetching data.
    • Added support for native app scaling on larger and smaller screens.
    • Integrated analytics into a React Native app.
    • Built a few React Native native modules that enabled the use of native iOS and Android code inside JavaScript.
    • Debugged and fixed bugs which were caused by previous development.
    • Improved app speed by improving SharePoint APIs calls which were extremely slow.
    • Created mockup proposal screens for the client using Sketch.
    Technologies: iOS, React Native, Objective-C, JavaScript, Core Data, Sketch, SharePoint
  • iOS Expert

    2019 - 2019
    Metagon, Inc. (via Toptal)
    • Optimized and refactored a SpriteKit scene in the way that it can easily be switched between two different display order options.
    • Generated an AWS Gateway API SDK with all required preparations (model setup and HTTP response setup).
    • Integrated MapBox SDK below SpriteKit scene in the way they were all both visible at the same time without memory problems.
    • Built animations with SpriteKit that were in sync with all components inside the scene.
    • Created an app layer that connects the SpriteKit scene with MapBox map which updates map position every time scene was dragged.
    Technologies: SpriteKit, AWS Gateway, iOS, MapBox, MapKit
  • iOS Developer

    2010 - 2015
    Clover Studio, LLC
    • Created a dozen chat client apps for iOS using Objective-C.
    • Constructed back-end APIs for mobile apps using PHP and MySQL.
    • Developed games for iOS using Cocos2d and Objective-C.
    • Created a number of news applications using Objective-C.
    • Built a framework for utilizing all the reusable code shared over the apps.
    Technologies: iOS, PHP, MySQL

Experience

  • Kino.de (Development)
    https://itunes.apple.com/hr/app/kino-de/id481183246?mt=8

    Kino.de is the number one German app for finding movies, tv shows, and movie theaters. The app has around 40,000 weekly active users and the crash rate is lower than 0.4%.
    While working on this app, I used Objective-C as the main language and I wrote a library for downloading images. The reason I did this was that I wasn't satisfied with the performance of the current assortment of open-source libraries.

    For this app, I developed many custom components and one of the most challenging was video player that was inspired by the Facebook iOS app video player (it allows a user to scroll the list of videos and automatically starts video playback when the video scrolls into view).

  • Crypto Price (Development)
    https://itunes.apple.com/hr/app/crypto-price/id1291405826?mt=12

    Crypto Price is a macOS and iOS application for keeping an eye on your favorite crypto tokens. Both applications reuse the same foundations, but they have separate UI files.

    During this project, I learned how to reuse code for Mac and iOS and how to properly configure Xcode to work without any problems. This project was written using Swift.

  • No TV Signal Screensaver (Development)
    https://itunes.apple.com/be/app/no-tv-signal-screensaver/id1342129073?mt=12

    No TV Signal Screensaver is a macOS application that checks user activity and starts a fake screensaver. I say fake because screensaver apps aren't supported by the Mac App Store so an app has to pretend it is a screensaver app. This app is written in Swift and draws the UI using CALayers.

  • TankenApp mit Benzinpreistrend (Development)
    https://apps.apple.com/de/app/tankenapp-mit-benzinpreistrend/id627468788

    TankenApp is an iOS application for finding the nearest and cheapest gas stations nearby in Germany. App has more than 100,000 weekly active users.

    I developed an iOS app and is written 95% by myself. It also required collaboration with Android, back-end, and designer teams.
    All code is written in Swift 5, dependencies are managed by CocoaPods and the app is shaped using MVC architecture.
    The user interface was created using Xibs and for fast left-right navigation between favorites, the app uses UIPageViewController. Analytics is tracked using Firebase and Amplitude analytics.

    The design was provided using Zeplin and all icons inside the app are stored in vector PDFs. VCS used for this project is git and CI used at some point in time was Microsoft AppCenter.

  • Hasher (Development)
    https://apps.apple.com/lb/app/hasher/id1023355375?mt=12

    Hasher is a macOS utility application for creating hash strings from the text. It provides support for MD5 and SHA1-512 hash algorithms.
    The app is written in Swift using MVC architecture and supports the latest macOS 10.14 dark mode appearance.

    Source code of the app is available on GitHub: https://github.com/josipbernat/Hasher

  • IntelliQuit (Development)
    https://apps.apple.com/us/app/intelliquit/id1449475599

    IntelliQuit is iOS application that helps users reduce tobacco usage by monitoring level of tobacco in their urine.
    App takes image of NicCheck strip that was in reaction with urine and then makes analysis of given image using computer vision.

    My role when creating this app was development and maintenance of iOS app and backend API.
    iOS app is written in Swift using MVC architecture, dependencies are managed using CocoaPods and UI is implemented using Storyboards, Xibs and native code.
    Camera screen uses OpenCV for detecting required elements inside image. OpenCV is written inside C++ and communication with rest of Swift code is achieved using ObjectiveC++ classes.

    Backend APIs are exposed using REST API and backend runs on NodeJS inside AWS EC2 instance. Database used for this project is MySQL database which is hosted inside AWS RDS instance. For communication with other EC2 which does CV analysis I used AWS SQS system. Proxy used for API is Nginx.

  • Object Detection Using OpenCV and Swift (Publication)
    Swift is great, but what if your application relies on a library that’s written using C++? Luckily Objective-C++ is here to save the day. In this article, Toptal Freelance Swift Developer Josip Bernat integrates C++ code with Swift by using wrapper classes as a bridge and then creates an app that recognizes the Toptal logo using OpenCV.

Skills

  • Languages

    Swift, Objective-C, JavaScript, PHP
  • Frameworks

    iOS SDK, Cocoa, Core Data, Express.js, React Native
  • Libraries/APIs

    CocoaPods, Core Graphics, iOS Native Libraries, Facebook iOS SDK, Facebook Login, Google Places API, Google Maps SDK, Node.js, SpriteKit
  • Tools

    Xcode, CocoaTouch, GitHub, Bitbucket, Coda 2, Xcode Playgrounds, Amazon SQS, Visual Studio App Center, Sublime Text, Sketch, Adobe Analytics
  • Paradigms

    MVC Design, Object-oriented Programming (OOP), Agile Software Development, Generic Programming, Unit Testing
  • Platforms

    tvOS, iOS, watchOS, MacOS, Linux, AWS EC2, Visual Studio Code, SharePoint
  • Other

    Debugging, Profiling, AVFoundation, Project Planning, UI Testing, Team Leadership, Mentorship, React Native Bridge
  • Storage

    MySQL, SQLite, AWS RDS

Education

  • Bachelor's degree in Technical Sciences (Computer Engineering)
    2010 - 2013
    Zagreb University of Applied Sciences - Zagreb, Croatia

To view more profiles

Join Toptal
Share it with others