Software Engineer2008 - PRESENTMichal Pietras Apps
Technologies: OS X, iOS, FreeBSD, C, C++, Objective-C, Swift, Xcode, Instruments, Storyboards, Auto Layout, Git, Cocoa Touch, Core Graphics, SQLite, Algorithms, Data Structures, TDD
- 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 Scientist2016 - 2016Firefly Experience
Technologies: iOS, Swift, C++, Xcode, Instruments, Git, Core Location, Core Motion, Core Data, SQLite, Map Kit, MapBox, Algorithms, Data Structures, Concurrent Programming, TDD
- 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 Engineer2015 - 2015Travelex
Technologies: iOS, Objective-C, Swift, Xcode, Storyboards, Auto Layout, Git, Cocoa Touch, UIKeyInput, PCRE, JSON, JSON REST API, MVVM
- 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 Engineer2015 - 2015Beamly
Technologies: iOS, Objective-C, Xcode, Storyboards, Auto Layout, Git, Cocoa Touch, JSON, JSON API, JSON REST API, Unit Testing
- 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 Engineer2013 - 2015Blinkbox Music
Technologies: iOS, Objective-C, Xcode, Instruments, Storyboards, Git, Cocoa Touch, Core Audio, Audio Toolbox, AV Foundation, Core Media, Grand Central Dispatch, Key-Value Observing (KVO), SQLite, FMDB, JSON, JSON REST API, Concurrent Programming, Unit Testing
- 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 Engineer2009 - 2013Lublin University of Technology
Technologies: C, C++, STL, SQLite, Algorithms, Data Structures, Unit Testing
- Developed a suite of grid model data verification, conversion, and analysis tools.
- Implemented various graph algorithms.