Josip Bernat, Developer in Zagreb, Croatia
Josip is available for hire
Hire Josip

Josip Bernat

Verified Expert  in Engineering

Software Developer

Location
Zagreb, Croatia
Toptal 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.

Portfolio

SeeWorkGrow
iOS, Core Data, iPad, Sketch, Data Synchronization, HTML, HTML Email, CocoaPods...
Stroeer Media Brands Apps
MacOS, Xcode, Objective-C, Swift, iOS, Flutter, Dart, SDKs, Mobile Development...
Streamland Media
iOS, tvOS, HTTP Live Streaming (HLS), AVPlayer, Core Data, iPad...

Experience

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.

Work Experience

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, Mobile App Design, Mobile, Architecture, Mobile App Development

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, Location Services and Maps, Mobile App Design, Mobile, API Integration, Cross-platform, Architecture, Mobile App Development

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, Mobile, API Integration, Mobile App Development

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, Mobile, Mobile App 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, REST, Google Maps API, Mobile App Design, Mobile, API Integration, Mobile App 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, Mobile, Mobile App 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, REST, Mobile, Mobile App 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, REST, Mobile App Design, Mobile, API Integration, Mobile App Development, Instant Messaging

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

SessionLife

http://sessionlife.app
A Swift-based MVVM app made as the best companion for EOS implementers. In short, this app is the best tool for capturing handwritten notes during EOS sessions.

All notes are stored in the database, and ink files representing handwritten writing are saved to the file system. Saving and viewing ink files helps users to remember the situation when the note was written more efficiently.

With stored data, the app is capable of generating reports such as revenue and profit reports and displaying them in either a table or a chart.
Stored data is also used for analyzing and providing previous data into new sessions so that EOS implementers can have more comprehensive discussions with their clients.

Session reports can be exported in HTML for easy sharing or simple documentation. Data backup and restore is implemented using iCloud so the user never loses the data.

To use all feature sets, the user must have a valid subscription that can be purchased through the iOS IAP service.

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, Google Maps API, Apple Subscriptions, Shopify API

Tools

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

Paradigms

MVC Design, Object-oriented Programming (OOP), Agile Software Development, REST, Mobile Development, Design Patterns, Generic Programming, Unit Testing, Mobile App Design, Agile, Model View ViewModel (MVVM), Cross-platform

Platforms

tvOS, iOS, Mobile, WatchOS, MacOS, Linux, Amazon EC2, Visual Studio Code (VS Code), Firebase, Mapbox, Ubuntu, SharePoint, iCloud, Shopify, Amazon Web Services (AWS)

Other

Debugging, Code Review, API Integration, Architecture, Mobile App Development, Profiling, AVFoundation, Project Planning, UI Testing, Team Leadership, Mentorship, React Native Bridge, Video Chat, Back-end, APIs, Authentication, SDKs, Location Services and Maps, Full-stack, Instant Messaging, 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, Subscriptions

Storage

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

2010 - 2013

Bachelor's Degree in Technical Sciences (Computer Engineering)

Zagreb University of Applied Sciences - Zagreb, Croatia

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring