Download PDF

Summary

Hardworking highly motivated software engineer with 12 years of experience in backend and native mobile software development, thriving in polyglot environments, mostly experienced in Scala, J2EE, Java/Android, Objective-C/iOS ecosystems. Having extensive experience in managing distributed teams and building startups. My current professional goal is to focus on Scala tech stack and bring all my diverse experience to a team of the best specialists.

Accomplishments

  • As the head of mobile development orchestrated and deployed fully functional shipping conveyor for iOS and Android apps to deliver products for different customers. Shipping cycle time went down from several days\weeks to a few minutes.  

  • In 2011 successfully built from the ground up and launched an iOS application that generated >$30k in revenue (AudioNotepad HD).

  • Notable open source projects

    - portfolio - Collection of a small challenges that I did in the past
    realm-sbt-plugin - SBT plugin to bring Realm.io to scala
    bitrader - Android client for crypto trading platforms written in Scala (work-in-progress, very early stage)

Work History

Jan 2017Aug 2017

Backend Scala Engineer

FoxCommerce

Seattle based remote-first company focused to bring flexible and highly scalable e-commerce platform to the market. Having microservice based backend architecture with over 20 agents covering different aspects made it possible to build very reliable and fail-proof system. Backend tech stack was built on top of FP-loaded Scala codebase, with ElasticSearch, Kafka, PostgreSQL\Flyway.

Things I've been working on 

  • Payment's return implementation that relies on StripeAPI
  • Backend service implementation for Stripe's ApplePay APIs that included refurnishing and adopting this type of payment for existing checkout life-cycle.
  • Flyway per-migration testing to validate data migrations in CI stage
  • Building and strengthening Integration Tests infrastructure
  • Actively participating in a peer's PR review process on the github
  • Participating in ElacticSearch proxy service implementation with custom json-based DSL
  • Working on bugfixes and other stuff in order to bring more stability to the backend

 

May 2016Dec 2016

Partner \ Team Lead \ Software Engineer

Platforma Kubik

Small b2g\b2b startup with good financing aiming to deliver scalable IM system for government and big companies. My responsibilities were to participate in hiring people\technical interviewing, establishing team workflow, working on ios application.

iOS app - pilot app in partnership with http://emg.fm/

iOS Tech walkthrough

  • Legacy Obj-C iOS app with zero tests and poor architecture as a starting point.
  • Urge to deliver app release ASAP 
  • New functionality is being built while refreshing and refactoring existed architecture
  • Unidirectional data flow for event bus built on top of RAC signals turned out to be very easy and solid approach to fix the basics.
  • RAC signals everywhere - from networking upto ui notifications.
  • AsyncDisplayKit proved to be both excellent on performance (stable 60 fps on low-end phones) and very convenient as a layouting engine.
  • Deployment conveyor built with fastlane\slack notifications\youtrack integrations\full unit-testing on every beta build/auto-generated release notes
  • Unit-test everything, integration testing to seal the deal
Sep 2013Apr 2016

Head of Mobile Development 

Aptekarsk LLC

A small b2b startup focused on developing SaaS for pharmacy networks in Russia where I've been responsible for all mobile development. Effectively working as Senior Scala Developer \ Senior iOS Developer to lead the development process.

Android apps | iOS apps

iOS/Obj-C Tech and APIs:

  • Core API lib that incapsulated common business logic along with CocoaPods components: RestKit, YandexMapKit, Masonry, MagicalRecord,ShareKit, Instabug etc
  • Template .xcworkspace that combined lib API and common apps settings altogether. Serving as demo app (with demo styles\resources).
  • ruby script to generate\update new apps from a template, applying custom app\style settings, resources
  • fastlane for deployment

Android/Scala Tech and APIs:

  • Scala has been used for development to have highly composable and customizable UI. Since apps could have been having wildly different requirements for different customers.
    Macroid layouting DSL turned out to be very concise and reliable choice.
  • Toolchain with SBT + pfn/android-sdk-plugin + pfn/protify  for builds and fast dev cycle iterations
  • `Core API lib` that incapsulated all common business logic along with other components like play-services, macroid, retrofit, instabug
  • template app that integrated api lib and common app settings altogether
  • script to generate\update customer's apps from a template, resources, custom app\style settings
Jan 2010Aug 2013

Software Engineer

Independent Contractor

a few highlighted products I've been working on

AudioNotepad HD

Application designed for taking notes while recording audio to bind them together. Best for writing lectures, interview, recording discussions etc. All work was done solely by myself with an exception of some arts and icons. 

Overview:

  • 8000+ downloads, >14k sloc, top 11 paid apps in Russian AppStore, >$30k in revenue.
  • unique handwriting engine on a ScrollView 
  • content fitting feature on device orientation change

Technologies and APIs used:  CoreData with multithreading, CoreText for exporting to PDF, CoreGraphics for rendering additional graphics, AVFoundation to work with audio, libxml and libz for backup/data exchange, TestFlight, Dropbox/Evernote APIs

Умнотрейд

App was developed for Polar Star IFC stock trading company (now liquidated)  for stock trading, stock portfolio monitoring.

Technologies and APIs used:  RestKit, MagicalRecord, app look&feel hot swap with resource bundles (UI themes)

Endorsements
For a short period I've been working through Freelancer.com (My profile)

               ★★★★★   “Alexey delivered the project on time and on budget. His code was very clean. I would definitely hire him again.”  – jivkok, Principal Software Engineering Manager at Microsoft

               ★★★★★   “Alexey is an amazing programmer. I would definitely use him again for my next project. It was an easy process for me from start to finish.”  – Devol3617, Business owner.

Jun 2007Dec 2009

Senior Java Developer / Team Lead

Argussoft Int.

Project: Warehouse management system
length: 1.5 years 
size: ~120 tables, ~ 500 forms.
Role: Team Lead

Project was designed for small and middle size warehouses to maintain the whole cycle of business processes from receiving to shipping items. With billing subsystem, task-oriented time tracking for each BP, and bar-code printers support.

Technologies used: Spring Framework, Struts, Hibernate, DWR, Prototype, Jasper Reports. Building: Atlassian Bamboo, Ant.

Duties:

  • technical leading of a distributed team (2-3 devs in Moscow, up to 6 in Kaluga).
  • participating in project meetings/conversations
  • designing and implementing of core architecture
  • code reviewing, mentoring, technical interviewing
  • estimations planing and work scheduling
  • dispatching and administration of bug-tracking system (Jira).

Project: Project Operation System
length: 1 year
size: ~50 tables, ~ 200 forms
Role: Sr. Java Developer/Team Lead

The main purpose of the Project Operation System was to simplify and improve Project Management and Task Management. The system designed to be reliable and easy to work with. 
Technologies: Spring Framework, Struts, Hibernate. Bamboo, Ant, Jira.

Duties:

  • main development and code review.
  • estimations planing and work scheduling.
  • dispatching and administration of bug-tracking system (Jira).

Project: Medical data exchange system TRIAD-OA
been taking part in a project for <1 year
Role: C# Developer

System was designed to browse, transfer, archive DICOM image files. Developed for American College of Radiology

Duties:

  • designing and developing standalone module for system administrator functionality using MVP approach. 
  • Using ASP.NET, nHibernate.
  • R&D work on full-text search optimization with nLucene search engine.
Feb 2005Jun 2007

J2EE Developer

FORS – Development Center

Project: Workflow management system back-end for Moscow government.
length: 2+ years

Role: Java Developer/Deployment Engineer
Technologies used: Spring Framework, Web Services(jax-ws), OC4J, Maven, jUnit. Oracle 9i DB.

Duties:

  • development of functional and high-load testing processes using Rational software.
  • deployment to remote server, running under Solaris OS, administration.
  • remote developers coordination and analytical support (outsource team in Minsk, Belarus).
  • customer support (on\off-site)

Project: Archive management system for FTS Russia
length:  0.5 year
Role: Java Developer/Deployment Engineer
Technologies used: J2SE, Swing, jUnit.

Duties:

  • UI development (Swing) based on proprietary domain system.
  • jUnit-testing
  • client on-site system deployment and support.

Education

20062008

Post-graduate study

Keldysh Institute of Applied Mathematics

Specialization: computational modeling and visualization of heterogenous particle systems.

20002006

MS in Computer Science

Moscow Aviation Institute (National Research University)

Faculty of applied mathematics and physics, department of computational mathematics and programming.

Skills

Scala Backend (<1 year)

FP-loaded Scala codebase, PostgreSQL, Flyway, ElasticSearch, Kafka 

Scala + Android (3 years)

Android API, gradle, sbt, pfn/android-sdk-plugin, macroid\scaloid, retrofit etc

J2EE (>5 years)

Spring Framework, Hibernate, Oracle,
Web Services(jax-ws), IntelliJ IDEA (ver 5.x – 15.x)

iOS + Objective-C (>5 years)

CocoaPods, RestKit, AsyncDisplayKit, MagicalRecord, AppCode IDE etc

.NET (<1 year)

ASP.NET, nHibernate, ReSharper