Ivan Kulagin

Backend-focused Ruby developer with 14 years of experience and passion to write clean, maintainable and testable code

Ivan Kulagin

https://kulagin.dev

t.me/ivan_kulagin

With extensive experience in the APIs design and building complex systems, I help people to deliver their products to customers regularly, ensuring the changes made won't break anything. This of course involves creating deploy pipeline, create cloud environments, choosing the right tools for the right job. Looking for full-time remote senior Ruby developer position, or Rust middle position with growing perspective

If you want print or PDF version, please make sure to turn on "Background graphics" option in print dialog

Languages

Ruby
5
Rust
4
Elm
4
PL/pgSQL
4
*sh
4
Clojure
4
Python
4
Java/Kotlin
4
Haskell
3
Go
2
Erlang/Elixir
2

Databases

PostgreSQL
5
MySQL
4
Redis
4
ClickHouse
2
Elasticsearch
2
MongoDB
2

Devops

Terraform
5
Ansible
5
Systemd (advanced)
5
Netfilter (nf/iptables)
5
Cgroups/namespaces
5
Nomad/Vault/Consul
4
Bare-metal servers
4

Clouds

Google Cloud
5
Heroku
5
AWS
4
Linode
4
DigitalOcean
4
Azure
3

Microservices

Telemetry
4

Protocols

Cryptography

Block modes theory
5
(A)symmetric cyphers theory
5
Password hashing algos
5

Os

MacOS
5

Visuals

After Effects/Photoshop
5

Human languages

English
B2
Russian
Native
Sweden
Wish to learn, it's beautiful

IT skills

  • APIs: The facade of your system, hiding its internal complexity. Everyone wants this facade to be nice for others, and I’m helping people with that
  • Testing: I have a weighted approach of testing: there’s no need in overtest everything (at the beginning for sure), but the critical parts should be tested
  • Refactoring: This is huge topic, and only following best practices and carefulness lead to success. Sometimes this process takes a lot of time, even if you have detailed plan
  • Data parsing/normalizing: Probably my favourite types of tasks. I love data manipulation
  • Data scraping: Watching run logs of hundreds of simultaneous scraping connections really please my eyes
  • Tasks automation: As a programmer, you always have a mind/hands work to do. Automate repetitive tasks, but only after they become really annoying. Don’t automate too early
  • Networking: Every developer should have experience with building own “Anton”. Since the 2007, when I had two, and till now, when I have eight bare-metal servers in my house, I love to practice networking stuff
  • Clouds: As a freelancer I use clouds from the early AWS days, and my experience grow with each new client. There are huge amount of tools clouds provide, and I have been working with most popular of them. Sometimes building crazy things

Soft skills

  • Self-organization/time management: Having been a freelancer all my life, mastering planning and time-management is a must
  • Analytical abilities: Learn yours and others mistakes, track success, make future decisions based on both
  • KISS: Don't overcomplicate/overengineer, split complex tasks on subtasks, manage one at the time
  • Creativity: When you experienced with your tools, you can do amazing things with them
  • Perseverance: There's always a way to do the thing, but if stuck, try to find another solution with team
  • Problem Solving: Formulate the problem, that is 80% of solution. Consult with pros, use other's expertise and become better professional
  • Eager to learn/Curiosity: The more you know, the more ways you can do the task. Always learn something, even unrelated to your main specialization. It's worth it

My dream team

  • have the №1 rule in your code is low in coupling and high in cohesion
  • code review is the only way code become merged to main
  • love to write tests and that is easy to do, because of rule №1
  • don’t spend thousands of hours per year on endless daily voice meetings
  • have clear requirements and just work, using daily text reports to sync
  • prefers self-documenting text communication over voice
  • located in US/Europe/Australia/East and Southeast Asia region
  • prefer to write 10 lines of code as warden’s strategy instead of adding huge devise gem monster as dependency just to have simple authentication
  • understand the problems the Active Record pattern introduce, and you do your best to keep it lightweight as possible
  • so advanced, that prefer ROM/Sequel over ActiveRecord for a reason

Related interests

  • Microcontrollers: We live at the times when buying NY/Christmas garland is boring, if you have ESP32 (which has WiFi module), few 10x10 plates of ws2812B, and love to solder
  • GTD: Learning how to manage your own life, how brain works, how it tends to cheat you, etc is a key of success for freelancer

Job log

Please note, these are major jobs I'm proud of. As a seasoned freelancer, I did lots of short-term projects (see my Upwork profile)

  • Frigbot (IoT): 2022-10 – 2024-06
    Position: Rails Fullstack Developer + DevOps engineer
    Legacy Rails code refactoring, telecom integrations, high-load IoT cloud built
  • AVR Chiptuning: 2020-08 – 2020-10
    Position: Elm and Hanami Full Stack Developer
    Frontend (Elm) and backend (Hanami API+dry) development
  • BlockVestMovement: 2020-05 – 2020-08
    Position: DevOps Architect (AWS/Terraform/HashiCorp Stack)
    Multi-environment AWS stack design and implementation, CI setup
  • spINFLUENCEit: 2016-03 – 2018-06
    Position: Lead Backend Developer (High-Performance APIs)
    Complex backend for iOS and macOS applications
  • Instamotor Inc.: 2015-07 – 2015-09
    Position: Ruby Backend Engineer
    Refactoring and extending communication layer using Twilio API
  • Apple pass manager: 2015-03 – 2017-07
    Position: Apple Passbook/AngularJS/Rails Full Stack Developer
    Apple pass WYSIWYG designer with passbook API integration
  • Skymond mobile Op: 2013-10 – 2015-03
    Position: Senior Ruby Backend Developer and DevOps Engineer
    Online Charging System (OCS) for virtual mobile operator
  • Higgins MD 420: 2013-10 – 2015-03
    Position: Rails Fullstack Developer
    Refactoring and developing website for medical marijuana evaluation clinic
  • Pelesend corporate site: 2013-04 – 2013-08
    Position: Backend Rails Developer
    Refactoring and UI improvements of Pelesend corporate site
  • ABC Logistik: 2013-01 – 2013-06
    Position: Full Stack Ruby on Rails Developer
    Regular complexity site for Russian logistic company

Location

Please keep in mind that over the past 12 years, 95% of my clients have been based in North America, so my work schedule is already adjusted to ensure significant overlap with that region. The same applies to Southeast Asia region.

  • I can relocate easily — I just need to notify my landlord.
  • Preferred regions to live and work: Southeast Asia (especially Malaysia), Georgia (I have a residence permit there), Türkiye.
  • From November to May, it gets chilly in Georgia (country), so I usually work and travel during this period.
  • This winter, I plan to go to Southeast Asia.
  • Until 2022, I lived in Russia, but I will not return there anymore.
  • My current time zone: UTC+4

Desired salary

  • My rate is 40$/hour. That's 40h*160h*12m = 76800$ per year (net).
  • I'm totally OK with a 1/2 rate for the first onboarding month