Scroll To View More
Michal Pietras, C Developer in London, United Kingdom
Michal Pietras

C Developer in London, United Kingdom

Member since July 3, 2015
Michal is a software engineer who has specialized in developing for 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 interest in low-level programming. When writing code, he always aims for the cleanest solution possible and well-architected code. In his spare time, he enjoys studying algorithms and taking part in programming competitions.
Michal is now available for hire

Portfolio

  • Michal Pietras Apps
    OS X, iOS, FreeBSD, C, C++, Objective-C, Swift, Xcode, Instruments...
  • Firefly Experience
    iOS, Swift, C++, Xcode, Instruments, Git, Core Location, Core Motion...
  • Travelex
    iOS, Objective-C, Swift, Xcode, Storyboards, Auto Layout, Git, Cocoa Touch...

Experience

  • C, 12 years
  • Algorithms, 12 years
  • Xcode, 9 years
  • iOS, 9 years
  • Objective-C, 9 years
  • Git, 7 years
  • Unit Testing, 7 years
  • Swift, 1 year
London, United Kingdom

Availability

Part-time

Preferred Environment

OS X, iOS, watchOS, tvOS, FreeBSD, Xcode, Vim, Git

The most amazing...

...thing I've created is a framework for processing users' historical raw location data into clean polylines visualizing past journeys for the Firef.ly App.

Employment

  • 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: OS X, iOS, FreeBSD, C, C++, Objective-C, Swift, Xcode, Instruments, Storyboards, Auto Layout, Git, Cocoa Touch, Core Graphics, SQLite, Algorithms, Data Structures, TDD
  • 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: iOS, Swift, C++, Xcode, Instruments, Git, Core Location, Core Motion, Core Data, SQLite, Map Kit, MapBox, Algorithms, Data Structures, Concurrent Programming, TDD
  • 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: iOS, Objective-C, Swift, Xcode, Storyboards, Auto Layout, Git, Cocoa Touch, UIKeyInput, PCRE, JSON, JSON REST API, MVVM
  • 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: iOS, Objective-C, Xcode, Storyboards, Auto Layout, Git, Cocoa Touch, JSON, JSON API, JSON REST API, Unit Testing
  • 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: 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
  • 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: C, C++, STL, SQLite, Algorithms, Data Structures, Unit Testing

Experience

  • Lightweight Cloudlet Platform for Cyber Foraging by Mobile Devices (Development)

    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.

  • Travelex Money (Development)
    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ć (Development)

    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 (Development)

    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 (Development)

    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 (Development)

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

  • Michal is a mentor in the Toptal Global Mentor’s Program. This program is a partnership between Toptal and General Assembly to provide high quality mentorship for students from minority and low income backgrounds who are looking to begin their careers as professional software engineers. Michal shows commitment to diversity in tech by mentoring a General Assembly student every week for a year, covering everything from coding tips and tricks to advice on making it in the industry.

Skills

  • Languages

    Swift, Objective-C, C, C++
  • Frameworks

    ZURB Foundation, MapKit, Core Location, Core Motion, Core Media, AudioToolbox, Core Data, Cocoa Touch, Core Foundation
  • Libraries/APIs

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

    Instruments, Auto Layout, Git, Xcode, Grand Central Dispatch
  • Paradigms

    Unit Testing, Key-Value Observing (KVO), Design Patterns, Event-driven Programming, Concurrent Programming, Object-oriented Design (OOD), Object-oriented Programming (OOP), Model View Controller (MVC), Testing, Model View Viewmodel (MVVM), Functional Programming, Test-driven Development (TDD), Distributed Programming
  • Platforms

    MacOS, FreeBSD, iOS, MapBox, watchOS, tvOS
  • Storage

    SQLite, JSON
  • Other

    Algorithms, Network Programming, Debugging, Creative Problem Solving, Data Structures, AVFoundation, UI Kit, Unix Shell Scripting

Education

  • Bachelor of Engineering (Hons) degree in Electronic & Software Engineering
    2010 - 2013
    University of Glasgow - Glasgow, Scotland, United Kingdom
  • Transfer to the University of Glasgow from a Bachelor of Engineering degree in Computer Science
    2009 - 2010
    Warsaw University of Technology - Warsaw, Poland
I really like this profile
Share it with others