Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mgrebenets/mgrebenets-profile
Profile
https://github.com/mgrebenets/mgrebenets-profile
Last synced: 6 days ago
JSON representation
Profile
- Host: GitHub
- URL: https://github.com/mgrebenets/mgrebenets-profile
- Owner: mgrebenets
- Created: 2014-01-02T02:16:47.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2019-12-18T00:06:47.000Z (about 5 years ago)
- Last Synced: 2024-10-31T22:12:57.392Z (about 2 months ago)
- Size: 74.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Maksym Grebenets
| Personal | Details |
| ------------- | ---------------------------------------------------------------- |
| Location | Sydney, Australia |
| Mobile | 0415 048 805 |
| Blog | https://mgrebenets.github.io |
| Medium | https://medium.com/@maksymgrebenets |
| GitHub | https://github.com/mgrebenets |
| LinkedIn | https://au.linkedin.com/in/mgrebenets |
| HackerRank | https://www.hackerrank.com/mgrebenets |
| StackOverflow | https://stackoverflow.com/users/1095277/i4niac |
| Coursera | https://www.coursera.org/user/i/66b48af35b7a3e54fdf15aff3da8a918 |
| Email | [email protected] |## Summary
I've been iOS developer for more than 11 years now.
What started as a hobby in 2007 is now my full time job and main area of expertise.I strongly believe that best practices are essential for successful development and collaboration and therefore need to be established, followed and oftentimes enforced. _Warnings are Errors_ is an axiom for me. I've been using tools like SwiftLint, SwiftFormat, Danger and other linters and formatters with great results. I even had a go at [implementing a Swift regactoring action](https://mgrebenets.github.io/swift/2019/02/01/swift-refactoring-intro).
One of my key strenghts is designing modular architecture and building reusable native frameworks. I have experience with using various dependency management tools and applying right design patterns while building software.
I've got great passion for build and automation tools. Digging deep into Apple code signing process led me all the way into Fastlane core contributors team. Recently I've been using Buck to build a dozen of internal frameworks.
To be able to apply all the tools, I've worked hands on with continuous integrations solutions, such as Jenkins, Bamboo, TeamCity and Xcode Bots.
I [blog](https://mgrebenets.github.io) about things I [learn](https://medium.com/@maksymgrebenets).
## Professional Skills
- Programming Languages & Technologies
- Swift, Objective-C/C++, C, C++, Java, Ruby
- HTML, XML, HTTP(S), JSON, XMPP, REST, UML 2.0, Smart Cards, etc.
- Google App Engine, Google Web Toolkit, JDO
- Scripting skills with Bash, Ruby, Python, Perl
- Build systems: Buck, Bazel
- Platforms & Operational Systems
- iOS – strong development experience (11+ years), [App Store Apps](http://appstore.com/i4napps)
- Android OS - fair development experience (~3 years), [Google Play Apps](https://market.android.com/search?q=i4napps&so=1&c=apps)
- Embedded OS: pSOS, ThreadX, VxWorks, Embedded Linux – strong development experience (6+ years)
- Google App Engine and Google Web Toolkit - strong development experience (~2 years)
- Mac OS X, Linux OS, MS Windows - experienced user and developer
- Tools & Applications
- IDEs: Xcode, Eclipse, MS Visual Studio, etc.
- Source control: git, SVN, CVS, Clear Case
- Continuous Integration: Hudson, Jenkins, Bamboo, Team City, Travis CI, Circle CI, Xcode Bots
- Debugging tools, bug tracking, build environments, etc.
- IBM Rational Software CASE-tools: Clear Quest, Rational Rose
- Math software: Maplesoft Maple, Octave## Work Experience
### Specialist Software Engineer - iOS
*[Commonwealth Bank of Australia](https://www.commbank.com.au/personal/online-banking/commbank-app.html)*
February 2017 - Present | Sydney, CBD
### Senior Software Engineer - iOS
*[Commonwealth Bank of Australia](https://www.commbank.com.au/personal/online-banking/commbank-app.html)*
September 2015 - February 2017 | Sydney, CBD
After joining CBA iOS team I have worked on a number of features for [CommBank Tablet app](https://itunes.apple.com/au/app/commbank-app-for-tablet/id447020285?mt=8) and [CommBank iPhone app](https://itunes.apple.com/au/app/commbank/id310251202?mt=8).
Currently I am part of a core team developing reusable native iOS frameworks for core banking functionality.
I have also set up continuous integration pipelines for dozens of iOS framework projects and a handful of iOS app projects using [Fastlane tools](https://fastlane.tools/) and [TeamCity](https://www.jetbrains.com/teamcity/) job templates. Pipelines include such jobs as:
- Standard CI jobs: build, test, code coverage, lint, analyze, report, etc.
- Resigning builds for App Store distribution
- Automatic uploads to App Store Connect
- Creating iOS simulator and device builds for UI automation tests### Senior iOS Developer
*[Fairfax Media](http://www.fairfaxmedia.com.au/)*
October 2014 - August 2015 (10 months) | Sydney, CBD
Working on new versions of iPad apps, such as
- Australian Financial Review
- Brisbane TimesDeveloping native iOS apps full-time I work with core iOS technologies and frameworks, including Auto-Renewable iTunes Subscriptions and Push Notifications.
I was also responsible for setting, configuring and managing Continuous Integration and Delivery for iOS apps. This job involved managing Jenkins instance, supporting builds for multiple branches and pull request, uploading builds automatically to HockeyApp, TestFlight and for Over The Air distribution.
### Developer in Test for Mobile
*[News Corp Australia](http://newscorp.com/)*
April 2013 - October 2014 (1 year 7 months) | Sydney, CBD
Working as Developer in Test for Mobile was a new step in my career development as iOS (Mobile) Developer.
This was an excellent opportunity to see the "dark side" of mobile development, in particular, get a hands-on experience with such tasks as continuous integration and deployment, build automation, automated unit and integration tests, code coverage reports, UI tests automation, static code analysis, test reports and integration with issue tracking systems.
#### Build Automation
- Setup and configure Bamboo/Jenkins build server
- Configure AWS Linux instance to build Android apps
- Create and configure build plans for iOS, Android and Ruby applications
- Use Atlassian CLI plugin for integration with JIRA
- Automatically create, release and archive project versions in JIRA
- Automatically create issues for failed tests
- Build, package, archive and distribute iOS and Android applications
- Use command line tools like `xcodebuild`, `xcrun ...`, `codesign`, `xctool`, `nomad-cli`, `iTMSTransporter`, `aapt`, Atlassian CLI Client, etc.
- Create app manifest for OTA (Over the Air) distribution of enterprise iOS builds
- Run static analysis (clang, OCLint) for iOS projects
- Generate and publish source code documentation (appledoc, yard, javadoc)#### UI Tests Automation
- Use Calabash framework for iOS and Android
- Design and create cross-platform (iOS and Android) test suites using Cucumber, Ruby and shell scripts
- Run UI automation tests automatically as part of continuous integration process (on iOS Simulator, Android Emulator and real devices as well)
- Contribute to iOS and Android app source code by adding accessibility labels and identifiers#### Gained Experience
In this role I got to improve and learn a number of skills.
- Setting up and configuring build environment for mobile apps
- Getting to know the guts of iOS app signing and packaging process
- Learned a new programming language - Ruby
- Writing shell scripts to automate day to day routine tasks
- Get more iOS and Android experience from interacting with the dev team
- Learn about setting up and managing AWS cloud instance### Senior iOS Developer
*[Tata Consultancy Services (TCS)](http://www.tcs.com/worldwide/australia_new_zealand/ANZ/Pages/default.aspx)*
October 2012 - April 2013 (7 months) | Sydney, CBD
Worked for TCS clients.
#### Senior iOS Developer
*[Fuji-Xerox Australia](http://www.tcs.com/worldwide/australia_new_zealand/ANZ/Pages/default.aspx)*
October 2012 - April 2013 (7 months) | Sydney, CBD
Developed an iOS application for Fuji-Xerox Image Gateway enterprise solution.
http://appstore.com/igamobileforenterprise##### App Features
- Universal iPhone/iPad app
- Print documents from iOS device
- Print documents from Document Management System (DMS)
- Print pictures from iOS device albums and camera
- Upload documents from iOS device to DMS
- Upload album pictures and camera snapshots to DMS
- Scan documents directly from Multi-Functional Device to iOS device### Lead iOS Developer
*[Monkeybars Inc.](http://monkeybars.net)*
December 2011 - September 2012 (10 months) | Sydney, CBD
Developed mobile client application for social platform (http://appstore.com/monkeybarsinc).
#### App Features
- Universal application running on iPhone and iPad
- Integration with social networks
- Upload and preview content (audio/video streaming)
- Rate and comment on content### Senior Software Engineer
*[Samsung Electronics, HQ](http://samsung.com)*
October 2004 - October 2011 (7 years 1 month) | Suwon, South Korea
Department: *IT Solutions Division (500+ people)*
Team: *Multi Functional Printer (MFP) System Firmware*#### Major Duties
- Meet with clients to discuss system requirements, specifications and schedules
- Assemble and lead development teams working on new features and components
- Design, develop, implement (C, C++, Java), test and support new applications
- Troubleshooting analysis and client on-site support#### Projects and Features
- Google Cloud Print (HTML, JSON, C, Java, Google API) - design and implement firmware component for Cloud-Aware printers (current project)
- Designed and implemented Common Access Card solution for MFP (compliant with FIPS, NIST and DoD standards)
- Worked with PKCS#11 API, CCID class, APDU commands, PIV/CAC cards
- Designed and implemented Job Queue Management features: promote, hold/release, interrupt/pause/resume job, secure/sample/delay/stored print job, broadcast/batch/priority/delay/poll fax jobs
- Worked on support for Internet Printing Protocol (IPP), Common UNIX Printing System (CUPS), Web Services on Device (WSD for Windows Vista, 7)
- Being involved in a number of Xerox projects. Working with Xerox Extended Interface Platform (EIP), Xerox Common Application Domain Interface (CADI)#### Gained Experience
- Analyzing and managing software requirement specifications
- Defining projects work scope and timeline
- Assembling and leading development teams working on new features and components
- Designing, developing, implementing, testing and supporting new applications
- Working and communicating in a big group (100+) of developers
- Taking part in all stages of product’s life cycle### Research Student
*[Intel Student's Teaching and Research Lab at MSU](http://fao.cs.msu.su/content/intel-student%E2%80%99s-teaching-and-research-lab-msu)*
September 2003 - June 2004 (9 months) | Moscow, Russian Federation
Developed components for Open MPI debugging tool.
### Internship as Software Test Engineer
*["SAIR", Privately Held Company](http://mapia.ua/en/sevastopol/software-development/pe-sair--800021)*
September 2003 - June 2004 (3 months) | Sevastopol, Ukraine
Developed automation tests for XML generation software created by [EDIFECS](http://www.edifecs.com/).
## Education
### Coursera Online Education
2011 - Present | Online
*Homepage: http://www.coursera.org*
- Design and Analysis of Algorithms (Part I)
- Design and Analysis of Algorithms (Part II)
- Game Theory
- Machine Learning
- Functional Programming Principles in Scala
- Cryptography (Part I)### Lomonosov's Moscow State University
1999 - 2004 (5 years) | Moscow, Russian Federation
*Homepage: http://www.msu.ru/en/*
- Bachelor of Computer Science & Mathematics
- High Hons## Personal Skills & Interests
---
- An open minded team player willing to communicate and learn
- Approaching stressful situations with a bit of humor, but never backing out
- Enjoying various activities like table tennis, pool, foosball, volleyball, board and card games, and more