Josip Bernat
Verified Expert in Engineering
Software Developer
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
Experience
- iOS - 10 years
- Objective-C - 9 years
- Swift - 6 years
- tvOS - 3 years
- Amazon EC2 - 2 years
- Node.js - 2 years
- MySQL - 1 year
- WatchOS - 1 year
Availability
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
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.
Lead iOS Developer
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.
iOS Developer
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.
iOS Developer
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.
iOS and Node.js Developer
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.
iOS and React Native Developer
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.
iOS Developer
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.
iOS Developer
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.
Experience
Kino.de
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
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=12TankenApp mit Benzinpreistrend
https://apps.apple.com/de/app/tankenapp-mit-benzinpreistrend/id627468788I 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
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
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
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.appAll 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.
Education
Bachelor's Degree in Technical Sciences (Computer Engineering)
Zagreb University of Applied Sciences - Zagreb, Croatia
Skills
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
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
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, Desktop App Development
Platforms
tvOS, iOS, Mobile, WatchOS, MacOS, Linux, Amazon EC2, Visual Studio Code (VS Code), Firebase, Mapbox, Ubuntu, SharePoint, Google Ads, iCloud, Shopify, Amazon Web Services (AWS), Desktop
Storage
MySQL, SQLite, MariaDB, Redis, Data Synchronization, Redis Cache
Other
Debugging, Code Review, API Integration, Architecture, Mobile App Development, User Interface (UI), iOS 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, Subscriptions, Videos
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring