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.
ExperienceAlgorithms - 18 yearsC - 18 yearsObjective-C - 14 yearsOS X - 14 yearsiOS - 14 yearsXcode - 14 yearsGit - 14 yearsSwift - 8 years
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.
Founding iOS Software Engineer
- 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.
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.
Contract Swift Software Engineer/Data Scientist
- 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.
Contract iOS Software Engineer
- 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.
Contract iOS Software Engineer
- 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.
iOS Software Engineer
- 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.
Contract Senior Software Engineer
Lublin University of Technology
- Developed a suite of grid model data verification, conversion, and analysis tools.
- Implemented various graph algorithms.
Lightweight Cloudlet Platform for Cyber Foraging by Mobile Devices
Swift, Objective-C, C, C++
Core Location, Core Motion, Core Media, AudioToolbox, Core Data, Cocoa Touch, Core Foundation, UIKit, MapKit
JSON API, REST APIs, Core Audio, Sockets, Core Graphics, Standard Template Library (STL)
Instruments, Auto Layout, Git, Xcode, Grand Central Dispatch, Vim Text Editor
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
OS X, FreeBSD, iOS, WatchOS, tvOS, Mapbox
Algorithms, Network Programming, Debugging, Creative Problem Solving, Data Structures, AVFoundation, Unix Shell Scripting, JSON REST APIs
Bachelor of Engineering (Hons) Degree in Electronic & Software Engineering
University of Glasgow - Glasgow, Scotland, United Kingdom
Transfer to the University of Glasgow From a Bachelor of Engineering Degree in Computer Science
Warsaw University of Technology - Warsaw, Poland