Michal Pietras, Developer in London, United Kingdom
Michal is available for hire
Hire Michal

Michal Pietras

Verified Expert  in Engineering

Algorithms Developer

Location
London, United Kingdom
Toptal Member Since
April 26, 2016

Michal is a software engineer who has specialized in developing the iOS platform since the first SDK was released in 2008. Except for all things Apple, he's an open-source software fanatic with knowledge of FreeBSD and an interest in low-level programming. When writing code, Michal always aims for the cleanest solution possible and well-architected code. In his spare time, he enjoys studying algorithms and participating in programming competitions.

Portfolio

Mixhalo
Swift, C, Xcode, Instruments, Git, iOS, Algorithms, Data Structures...
Michal Pietras Apps
Test-driven Development (TDD), Data Structures, Algorithms, SQLite...
Firefly Experience
MapKit, Test-driven Development (TDD), Concurrent Programming, Data Structures...

Experience

Availability

Full-time

Preferred Environment

Git, Vim Text Editor, Xcode, FreeBSD, tvOS, WatchOS, iOS, OS X

The most amazing...

...thing I've created is a real-time audio engine for Mixhalo that allows real-time audio streaming for live events.

Work Experience

Founding iOS Software Engineer

2016 - PRESENT
Mixhalo
  • Architected and developed an event-driven ultra-low-latency audio engine based on AVAudioEngine and Audio Units for real-time audio streaming for live events over a custom Wi-Fi network, standard Wi-Fi network, and 5G.
  • Designed and implemented a custom reporting infrastructure facilitating passing events and data between threads with a lock-free performance characteristic.
  • Developed lock-free data structures based on atomic operations suitable for execution in a real-time context.
  • Designed non-blocking algorithms for measuring playback performance and adjusting playback parameters in real-time.
  • Heavily optimized code performance using Instruments and a custom reporting infrastructure.
Technologies: Swift, C, Xcode, Instruments, Git, iOS, Algorithms, Data Structures, Creative Problem Solving, Concurrent Programming, Event-driven Programming, Event-driven Architecture, Network Programming, Functional Programming, Grand Central Dispatch, Sockets, AVFoundation, Core Audio, AudioToolbox, JSON, UIKit, Auto Layout, Testing, Debugging

Software Engineer

2008 - PRESENT
Michal Pietras Apps
  • Developed popular and profitable iOS applications in-house.
  • Worked as a freelance software engineer for several clients on a contract basis, including startups, a university, and a well-established international company.
Technologies: Test-driven Development (TDD), Data Structures, Algorithms, SQLite, Core Graphics, Cocoa Touch, Git, Auto Layout, Instruments, Xcode, Swift, Objective-C, C++, C, FreeBSD, iOS, OS X

Contract Swift Software Engineer/Data Scientist

2016 - 2016
Firefly Experience
  • Ported various algorithms and data structures from C++ to Swift.
  • Designed and co-implemented a framework for processing users' historical raw location data into clean polylines visualizing past journeys.
  • Architected the framework as a pipeline with multiple stages of processing including filtering, detecting immobility, snapping close paths together, and hence creating a graph representation.
  • Developed a graph cache based on Core Data that allows efficient querying of any arbitrary area.
  • Created a highly optimized algorithm for converting part of a graph visible on the screen into polylines, including appending to existing polylines to avoid redrawing them, and removing ones that are no longer visible on the screen.
Technologies: MapKit, Test-driven Development (TDD), Concurrent Programming, Data Structures, Algorithms, Mapbox, SQLite, Core Data, Core Motion, Core Location, Git, Instruments, Xcode, C++, Swift, iOS

Contract iOS Software Engineer

2015 - 2015
Travelex
  • Worked as a part of an Agile team on Travelex Money app, and delivered numerous features, improvements, and bug fixes.
  • Refactored the card number validation framework in order to get rid of hard-coded data and enable validation as user types by using the PCRE library for partially matching regexes.
  • Reimplemented a custom keyboard and implemented a custom text field based on UILabel. Both were designed to communicate in the iOS native way using UIKeyInput protocol in order to take advantage of all the features provided by the operating system, like support for Bluetooth keyboards etc.
  • Co-delivered functionality to purchase more than one currency at the time, the biggest feature since the app launch. It required changes throughout the code base, including changing the flow of the application and reimplementing many screens from scratch using MVVM and Auto Layout.
Technologies: Model View ViewModel (MVVM), JSON REST APIs, JSON, Cocoa Touch, Git, Auto Layout, Xcode, Swift, Objective-C, iOS

Contract iOS Software Engineer

2015 - 2015
Beamly
  • Managed the full development lifecycle of Beamly and Beamly Bite apps, including building release versions and managing apps’ submissions to the App Store.
  • Resolved several issues in the legacy code and implemented a few minor features.
  • Involved in workshops regarding new features and products as well as building rapid prototypes.
  • Co-designed and co-implemented a generic and extensive framework based on NSURLSession for managing communication with JSON REST APIs.
Technologies: JSON REST APIs, Unit Testing, JSON API, JSON, Cocoa Touch, Git, Auto Layout, Xcode, Objective-C, iOS

iOS Software Engineer

2013 - 2015
Blinkbox Music
  • Worked as a part of a team with up to 8 iOS Software Engineers with strict coding guidelines and rigorous code review process.
  • Transitioned from Audio Queue Services to AVPlayer for playback of music and ads. Designed and implemented the Player Framework to seamlessly manage streaming and playing tracks from the encrypted cache, both locally and on external devices like Chromecast. Implemented playback from encrypted cache with probabilistic ahead loading using AVAssetResourceLoaderDelegate.
  • Refactored the cache encryption framework to allow decryption of arbitrary ranges within a track on the fly.
  • Co-redesigned and co-refactored the existing SQLite database system using FMDB framework. Fixed a number of bugs to ensure database consistency.
  • Prototyped and then implemented a number of features throughout the app, from API integration and data model creation to building UI according to specifications from designers.
Technologies: AudioToolbox, Unit Testing, Concurrent Programming, JSON REST APIs, JSON, SQLite, Grand Central Dispatch, Core Media, AVFoundation, Core Audio, Cocoa Touch, Git, Instruments, Xcode, Objective-C, iOS

Contract Senior Software Engineer

2009 - 2013
Lublin University of Technology
  • Developed a suite of grid model data verification, conversion, and analysis tools.
  • Implemented various graph algorithms.
Technologies: Unit Testing, Data Structures, Algorithms, SQLite, Standard Template Library (STL), C++, C

Lightweight Cloudlet Platform for Cyber Foraging by Mobile Devices

University final year self-defined project intended to develop a platform that enables mobile applications to offload any arbitrary CPU-intense or long-running tasks to a nearby Cloudlet infrastructure. Aimed to enable computational-intense applications on resource-constrained mobile devices and enhance battery life. Developed a working prototype written in C, including client library with Objective-C wrapper for iOS and server running on FreeBSD.

Mixhalo

https://apps.apple.com/us/app/mixhalo/id1227547571?itsct=apps_box_link&itscg=30200
Mixhalo is an iOS application that thousands of people have used in the audience to listen to high-quality audio using headphones during supported live events like concerts, festivals, sports events, and conferences. Past live events include Aerosmith’s Deuces Are Wild Las Vegas Residency at the Park Theater at Park MGM, Sting: My Songs Las Vegas Residency, Red Rocks Music Festival, and the Sacramento Kings NBA Games.

Travelex Money

https://itunes.apple.com/gb/app/travelex-money/id1008842996?mt=8
Travelex Money is an iOS application allowing to place orders for foreign currency from Travelex.

Jaka Sieć

Jaka Sieć is an iOS application that allows users to check a carrier of every Polish mobile phone number. It was highly rated and downloaded more than 25K times in Poland alone.

Heart Counter

Heart Counter is an iOS application that assists with manually measuring heart rate by keeping track of time and number of beats. The user only needs to tap a button whenever they detect a heartbeat. It features beautiful UI design and immersive animations.

Blinkbox Music

Blinkbox Music was an iOS client for leading music streaming service in the United Kingdom. It featured ad-supported free radio as well as paid subscription allowing on-demand playback and creating playlists.

Firef.ly

Firef.ly is an intelligent travel journal and guide for iOS.

Languages

Swift, Objective-C, C, C++

Frameworks

Core Location, Core Motion, Core Media, AudioToolbox, Core Data, Cocoa Touch, Core Foundation, UIKit, MapKit

Libraries/APIs

JSON API, REST APIs, Core Audio, Sockets, Core Graphics, Standard Template Library (STL)

Tools

Instruments, Auto Layout, Git, Xcode, Grand Central Dispatch, Vim Text Editor

Paradigms

Unit Testing, Design Patterns, Event-driven Programming, Concurrent Programming, Object-oriented Design (OOD), Object-oriented Programming (OOP), Model View Controller (MVC), Testing, Event-driven Architecture, Model View ViewModel (MVVM), Functional Programming, Test-driven Development (TDD), Distributed Programming

Platforms

OS X, FreeBSD, iOS, WatchOS, tvOS, Mapbox

Storage

JSON, SQLite

Other

Algorithms, Network Programming, Debugging, Creative Problem Solving, Data Structures, AVFoundation, Unix Shell Scripting, JSON REST APIs

2010 - 2013

Bachelor of Engineering (Hons) Degree in Electronic & Software Engineering

University of Glasgow - Glasgow, Scotland, United Kingdom

2009 - 2010

Transfer to the University of Glasgow From a Bachelor of Engineering Degree in Computer Science

Warsaw University of Technology - Warsaw, Poland

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