borodark

borodark

Igor Ostaptchenko, Detroit MI - Senior/Staff Elixir Engineer, 13 years on the BEAM (Remote US, UTC-5)

Igor Ostaptchenko, Detroit MI — Senior/Staff Elixir Engineer, 13 years on the BEAM (Remote US, UTC-5)

About me

I have been shipping Elixir and Erlang in production since 2011 — starting with Erlang at Credorax (PCI credit card processing, Boston/Malta), then Elixir across AcuityAds, RBC Capital Markets, AEON, Clarity Voice, HubSpot, and most recently Estée Lauder’s Tom Ford e-commerce platform. I currently teach Deep Learning (IE 7860) at Wayne State University in Detroit and maintain 19 active open-source Elixir/Rust projects.

What I bring

  • Phoenix LiveView — production customer-facing work at Estée Lauder. I prefer LiveView over React and have for years.
  • Oban — production at Estée Lauder alongside Kafka and RabbitMQ. Queues, retries, unique constraints, cron, dead-letter handling, concurrency tuning.
  • Ecto + PostgreSQL — primary database across every role. Aurora PostgreSQL at Rocket Mortgage (7 years AWS), including diagnosing a 10M-row performance issue.
  • PropEr / proper_statem — 23 properties, 3 stateful models, ~700 adversarial command sequences, 3 bugs found that point tests missed. Paper submitted to the ACM SIGPLAN Erlang Workshop 2026 at ICFP: sim_ex: Verifying a Concurrent DES Library with PropEr.
  • Distributed systems — OTP supervision trees, :erpc, GenStage, Task.async_stream. Five distributed database clusters across the Atlantic at Credorax. Kubernetes/Helm/Terraform across multiple roles.
  • Rust NIFs — sim_ex Rust NIF engine at 6.4M events/sec. ex_stochtree (BART port). Comfortable at the Elixir/Rust boundary.
  • Golang — production alongside Elixir at Estée Lauder.

Open source highlights

Project What it is
eXMC Probabilistic programming on BEAM. 4-layer architecture, Nx/EXLA, distributed :erpc. 34×→1.9× faster than PyMC.
sim_ex DES engine, 5 backends, 14-verb DSL, Rust NIF. ACM paper submitted.
smc_ex Sequential Monte Carlo. Task.async_stream on 88 cores.
power_of_three Cube.dev macros for Ecto. Reusable semantic-layer accelerator.
scenic_driver_remote Split-stack Scenic rendering over a binary transport.
zed Declarative BEAM deployment on FreeBSD/illumos, ZFS as state store.

107 repositories total. Arctic Code Vault Contributor.

Experience summary

Where When What
Wayne State University 2026–present Course Instructor, Deep Learning
Octanix Americas 2025–present Research Engineer — eXMC, sim_ex, smc_ex
Estée Lauder (Tom Ford) 2024–2025 Sr SW Eng Consultant — Elixir, Golang, Oban, Kafka, K8s, AWS
HubSpot 2023–2024 Sr SW Solutions Consultant — Cube.dev, GraphQL, Snowflake
Rocket Mortgage 2016–2023 Sr SW Engineer — Python, AWS, Aurora PostgreSQL, 7 years
AEON 2020–2021 Sr Elixir Engineer — K8s/Istio microservices
Clarity Voice 2018 Lead — PHP → Elixir/Elm conversion
AcuityAds 2015 Erlang bid-velocity guard logic, ad tech
RBC Capital Markets 2014–2015 Regulated finance, Erlang
Credorax 2011–2014 PCI credit card processing, Erlang, distributed DBs
Octanix Canada 2001–2011 10 years consulting — Ontario Ministry of Health, Intact Insurance, Swiss Re

Education

  • MS Data Science & Business Analytics, Wayne State University (GPA 3.83, 2020)
  • MS Systems Engineering, Magna Cum Laude, University ITMO, St. Petersburg (1995)
  • PhD Studies (ABD), Information Systems Architectures, University ITMO

Conference talks

  • Erlang Factory Toronto 2013 — Perfect Case for Riak and Spring Integration

What I am looking for

Senior or Staff Elixir/OTP roles. Remote (US timezone, ET). Open to hybrid if Detroit-area. Interested in teams that ship LiveView, care about testing, and build systems meant to run for years. Available now.

Contact

Tags: dev-profiles available-for-work liveview phoenix ecto postgresql oban testing erlang

Where Next?

Popular in Member Profiles Top

manofmoses
Hi. Name: Jonathan Email: jonathanmosesman@gmail.com Role: Junior Elixir Phoenix developer Skills: Elixir, Phoenix, Ruby, Rails, HTML...
New
lykes
My name is Johan Mattisson. I am a freelance contractor working through my company, 111 Solutions AB, based in Växjö, Sweden. I have ove...
New
anes
Hi, Anes Hasicic Bosnia and Herzegovina I can travel, remote would be first choice, relocation would also be an option under certain ci...
New
beamologist
Hi, I am Rafael Lefever, moved from Belgium to Poland in 2019 and I got enchanted by the Elixir eco system about 8 months ago. I studied ...
New
Ankhers
Greetings, I would like to introduce myself as Justin, an experienced software developer with a focus on Elixir in production. I have be...
New
sbreining
Hello all! Following below is a bulleted list of information about me professionally and personally. I am in search of an opportunity to...
New
hlx
Hi, my name is Henricus Louwhoff, originally from the Netherlands and moved for a job to Helsinki, Finland. I’m currently looking for a ...
New
sax
Hello! My consulting company, Reflective Software, is available for contracting. Reflective is comprised of me (Eric Saxby) and Erik Han...
New
New
alex.strizhakov
Hi folks! I’m an experienced Elixir/Phoenix developer with a strong background in scalable systems, real-time applications, and performan...
New

Other popular topics Top

RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
9mm
I am constructing a JSON object (map) and I need to conditionally set a field. I’m trying to write proper elixir-way code… and I’m at a l...
New
belgoros
I’m not a pro in using Regex and can’t figure out why the following behaviour happens, especially if we take into account the difference ...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New
senggen
Erlang/OTP 25 [erts-13.2.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] 15:22:35.803 [error] gen_event {lager_file_backend...
New

Latest on Elixir Forum

We're in Beta

About us Mission Statement