Oleksii Fedorov

Contact

Bio

Oleksii helps software developers create clean applications in Kotlin language. Grab his free Ultimate Tutorial: Getting Started With Kotlin.

Specialities: Kotlin, Clean Code & Architecture, TDD, LEAN & Agile.

Skills summary

Current focus:

  • Mentorship, Teaching & Enablement – 2 years
  • Kotlin - 2 years
  • ECMAScript 6 – 1.5 years

Other skills:

  • Javascript - 4 years
  • Ruby - 3.5 years
  • Swift/iOS - 8 months
  • Python - 2 years
  • Golang - 2 years
  • Clojure - 1.5 year
  • Microservices - 2.5 year
  • Agile + XP - 4 years
  • Team Lead - 1.5 year
  • DevOps - 3 years
  • Open Source - 2 years
  • TypeScript – 7 months

Experience

Senior Software Engineer And Consultant

Pivotal Labs – April 2016 – Present | Berlin, Germany

Agile to the core and lean in practice.

http://pivotal.io/labs

  • A-B-T: Always Be Testing
  • Red. Green. Refactor.
  • Two Heads are Better Than One
  • Doing the Best Work

Senior Backend Developer (Microservices focus)

Brainly GmbH – June 2015 – March 2016 | Berlin, Germany

Brainly is an educational social learning platform for teens to gain new knowledge and to share their own knowledge with others.

Core responsibilities:

  • Contribution to microservices platform
  • Migration of legacy application to microservices platform bit-by-bit
  • Extensive code review
  • Supporting business with in-house tools
  • Sharing the knowledge about software development, people and processes

Technologies:

  • Chef, Terraform
  • Consul, Mesos, Marathon, Vault, Jenkins, Docker
  • Go, Crystal, Ruby
  • Cassandra, PostgreSQL
  • Zookeeper, Kafka
  • AWS SQS, S3, EC2, RDS
  • Immutable infrastructure

Achievements

  • Made big contribution into code-review culture and knowledge sharing. As a result overall code quality and quality of knowledge sharing increased greatly
  • Re-written broken in-house tools (that bring big value to the business) and moved them to microservices platform. Made them more stable, implemented additional features, that increased productivity of employees who use these tools

Learnings

  • Cooperation between remote locations is harder than I initially thought. It requires a lot of good communication skills from each side
  • Learned a lot of “soft” skills
  • Learned how to build distributed systems better

Senior Ruby/Clojure Developer (API focus)

Wimdu GmbH – June 2014 – June 2015 | Berlin, Germany

Wimdu is P2P property rental service.

Core responsibilities

  • API development
  • Mobile API development
  • Extensive code review & refactoring of legacy codebase
  • Bringing up new hires to production speed very quickly
  • Contribution to open-source to improve the tooling being used
  • Participation in candidate profile screening during hiring

Technologies

  • Ruby, Ruby on Rails, Clojure
  • Chef, Docker, AWS, Capistrano
  • Elasticsearch, Logstash, Kibana
  • MySQL
  • JSON Hyper-Schema

Achievements

  • Improved API development process by introducing JSON Hyper-Schema and automating all the tooling required. Additionally contributed to aforementioned open-source tooling to make it easier to use for Wimdu’s cases, and of course to fix discovered bugs. As a result any development effort related to API became much more structured, faster and simpler; additionally it allowed us to always have detailed auto-generated API documentation
  • Built Mobile API gateway, that allows for much quicker iterations on mobile API endpoints without changing main API. Thanks to that, mobile application was released faster
  • Built first couple of microservices. Convinced DevOps and Developers to use Docker by example
  • Helped building and maintained Mobile Push Notifications microservice
  • Successfully brought up to production speed 4 new hires (backend developers)
  • Convinced some developers to contribute to Open-Source, to speak at meetups/conferences

Courses

  • Finished Scrum Master course
  • Finished Fred George’s Object-Oriented bootcamp
  • Finished Fred George’s Microservices workshop

Learnings

  • I have become much more social
  • It is great to be able to “shoot two birds with one stone”, i.e.: do your job successfully and by doing it contribute to Open-Source
  • There is nothing to fear in public speaking. If you have something you want to share - share it with your co-workers, gather feedback, make a presentation out of it and present it at one of your local meetups or conferences
  • Learned a lot of skills related to Object Oriented programming
  • Started my path into Functional programming
  • Mastered Ruby language to the point, where it makes sense to learn other languages and paradigms

Ruby on Rails Developer (Remote)

JetThoughts – July 2013 – June 2014 | Ukraine

JetThoughts is a web software development consultancy.

Core responsibilities

  • New features development on main clients’ projects
  • Maintenance
  • Automation tooling improvement

Technologies

  • Ruby, Ruby on Rails
  • Chef, Capistrano, Heroku
  • PostgreSQL
  • SASS/CSS3, HTML5, Coffeescript

Learnings

  • Highly Agile + XP environment is very good for remote co-working
  • Learned proper TDD and pair-programming techniques. Has fallen in love with TDD and pair-programming - they are extremely effective
  • Learned proper code-review culture
  • Learned a lot of Ruby and Ruby on Rails

Ruby/Python Developer, Team Lead

Smart Cloud Solutions – September 2011 – June 2014 | Ukraine

Smart Cloud Solutions is a Ukrainian accounting startup.

Core responsibilities

  • Leading 3 people team
  • Candidate profile screening
  • Interviewing for technical positions (Backend and DevOps)
  • Bringing up interns
  • Knowledge sharing
  • Knowledge Base system development
  • Creating staging and production environment (DevOps)

Technologies

  • Ruby, Python
  • Chef, Capistrano
  • Docker (used in production from v0.2)
  • PostgreSQL, MySQL
  • HTML5, SASS/CSS3, Coffeescript, Knockout.js, Angular.js
  • Service-Oriented Architecture

Achievements

  • Brought up 3 interns to the junior and later to middle level
  • Taught 2 middle developers skills required to be a team lead
  • Implemented Kanban in my team
  • Delivered Knowledge Base system for main product
  • Implemented TDD in my team and spread this idea to all other teams
  • Implemented Code-Review in my team and spread this idea to all other teams
  • Delivered production environment built on top of Docker with ability to run Service Oriented Architecture on it

Learnings

  • Learned a lot of leadership skills
  • Learned that it is important to share your own knowledge, since it is always a win-win situation
  • Learned Python and Ruby languages
  • Learned how to do DevOps

Algorithmic experience

ACM-ICPC (team based) | Donetsk National University | KKT Team | 2009-2014

  • Skills: C/C++, Graph theory, Dynamic programming, NP-problems, Teamwork, Leadership, Mentorship
  • Achievements: 3rd place winner in World Semi Finals (2012-2013)

Solo competitions | Donetsk Lyceum “Intellect” | 2005-2009

  • Skills: C/C++, General algorithms, Sorting algorithms, Dynamic programming, Graph theory
  • Achievements: 3rd place winner in Ukrainian Republican Programming Competition (2007, 2008, 2009)

Language proficiency

  • English – full professional proficiency
  • German – A1 (and studying it)
Back to my blog: https://www.tddfellow.com