Josip Bernat, Software Developer in Zagreb, Croatia
Josip Bernat

Software Developer in Zagreb, Croatia

Member since July 30, 2018
Josip is an expert iOS developer with several years of experience in this field—he's been developing for iOS since the iOS 4 beta but vastly prefers the current state of iOS development with Objective-C and Swift. He also enjoys writing back-end APIs using Node.js. He is detail-oriented and likes to be deeply involved in a project with constant communication. Josip has 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

Terminal, Xcode, iOS, MacOS, tvOS

The most amazing...

...project I've coded is an application for finding movies in cinemas around the user, which runs on every iOS device.

Employment

  • iOS Developer

    2020 - PRESENT
    SeeWorkGrow
    • Developed an iPad application that stores handwritten textual notes into the database.
    • Implemented MyScript SDK for storing, viewing, editing, and converting handwritten text into String objects.
    • Collaborated tightly with the client in order to create the best possible UI/UX because the client didn't have any design files.
    • Onboarded a second developer in the application development flow.
    • Created an automation system for sharing data between client sessions. The database is manipulated using the CoreData system that has migrations that prevent data loss on existing customers.
    Technologies: iOS, Core Data, iPad, Sketch, Data Synchronization, HTML, HTML Email, CocoaPods, MyScript, Apple Pencil, Text Recognition, Charting, Mobile Development, iOS Native Libraries, Design Patterns
  • Lead iOS Developer

    2015 - PRESENT
    Stroeer Media Brands Apps
    • Led the team in the creation of a stunning user interface and user experience.
    • Communicated efficiently with the Android and back-end developers to sync the features across the 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: MacOS, Xcode, Objective-C, Swift, iOS, Flutter, Dart, SDKs, Mobile Development, iOS Native Libraries, Design Patterns
  • iOS Developer

    2021 - 2022
    Streamland Media
    • Added support for playing HDR video content and saving videos for offline playback.
    • Fixed bugs which client prepared and listed in GitLab.
    • Tested and deployed new features on both iOS and tvOS.
    Technologies: iOS, tvOS, HTTP Live Streaming (HLS), AVPlayer, Core Data, iPad, Mobile Development, iOS Native Libraries
  • iOS Developer

    2021 - 2021
    OKTO Digital
    • Developed an AR app that uses the camera to search for objects in a museum with interactive content for users.
    • Implemented AR tracking and asset recognition with a 3D scene interacting with standard 2D interface components.
    • Optimized AR search and image recognition, which led to improved search results and better CPU usage.
    Technologies: iOS, ARKit, Augmented Reality (AR), iOS SceneKit, Blender, Mobile Development
  • iOS and Node.js Developer

    2018 - 2021
    IntelliQuit (via Toptal)
    • Integrated a real-time camera capture analysis using OpenCV for detecting objects in the 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.
    • Created custom CMS using Node.js and Pug templating.
    • Stored data using MariaDB on AWS RDS alongside with Knex.js library for generating DB queries.
    • Supported cross-AWS instance communication using AWS SQS.
    • Established a Redis memory database for storing user sessions in CMS.
    Technologies: JSON Web Tokens (JWT), Redis, Pug, Ubuntu, JavaScript, Objective-C, Swift, C++, OpenCV, Amazon Simple Queue Service (SQS), Amazon EC2, MariaDB, Node.js, iOS, Authentication, Mobile Development
  • 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 an existing 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 that 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: SharePoint, Sketch, Core Data, JavaScript, Objective-C, React Native, iOS, Mobile Development
  • iOS Developer

    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 the MapBox map that updates the map position every time the scene was dragged.
    Technologies: MapKit, Mapbox, iOS, Amazon API Gateway, SpriteKit, Mobile Development
  • 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.
    • Developed video chat app with WebRTC and back-end communication system using Socket.IO and Node.js.
    Technologies: MySQL, PHP, iOS, WebRTC, Authentication, Mobile Development

Experience

  • Kino.de

    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 wrote a library for downloading images. I did this because 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 a 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

    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
    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
    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

    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

    IntelliQuit is an iOS application that helps users reduce tobacco usage by monitoring the level of tobacco in their urine. The app takes an image of a used NicCheck strip and then analyzes the given image using computer vision.

    My role was the development and maintenance of the iOS app and back-end API.

    PROJECT DETAILS
    • Wrote the iOS app in Swift and used MVC architecture.
    • Managed dependencies using CocoaPods.
    • Implemented the UI using Storyboards, Xibs, and native code.
    • Used OpenCV for the camera screen to detect the required elements inside the image; OpenCV is written inside C++.
    • Achieved communication with the rest of the Swift code using Objective-C++ classes.
    • Exposed the back-end APIs using REST API and the back end runs on Node.js inside an AWS EC2 instance.
    • Used a MySQL database that is hosted inside an AWS RDS instance.
    • Enabled communication with other EC2 instances (which does CV analysis) by using the AWS SQS system.
    • Used Nginx for the proxy used for the API.

  • Fussball Live-ticker Herzrasen

    A Swift-based app for viewing football matches in real time.

    Users can view previous, present, and future matches by subscribing to push notifications and receiving real-time updates on their favorite team.

    I was the lead developer involved in project and tech stack planning; I also delegated tasks to junior developers and implemented them. The project used the MVVM architecture alongside Combine SDK for processing events over time.

    The app is accessible only from the German and Croatian App Store through this link: https://apps.apple.com/hr/app/fussball-live-ticker-herzrasen/id529120477

  • 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, C++, Pug, PHP, HTML, Dart
  • Frameworks

    iOS SDK, Cocoa Touch, Cocoa, UIKit, Core Data, Express.js, SwiftUI, MapKit, JSON Web Tokens (JWT), React Native, ARKit, iOS SceneKit, Flutter
  • Libraries/APIs

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

    Xcode, GitHub, Bitbucket, Coda 2, Xcode Playgrounds, Amazon Simple Queue Service (SQS), Visual Studio App Center, Terminal, Sublime Text, Sketch, Adobe Analytics, MyScript, VS Code, AVPlayer, YouTrack, Blender, Moya, Apple Push Notifications, Zeplin
  • Paradigms

    MVC Design, Object-oriented Programming (OOP), Agile Software Development, Mobile Development, Design Patterns, Generic Programming, Unit Testing, Agile, Model View Viewmodel (MVVM), REST
  • Platforms

    tvOS, iOS, WatchOS, MacOS, Linux, Amazon EC2, Visual Studio Code, Firebase, Mapbox, Ubuntu, SharePoint
  • Other

    Debugging, Code Review, Profiling, AVFoundation, Project Planning, UI Testing, Team Leadership, Mentorship, React Native Bridge, Video Chat, Back-end, APIs, Authentication, SDKs, Amazon API Gateway, iPad, HTML Email, Apple Pencil, Text Recognition, Charting, Interviewing, HTTP Live Streaming (HLS), Augmented Reality (AR), tvOS UI, Amplitude, Algorithms, Ubuntu Server, Google Ads
  • Storage

    MySQL, SQLite, MariaDB, Redis, Data Synchronization, Redis Cache

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