Skip to content
View timoffmax's full-sized avatar

Block or report timoffmax

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
timoffmax/README.md

Backend engineer in Kyiv, nine years in, seven of them on commerce systems. The largest thing here is a Go service.

Four of those years at PHPro in Belgium, building Adobe Commerce for EU retailers: custom modules, REST and GraphQL APIs, ERP and PIM integrations, performance work. Adobe Certified Expert.

Three years before that as the only backend developer at a subscription store, on Magento with its own Vue + TypeScript checkout, across a 10-hour timezone gap.

Earlier, 2015 to 2017: Linux servers and IP telephony on Asterisk and GSM gateways, promoted to senior. Ordering, latency, and calls that drop a leg.

Go

social-link-tg-bot — ~27k lines of Go across 76 files, 238 commits, 27 version tags to v1.22.0, running at t.me/social_link_fix_bot. Send it an Instagram, TikTok, X, YouTube or Reddit link; it returns the media, not a dead preview.

  • No third-party Telegram library: the Bot API client is hand-written under model/api, 31 files of typed payloads and multipart upload. Five direct dependencies.
  • At most ten updates processed concurrently off the long-poll loop, a WaitGroup drained on SIGINT/SIGTERM, 90s deadline per download.
  • An ordered per-platform fallback chain over ten extraction methods, one of them a headless browser, because upstream sites break without warning.
  • Mutex-guarded outage tracker: admin alert after three failures, explicit recovery note.
  • Hourly redirector probes use separate tracker keys, so they cannot mask failing traffic.

Postgres, with golang-migrate applying migrations in-process on boot; if the database is gone the bot runs without it instead of failing to start. CI runs gofmt, vet, build and go test -race on every push to master; tests cover the reliability and outage code, 3 of the 76 Go files.

Also public

  • reminder_tg_bot runs in Python at t.me/timoffmax_reminder_bot: per-user timezones, recurrence, snoozing and quiet hours, times kept in UTC and rehydrated from Postgres. No tests.
  • costs is a Laravel 7 API with Passport behind a Vue 2 SPA, written 2018–2024. It is finished and frozen; it will not install on current PHP or Node, as its README says.
  • magento-cli-util — turns a Magento production database into a safe staging one: anonymised customers, rewritten config, YAML-driven scenarios. 51 of its 63 commits are mine.

Pinned Loading

  1. costscostsPublic

    Laravel + Vue.js service for tracking costs and incomes across accounts, with statistics and planning

    PHP 1

  2. social-link-tg-botsocial-link-tg-botPublic

    Telegram bot that downloads and sends real media from Instagram, TikTok, X, YouTube, Reddit and more, instead of broken link previews

    Go

  3. reminder_tg_botreminder_tg_botPublic

    Telegram bot for personal and group reminders — timezones, recurring schedules, confirmations, snoozing and quiet hours

    Python

  4. montikids/magento-cli-utilmontikids/magento-cli-utilPublic

    Magento 2 tool is designed to automate, simplify, and make it safe to convert the production environment into a staging or a development one

    PHP 3