Milos Fec, Developer in Prague, Czech Republic
Milos is available for hire
Hire Milos

Milos Fec

Verified Expert  in Engineering

Software Developer

Location
Prague, Czech Republic
Toptal Member Since
January 28, 2016

Milos is passionate about Android, and his work experience reflects that. He has built Java applications, creating native C/C++ libraries and Java wrapper classes using JNI and C# .NET using MonoDroid. He has worked as the team lead and developed a modified Android OS for a payment terminal with a high focus on security, including Linux hardening. Milos has also introduced new system apps, services, and Android framework modifications.

Portfolio

Prusa
C, C++, ARM Embedded, FreeRTOS, Bootloaders, Embedded Development...
2N
Jenkins, Jira, Gerrit, Git, Linux Kernel, Java, C++, C, Android SDK...
2N
GitLab CI/CD, GitLab, Jenkins, Gerrit, Confluence, Jira, Git, C++, C, Java...

Experience

Availability

Part-time

Preferred Environment

Git, Android Studio, Linux, MacOS

The most amazing...

...work I've done was the Android OS development for an unique payment terminal called Aevi Albert.

Work Experience

External Consultant | Firmware Developer

2021 - PRESENT
Prusa
  • Provided consultancy regarding development standards, workflow, and processes in order to provide high-quality and maintainable solutions.
  • Designed, documented, and implemented platform-specific safe ways to update the bootloader.
  • Implemented POSIX filesystem calls for small ARM Embedded platform, including FAT and LittleFS filesystem mounting.
  • Prepared Python framework for automatic tests of the firmware using QEMU emulator.
Technologies: C, C++, ARM Embedded, FreeRTOS, Bootloaders, Embedded Development, Software Design, Embedded C++, Embedded Systems, Low-level Programming

External Consultant | System Developer

2020 - PRESENT
2N
  • Identified and fixed critical bugs of Android devices (Kernel, Linux binaries, system services), preparing tools and custom builds for monitoring specific issues.
  • Cooperated on the development of a new Android device (OS development, architecture, security).
  • Consulted regarding Android API, system services, and optimizations.
Technologies: Jenkins, Jira, Gerrit, Git, Linux Kernel, Java, C++, C, Android SDK, Android NDK, Embedded Development, Software Design, Embedded C++, Embedded Systems, Low-level Programming, Kotlin

Head of Mobile Platforms

2018 - 2020
2N
  • Helped prepare an Android device for release by fixing several critical bugs in the Bootloaders, Kernel, Android recovery, and framework.
  • Introduced quality standards on coding style, commit style, and workflow.
  • Refactored legacy solutions to use Android and Linux standards, improving stability and maintainability.
  • Fixed long-term issues of older Android devices. Used Android framework and apps, Kernel drivers, and Native Daemon.
  • Closely cooperated on designing a new product for both software and hardware.
  • Cooperated with multiple departments and suppliers on software, hardware, manufacturing, and quality control.
  • Identified security issues before implementation and designed solution improvements to prevent risks.
  • Led a team of five developers working on the system and Android apps.
Technologies: GitLab CI/CD, GitLab, Jenkins, Gerrit, Confluence, Jira, Git, C++, C, Java, Android API, Android NDK, Android SDK, Embedded Development, Software Design, Embedded C++, Embedded Systems, Low-level Programming, Kotlin, AOSP

Developer | Owner | CEO

2009 - 2018
Limeas
  • Designed and developed J2ME applications according to the client's specifications.
  • Consulted companies that were creating Android multimedia applications (using DRM).
  • Developed Android apps that implement ad services, Google Analytics, and Play Store In-app billing.
  • Developed an Android service running in a separate process for a large bitmap manipulation (preventing memory fragmentation in the app's main process).
  • Created an Android library providing extended functionality (new Views and ViewGroups, Drawables, media manipulation, and other tools).
  • Gained experience with miscellaneous Android libraries and tools (Android support libraries, third-party libraries, a DDMS/Device Monitor, and MemoryAnalyzer).
  • Hired and coached several developers working on Android apps, Cloud services, and website.
Technologies: Git, Android, C#, C, C++, J2ME, Java, Software Design, Bluetooth, Low-level Programming, Kotlin

Android Developer

2017 - 2017
Techona
  • Integrated WebView with optimizations (pre-caching of resources).
  • Implemented an advanced filter and search engine.
  • Wrote automated UI tests (Espresso and Appium).
  • Automated the build process for many build variants.
  • Created the architecture for the project and refactored it (MVP pattern).
Technologies: Python, Appium, Espresso, Java, Software Design

Android Developer

2016 - 2016
Datasys
  • Automated UI tests (Appium).
  • Integrated communication with the payment terminal.
  • Integrated printing using thermal printer.
  • Created custom printing library with hi quality bitmap generation.
  • Refactored XML layouts and styles for clean, reusable, and maintainable code.
  • Implemented synchronization of local database with the server.
Technologies: Appium, Java, Bluetooth

Android Team Lead

2016 - 2016
Chess.com
  • Analyzed and refactored code to use the MVP pattern.
  • Created reusable views and components using a common app style.
  • Added new features, focused on long term stability and maintainability.
  • Cleaned up Git branches, specified and applied Git workflow.
  • Set up processes for issues tracking, Jira workflow, app versioning, and release planning.
  • Wrote documents about project structure, code style, commit style and other standards.
  • Set up quality assurance and release processes for Android application.
  • Led team of five Android developers, all working remotely.
Technologies: Fabric, Amplitude, Dagger, Android, Java, Software Design

SW Architect | Team Leader

2013 - 2015
Wincor Nixdorf
  • Optimized an app UI for better HW acceleration performance.
  • Created an Android library for communication with an asynchronous dial-up USB modem connecting to a banking server using an asynchronous dial-up modem.
  • Cooperated with an external company providing security features, implemented Linux hardening on an Android 4.0 operating system, modified permissions to fulfill requirements, and gained PCI certification.
  • Introduced new system apps and services to maintain security features above the scope of the regular Android operating system.
  • Modified an Android framework, specifically the UI and back-end functionality.
  • Led a team of seven developers working on the Android operating system.
Technologies: C, C++, Java, Software Design, Embedded Systems, Low-level Programming, AOSP, Gerrit

Mobile Developer

2008 - 2013
Resco.net
  • Created Windows Mobile applications (C/C++).
  • Built a library for communication with Bluetooth headsets (AVRCP).
  • Developed Android applications (Java).
  • Developed an Android local proxy server for internet radio streaming with the added functionality of reading meta tags (song info) and recording stream simultaneously with playback.
  • Worked on a multi-platform project Mobile CRM (Windows Mobile, Windows Phone, Android, iOS) using MonoDroid.
  • Constructed native libraries (C/C++) with corresponding Java libraries (using JNI), integrated Java libraries into C# MonoDroid project.
Technologies: MonoDroid, .NET, C#, Java, C, C++, Software Design, Bluetooth, Low-level Programming

Excel Macro Specialist

2007 - 2008
IBM
  • Created Excel macros using Visual Basic for Applications.
  • Worked with IBM Lotus Notes.
  • Built a connection between MS Excel and IBM Lotus Notus (using Microsoft Component Object Model).
  • Created an automated Excel document export with a combined data of more Excel files.
  • Developed automated emails with content and recipients generated based on the attached Excel document.
Technologies: Visual Basic, Microsoft Excel

Resco Mobile CRM

http://www.resco.net/mobilecrm/
A multiplatform mobile application for (not only) Microsoft Dynamics CRM.

Aevi Albert

A new kind of payment terminal using Android OS.

Clean It

A simple Android game released in December 2011 which gained 250,000 downloads within the first month.

Slidey

A sliding puzzle Android game supporting image importation, optimized for low-end devices, and handles large bitmap loading in a separate process.

Chess.com

https://play.google.com/store/apps/details?id=com.chess
Play chess with more than 10 million players around the world and solve more than 50,000 puzzles. You can get access to thousands of videos and interactive lessons from top Grandmasters and many more features.

Indoor Touch 2.0

https://www.2n.cz/en_GB/products/answering-units/2n-indoor-touch-2
The 2N® Indoor Touch 2.0 answering unit guarantees reliable video door communication. The Android OS, more powerful hardware, and simple user interface make it easy to integrate the 2N® Indoor Touch 2.0 with third-party applications. For example, home automation systems can be comfortably operated on the 7“ touch screen made of tempered glass.

Languages

C, Java, C++, Kotlin, Embedded C++, Visual Basic, Python, C#, SQL, XML

Frameworks

Android SDK, JNI, .NET, Espresso, Appium, Dagger, Dagger 2, GStreamer

Libraries/APIs

Android API, Fabric, FFmpeg

Tools

Git, Jira, Android Studio, Android NDK, Microsoft Excel, Confluence, Gerrit, Jenkins, GitLab, GitLab CI/CD, U-Boot, TeamCity, Subversion (SVN), Eclipse Memory Analyzer, MonoDevelop, TFS, Eclipse IDE

Platforms

Android, Linux, J2ME, NetBeans, Android TV, MacOS

Other

Low-level Programming, Embedded Development, Software Design, Embedded Systems, MonoDroid, Amplitude, Linux Kernel, Linux Kernel Drivers, ARM Embedded, FreeRTOS, Bootloaders, OkHttp, Digital Rights Management (DRM), Bluetooth, AOSP

Paradigms

Model View ViewModel (MVVM), Model View Presenter (MVP), Scrum, Agile Software Development

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