Ivan Shamatov

Man in a black hoodie and blue cap standing in front of a backdrop with logos, wearing a badge with the name "Ivan S."
Lead Ruby developer by position, teacher by vocation. I'm building payment and support high stable and fault tolerant services for ages. Experienced developer with a wide range of technologies.

Experience

Hello, my name is Ivan and I'm full-stack developer since 2010.

I'm experienced developer in using ruby/rails, jruby, OOP, trailblazer, concurrent-ruby, postgresql, mongodb, elasticsearch. Took Stanford programming courses.

I'm working at Cryptopay as lead Rails developer — payment platform where merchants and consumers can transact with each other, backed by the new bitcoin payment protocol.

I took part in implementing payment services at previous positions too: banking sector, department of transport in Russia, cell-phone operators, PPS via sms/mobile apps for Saint-Petersburg's subway.

I've also designed, implemented and maintained complete newsstand solution for periodical publishers (both mobile app and backend sides).

I've started giving lectures while studied in university. Gave talks at local rails/linux meetups. I'm also lecturing Rails for beginers course at LevelUp offline.

For more info linkedIn or github

Core skills

  • postgresql
  • ruby on rails
  • git
  • vue.js
  • ruby
  • jruby
  • concurrency
  • mongodb
  • elasticsearch
  • trailblazer
  • gems
  • ci
  • payments
  • architecture
  • prototyping

Specialization

  • Programming in Ruby

    Rails? or may be Hanami? or Sinatra? or Padrino? Whatever you like. I can teach you any framework written on Ruby. More than that, maybe you wish to build you own framework? Can do that too

  • Developing Ruby gems

    All opensource community is based on reusable code. You can do that too. If you feel moving your best solutions from one project to another, it's time to build gem for that! And I can help U

  • Web-applications on Ruby on Rails

    Starting from scratch? Rails is so awesome, that you even don't have to know how it works underneath to start developing great projects. Less magic will lead to more knowledge. Lets start!

Posts

Reviews

The training format itself is pretty cool, only for me personally, quite a beginner, it was difficult to learn, because the mentor sets the task with little or no prompting and you have to go deep into googling. Sometimes the results of this search work were stymied and I found out about it only by coming to the mentor with a question. The mentor as a rule does not say what is wrong, but sends him to the second stage of googling, as a result, the solution of one small problem stretches for a couple of weeks. Therefore, I went to Thinknetika because of their traditional lecture format of training and it gave me more fruits in less time.


Сам формат обучения довольно прикольный, только лично мне, совсем новичку, было сложно учиться, потому что ментор ставит задание практически без каких-либо подсказок и надо уходить в глубокий гуглинг. Иногда результаты этой поисковой работы заводили в тупик и узнавал я об этом только приходя с вопросом к ментору. Ментор как правило не говорит что не так, а направляет на второй этап гуглинга, в итоге решение одной небольшой задачки растягивается на пару недель. Поэтому я ушел в Thinknetika из-за их традиционного лекционного формата обучения и это дало мне больше плодов за меньший срок.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Aleksandr Aleksandrov, 23/08/17

If the presentation of the material seemed to be very imperfect, I still could not overcome the first steps, after creating the application with the cards, but I couldn’t find any understanding from the mentor in that volume, generally half the time wasted.


Если честно показалось очень несовершенной подача материала, я так и не смог преодолеть первые шаги, уже после создания приложения с карточками, а понимания от наставника не удалось найти в том обьеме, в общем полсрока впустую прошло.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Arslan Muchkaev, 10/08/17

He studied with Ivan in October 2016. I liked the training, Ivan quickly and timely responds to messages and checks assignments. He made a great contribution to the development of me as a programmer, and also provided support in finding a first job, I did not even have time to finish the course, as I was already accepted to my first job. Taking this opportunity, I want to express my gratitude to Ivan, and I also want to thank the organizers of this online service, who provide us with the opportunity to gain the basic knowledge and skills necessary for the programmer’s work. And what I most appreciate in this online resource is the provision of a mentor who will indicate in which direction you need to think and solve any problem.


Учился у Ивана в октябре 2016 года. Обучение мне понравилось, Иван быстро и своевременно отвечает на сообщения и проверяет задания. Он внес огромный вклад в становлении меня как программиста также оказал поддержку в поиске первой работы, я не успел даже закончить курс, как меня уже приняли на мое первое место работы. Пользуясь случаем хочу выразить Ивану благодарность также хочу поблагодарить организаторов данного онлайн-сервиса, которые предоставляют нам и возможность для получения базовых знаний и навыков необходимых в работе программиста. И, что я больше всего ценю в этом онлайн-ресурсе это предоставление наставника который укажет в каком направлении нужно мыслить и решать какую-либо задачу.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Roman Kenda, 26/07/17

For me it was a stupid waste of money. I bought mentoring, but it seemed that either Ivan lacked the competence to answer my questions, or I did not understand his hints. I had a specific task, to which I did not know how to approach. Ivan’s answers were more theoretical than practical. The efficiency of these investments is estimated at 10%. For myself, I concluded that your resource is more good for beginners than experienced ones. One interview in a Canadian company brought me much more benefit than participation in mentoring with Ivan. The task I had was to write a plugin redmine_2fa. Ivan's advice in this direction did not bring much benefit. They were more to expand horizons. With no less success, such information can be obtained free of charge in the Russian-speaking google group along the rails. Ivan probably knows a lot, but then either I didn’t ask the right questions, or his vacation with his family in Europe lowered the level of consultation. I can recommend your resource only to juniors. Midlam is more suitable safari online or something like that.


Для меня это было бестолковой тратой денег. Я покупал менторство, но было похоже что либо у Ивана не хватало компетенции для ответа на мои вопросы, либо я не понимал его намёки. У меня была конкретная задача, к которой я не знал как подступиться. Ответы Ивана были больше теоретическими, чем практическими. КПД этих вложений оцениваю в 10%. Для себя сделал вывод, что ваш ресурс больше хорош для начинающих, чем бывалых. Одно собеседование в канадскую компанию принесло мне намного больше пользы, чем участие в менторстве с Иваном. Задача у меня была написать плагин redmine_2fa. Советы Ивана в этом направлении пользы практически не принесли. Они были больше для расширения кругозора. С не меньшим успехом такие сведения можно получить бесплатно в русскоязычной гуглогруппе по рельсам. Иван наверняка много знает, но то ли я тогда не правильные вопросы задавал, то ли его отдых с семьёй в Европе понизил уровень консультации. Ваш ресурс смогу порекомендовать только джуниорам. Мидлам больше подойдёт safari online или что-то подобное

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Artur Trofimov, 17/07/17

Ivan is not only a great sensei and mentor! Regularly connected - at least on weekends, at least on a late weekday evening. Stable code review, excellent and reasoned criticism. Interesting and productive communication! In a word - I recommend!


Иван - не только отличный сенсей и наставник! Регулярно на связи - хоть в выходной, хоть в поздний будний вечер. Пристальный код-ревью, отличная и аргументированная критика. Интересное и продуктивное общение! Одним словом - рекомендую!

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Denis Gorbunov, 17/07/17

To begin, perhaps, with the fact that I was not the most exemplary student. At work, I had to travel a lot, very grateful that Ivan entered the position and had the opportunity to freeze the subscription. The second time, when I froze the subscription, I could not join back. Perhaps it was the biggest minus, Ivan and I ceased to coincide in the schedule. The time he could have given was not convenient for me. It was felt that he was not interested in me anymore. Maybe my successes were not the kind that inspire me. I felt that Ivan no longer believes in my success. In part, it demotivated me and I decided to stop classes. Now about the positive: there were a lot of positive things. At the very beginning of my studies, I really liked the approach - Ivan was almost always in touch, explained everything sooo in detail and intelligibly, in every way possible. It felt support and work went smoothly. I am a man driven by success, praise and support is vital to me, it is necessary to know that I can get something that is so hard to give. Given that I am new to the field. This is my wish - try to improve the personal approach to students, studying depends largely on the mood and you can not lose touch with the student! Thanks for all!


Начну, пожалуй, с того, что я не была самым образцовым учеником. По работе приходилось много ездить, очень благодарна, что Иван входил в положение и была возможность заморозить подписку. Второй раз, когда я заморазила подписку, уже не смогла влиться обратно. Пожалуй это был самый большой минус- мы с Иваном перестали совпадать в расписании. То время, которое он мог уделять- мне было не удобно. Чувствовалось, что он был во мне не заинтересован больше. Может мои успехи были не такими, какие вдохновляют. Я чувствовала, что Иван не верит больше в мой успех. Отчасти, меня это демотивировало и я решила прекратить занятия. Теперь о позитиве: была масса положительных моментов. В самом начале обучения, мне очень нравился подход- Иван практически всегда был на связи, объяснял все ооочень подробно и доходчиво, всячески преободрял. Чувствовалась поддержка и работа шла ровно. Я- человек ведомый успехом, мне жизненно необходима похвала и поддержка, необходимо знать, что у меня может получится то, что так тяжело даётся. Учитывая то, что я новичок в сфере. В этом состоит мое пожелание - постарайтесь улучшить личный подход к ученикам, учеба во многом зависит от настроя и терять связь с учеником нельзя! Спасибо за все!

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Alina Vasylieva, 14/07/17

True glad I met with Vanya. For each question, I received from him a quick concise answer, he skillfully led me to an independent solution of the problem. Vanya is a kind and sympathetic person, it was very pleasant to work on the project under his supervision.


Правда рад, что познакомился с Ваней. На каждый вопрос, получал от него быстрый лаконичный ответ, он умело подводил меня к самостоятельному решению возникшей проблемы. Ваня добрый и отзывчивый человек, было очень приятно работать над проектом под его присмотром.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Ilya Kalinichev, 08/06/17

I learned from Ivan, and I have a good impression. The course itself is very interesting, every day I discovered something new for myself. Ruby on Rails is beautiful and amazing. I liked the mentor's approach to the task verification: I didn’t just “Do it - well done”, but “Well, you wrote the code, now let's improve it”. Unfortunately, due to lack of time, I was unable to complete the course. I want to come back, I hope to get back to Ivan.


Я учился У Ивана, и у меня осталось хорошее впечатление. Сам курс очень интересный, каждый день я открывал что-то новое для себя. Ruby on Rails прекрасен и удивителен. Очень понравился подход ментора к проверке заданий: не просто "Сделал - молодец", а "Ну вот, ты написал код, давайте теперь его улучшим". К сожалению, из-за нехватки времени мне не удалось завершить курс. Хочу вернуться, надеюсь снова попасть к Ивану.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Nikita Popov, 08/06/17

I did not take courses, asked for help to understand the new and complex project. In addition to helping with the project, Ivan also helped build a clear work methodology. Ivan has very clear and necessary articles. I already know where they will come in handy for my project. This will greatly facilitate my work. I am going to take a course with Ivan for several reasons: 1) extremely interesting topics and technologies are touched (which interest me, but there is not enough time to study them); 2) it is interesting to get a review of the code from Ivan; 3) Ivan can explain the topic in human language :)


Я не проходил курсов, попросил помощи, чтобы разобраться в новом и сложном проекте. Помимо помощи с проектом Иван заодно помог выстроить четкую методологию работы. Еще у Ивана очень четкие и нужные статьи. Я уже знаю, где они мне пригодятся по моему проекту. Это значительно облегчит мою работу. Собираюсь проходить курс у Ивана по нескольким причинам: 1) затрагиваются крайне интересные темы и технологии (которые меня интересуют, но не хватает времени на их изучение); 2) интересно получить ревью кода от Ивана; 3) Иван может объяснить тему человеческим языком :)

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Mike Oleynik, 04/03/17

Passed the course "Rails for the smallest" under the mentorship of Ivan. And I would like to say that he is a wonderful mentor who will always help and tell you how best to accomplish this or that task, in case of difficulties, he will explain and push to the right thought. If I asked a question, I always received a detailed answer to it. Even if your code works, it does not mean that it is good =) Ivan will always tell you how to improve it, make it more readable, or what tool to use. The training proceeded smoothly and incredibly interesting, there were force majeure circumstances, and Ivan was always understanding and willing. If you decide to do serious programming, Ivan will be for you the best mentor.


Проходил курс "Rails для самых маленьких" под менторством Ивана.И хотел бы сказать что он замечательный наставние который всегда поможет и подскажет как лучше реализовать ту или иную задачу, в случае трудностей объяснит и подтолкнет к правильной мысли. Если я задавл вопрос то всегда получал на него развернутый ответ. Даже если твой код работает, это не значит что он хорошо=) Иван всегда подскажет как можно его улучшить, сделать читабельнее, или какой инструмент применить. Обучение протекало плавно и невероятно интересно, были форс-мажорные обстоятельства, и Иван всегда понимающе относился и шел навстречу. Если вы решили заняться всерьез программированием Иван станет для вас лучшим наставником.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Nikita Naumenko, 22/02/17

I came to mkdev for what books and documentation can't give — a code making culture. Programming - modern craft and apprentice must carefully choose from whom to learn his subtleties. Ivan is a wonderful master who is able to discover all the beauty of Ruby and RoR. After reviewing it, you will look at the code in a completely different way. To create not just working, but concise, reliable, ready for any changes code. Mentoring - the shortest path from beginner to professional.


Я пришел в mkdev за тем, чего не могут дать книги и документация - культурой создания кода. Программирование - современное ремесло и подмастерье должен тщательно выбирать, у кого учиться его тонкостям. Иван - прекрасный мастер, который способен открыть всю красоту языка Ruby и RoR. После его ревью вы будете смотреть на код совсем по-другому. Создавать не просто работающий, но лаконичный, надежный, готовый к любым изменениям код. Менторство - кратчайший путь от новичка до профессионала.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Zheka, 08/02/17

I have long wanted to take the course "Ruby on Rails for Adults," because there was no confidence in my knowledge, and I also needed a person with experience who would tell and direct you on the right path. Ivan has very good articles on mkdev.me, which explain in an easy and simple way how it works there, so the choice of a mentor was obvious to me. During the course, Ivan always successfully prompted where to dig further if I got stuck. He suggested solving the problem in another, more correct and simple way, which made me delve deeper into the problem, think more and read the documentation. I am glad that it was Ivan who became my mentor on this course.


Давно хотел пройти курс "Ruby on Rails для взрослых", т.к не было уверенности в своих знаниях, а так же нужен был человек с опытом, который подскажет и направит на путь истинный. У Ивана очень хорошие статьи на mkdev.me, которые доступным и простым языком объясняют как же это там работает, поэтому выбор ментора для меня был очевиден. При прохождении курса, Иван всегда удачно подсказывал куда копать дальше, если я застревал. Предлагал решить задачу другим, более правильным и простым путем, что заставляло меня глубже вникать в проблему, больше думать и читать документацию. Рад что именно Иван стал моим ментором на данном курсе.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Aleksandr Zutikov, 09/11/16

Passed the course "Rails for beginners" under the guidance of Ivan. I must note that Ivan is a very good teacher, to whom it is important that you understand and remember everything correctly. During the execution of the project there were moments when, having asked some, in your opinion, a small question, you get a detailed sensible answer and a couple of links in addition. Ivan focuses on important things: even if the code submitted for verification works correctly, but there are "slippery places", he will point out to them, explain and advise how to improve. And when you were performing a task, you could not even think about this place if you were engaged without a mentor. The training itself was quite flexible, we missed something, and then came back to it later and vice versa, did some things in advance to simplify work in the future. I recommend Ivan to everyone as a mentor.


Проходил курс "Rails для начинающих" по руководством Ивана. Должен отметить, что Иван очень хороший преподаватель, которому важно, чтобы ты все правильно понял и запомнил. При выполнении проекта бывали моменты, когда, задав какой-то, по твоему мнению, мелкий вопрос получаешь развернутый толковый ответ и пару ссылок в придачу. Иван заостряет внимание на важных вещах: даже если переданный на проверку код работает правильно, но есть "скользкие места", то он на них укажет, пояснит и посоветует как улучшить. А ты, когда выполнял задание, над этим местом мог даже не задуматься, если бы занимался без наставника. Само обучение проходило достаточно гибко, мы что-то пропускали, а потом возвращались к этому позже и наоборот, делали какие-то вещи наперед, чтобы упростить работу в будущем. Всем рекомендую Ивана в качестве ментора.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Ilya, 27/10/16

I work with RoR for several years. And due to being busy at work, self-development in the RoR technology stack doesn’t have much time and energy, this suggested that we need additional training from outside. The choice fell on courses from mkdev.me. Only in their post-Soviet space did they find a serious course "Ruby on Rails for adults". The tasks of the course pleased me, they often do not limit you in choosing the tools for solving the tasks. The tasks themselves are quite complex and make you sit, grasp and pick. It is important that next to you, all this time, an experienced mentor. I was lucky with Ivan, he explains the difficult moments in a very accessible way and competently directs him to the way of solving the set tasks. Also, I am always ready to give and share my experience, in addition to current tasks, to questions that interest me, for which I am grateful to him. I am glad that my choice fell on this course and Ivan as a mentor.


Работаю с RoR несколько лет. И в силу загружености на работе, на саморазвитие в стеке технологий RoR остаётся не так много времени и сил, это натолкнуло на мысль, что нужен дополнительный тренинг со стороны. Выбор пал на курсы от mkdev.me т.к. только у них на постсоветском пространстве нашёл серьёзный курс "Ruby on Rails для взрослых". Задания курса меня порадовали, они зачастую не ограничивают тебя в выборе инструментов для решения поставленных задач. Сами по себе задачи достаточно сложные и заставляют посидеть, вникнуть и поразбираться. Важно, что рядом с тобой, всё это время, опытный наставник. Мне повезло с Иваном, он очень доступно объясняет сложные моменты и грамотно направляет на путь решения поставленных задач. Так же, всегда готов подсказать и поделится своим опытом, помимо текущих задач, на интересующие меня вопросы, за что я ему благодарен. Я рад что мой выбор пал на данный курс и Ивана как ментора.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Ilya Borovinskiy, 12/09/16

I began to take my first steps in web development on the course of Ivan, and this is what I can say: even if you don’t have even the slightest programming experience behind you, Ivan will diligently convey all the necessary information to you, he will direct you to any questions in the right direction, will give recommendations on the literature for self-study, share interesting and useful approaches in the development of the project. Ivan is a professional developer and an excellent teacher.


Я начал делать свои первые шаги в веб-разработку на курсе у Ивана и вот, что могу сказать: даже если вы не имеете за спиной хоть какого-то малейшего опыта в программировании, Иван старательно донесет до вас всю необходимую информацию, на возникающие вопросы направит в нужном направлении, даст рекомендации по литературе для самостоятельного изучения, поделится интересными и полезными подходами при разработке проекта. Иван — профессиональный разработчик и отличный преподаватель.

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Oleg Dianov, 13/05/16

Vanya is a very good teacher. Gave me a start to learn RoR. Unlike other teachers, who don't care that people understand or not the material for which profit is more important, Ivan is not like that. Ivan tries very hard to bring the information that they want to people, trying to solve any of their problems. Vanya is constantly improving and finding all new teaching methods. Vanya is a good teacher who appreciates his work, is dedicated to his work and seeks to teach people new knowledge and skills!


Ваня очень хороший преподаватель. Дал мне старт для изучения RoR. В отличии от остальных преподавателей, которым все равно, что люди поймут или нет материал, для которых важнее прибыль, Иван не такой. Иван очень старается до людей донести ту информацию, которую они хотят, старается решить любую их проблему. Ваня постоянно совершенствуется и находит все новые методы обучения. Ваня хороший преподаватель, который ценит свою работу, предан своему делу и стремится обучаь людей новым знаниям и умениям!

translation missing: en.home.mentors.reviews.text_translated_with_google - Original Text Vadim, 11/05/16