From 10d2ee012af6236d8df92904484e50281e8ebf15 Mon Sep 17 00:00:00 2001 From: Danylo Yenikeiev Date: Wed, 29 Jul 2026 16:57:52 +0700 Subject: [PATCH 01/10] Add work page styles --- assets/css/work-with-me.css | 382 ++++++++++++++++++++++++++++++++++++ 1 file changed, 382 insertions(+) create mode 100644 assets/css/work-with-me.css diff --git a/assets/css/work-with-me.css b/assets/css/work-with-me.css new file mode 100644 index 0000000..3f1d63a --- /dev/null +++ b/assets/css/work-with-me.css @@ -0,0 +1,382 @@ +.work-page { + --work-border: var(--main-border-color, rgba(255, 255, 255, 0.12)); + --work-card: var(--card-bg, rgba(255, 255, 255, 0.035)); + --work-muted: var(--text-muted-color, var(--text-muted, #9ba3af)); + --work-accent: var(--link-color, #6ea8fe); + --work-heading: var(--heading-color, var(--text-color, #f3f4f6)); + --work-text: var(--text-color, #d8dee9); + max-width: 100%; +} + +.work-page, +.work-page * { + box-sizing: border-box; +} + +.work-page section { + margin: 0; +} + +.work-hero, +.work-cta { + border: 1px solid var(--work-border); + border-radius: 1rem; + background: var(--work-card); +} + +.work-hero { + padding: clamp(1.6rem, 4vw, 3.25rem); +} + +.work-eyebrow, +.service-label, +.case-type { + margin: 0 0 0.65rem; + color: var(--work-accent); + font-size: 0.78rem; + font-weight: 700; + letter-spacing: 0.09em; + line-height: 1.4; + text-transform: uppercase; +} + +.work-hero h2 { + max-width: 13ch; + margin: 0; + color: var(--work-heading); + font-size: clamp(2.25rem, 6vw, 4.5rem); + line-height: 1.02; + letter-spacing: -0.045em; +} + +.work-lead { + max-width: 42rem; + margin: 1.4rem 0 0; + color: var(--work-heading); + font-size: clamp(1.15rem, 2.2vw, 1.45rem); + line-height: 1.5; +} + +.work-availability { + max-width: 42rem; + margin: 0.75rem 0 0; + color: var(--work-muted); + font-size: 1rem; +} + +.work-actions { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + margin-top: 1.75rem; +} + +.work-button { + display: inline-flex; + min-height: 2.9rem; + align-items: center; + justify-content: center; + padding: 0.72rem 1.05rem; + border: 1px solid var(--work-border); + border-radius: 0.55rem; + font-weight: 700; + line-height: 1.2; + text-decoration: none; + transition: border-color 140ms ease, transform 140ms ease, background-color 140ms ease; +} + +.work-button:hover { + transform: translateY(-1px); + text-decoration: none; +} + +.work-button-primary { + border-color: var(--work-accent); + background: var(--work-accent); + color: var(--main-bg, #0d1117); +} + +.work-button-primary:hover { + color: var(--main-bg, #0d1117); +} + +.work-button-secondary { + color: var(--work-heading); + background: transparent; +} + +.work-button-secondary:hover { + border-color: var(--work-accent); + color: var(--work-heading); +} + +.work-meta { + display: grid; + gap: 0.35rem; + margin-top: 1.8rem; + padding-top: 1.2rem; + border-top: 1px solid var(--work-border); +} + +.work-meta p { + margin: 0; + color: var(--work-muted); + font-size: 0.92rem; +} + +.work-section { + padding: clamp(3.75rem, 8vw, 6.5rem) 0 0; +} + +.work-section-heading { + max-width: 46rem; + margin-bottom: 1.75rem; +} + +.work-section-heading h2, +.work-cta h2 { + margin: 0; + color: var(--work-heading); + font-size: clamp(1.9rem, 4vw, 3rem); + line-height: 1.1; + letter-spacing: -0.025em; +} + +.work-section-heading > p:last-child { + margin: 0.85rem 0 0; + color: var(--work-muted); + font-size: 1.02rem; + line-height: 1.65; +} + +.service-grid { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 1rem; +} + +.service-card, +.case-card, +.process-grid li { + border: 1px solid var(--work-border); + border-radius: 0.85rem; + background: var(--work-card); +} + +.service-card { + display: flex; + min-width: 0; + flex-direction: column; + padding: 1.35rem; +} + +.service-card h3, +.case-card h3 { + margin: 0; + color: var(--work-heading); + font-size: 1.28rem; + line-height: 1.3; +} + +.service-card > p:not(.service-label):not(.service-list-title) { + margin: 0.8rem 0 0; + color: var(--work-muted); + line-height: 1.6; +} + +.service-list-title { + margin: 1.25rem 0 0.45rem; + color: var(--work-heading); + font-weight: 700; +} + +.service-card ul, +.work-cta ul { + margin: 0; + padding-left: 1.15rem; +} + +.service-card li, +.work-cta li { + margin: 0.4rem 0; + line-height: 1.5; +} + +.service-price { + display: grid; + gap: 0.2rem; + margin-top: auto; + padding-top: 1.4rem; +} + +.service-price span { + color: var(--work-muted); + font-size: 0.82rem; +} + +.service-price strong { + color: var(--work-heading); + font-size: 1.12rem; +} + +.pricing-note, +.process-note { + margin: 1rem 0 0; + color: var(--work-muted); + font-size: 0.9rem; +} + +.case-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 1rem; +} + +.case-card { + min-width: 0; + padding: 1.35rem; +} + +.case-card > p:not(.case-type):not(.case-skills) { + margin: 0.8rem 0 0; + color: var(--work-muted); + line-height: 1.62; +} + +.case-skills { + margin: 1rem 0 0; + color: var(--work-heading); + font-size: 0.84rem; + font-weight: 600; + line-height: 1.5; +} + +.case-link { + display: inline-block; + margin-top: 1rem; + font-weight: 700; +} + +.process-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 0.8rem; + margin: 0; + padding: 0; + list-style: none; +} + +.process-grid li { + min-width: 0; + padding: 1.2rem; +} + +.process-number { + display: inline-flex; + width: 1.8rem; + height: 1.8rem; + align-items: center; + justify-content: center; + border: 1px solid var(--work-border); + border-radius: 999px; + color: var(--work-accent); + font-size: 0.78rem; + font-weight: 800; +} + +.process-grid p { + margin: 0.9rem 0 0; + color: var(--work-heading); + line-height: 1.55; +} + +.work-cta { + display: grid; + grid-template-columns: minmax(0, 1fr) auto; + gap: 2rem; + align-items: end; + margin-top: clamp(4rem, 9vw, 7rem) !important; + padding: clamp(1.5rem, 4vw, 2.5rem); +} + +.work-cta > div:first-child { + max-width: 42rem; +} + +.work-cta > div:first-child > p:not(.work-eyebrow):not(.cta-outcome) { + margin: 0.85rem 0 0; + color: var(--work-muted); + line-height: 1.6; +} + +.work-cta ul { + margin-top: 0.5rem; +} + +.cta-outcome { + margin: 1.25rem 0 0; + color: var(--work-heading); + font-weight: 700; +} + +.cta-action { + display: grid; + gap: 0.7rem; + justify-items: stretch; + min-width: 12rem; +} + +.email-copy { + color: var(--work-muted); + font-size: 0.86rem; + text-align: center; +} + +@media (max-width: 980px) { + .service-grid { + grid-template-columns: 1fr; + } + + .process-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} + +@media (max-width: 720px) { + .work-hero h2 { + max-width: none; + } + + .case-grid, + .process-grid, + .work-cta { + grid-template-columns: 1fr; + } + + .work-cta { + align-items: start; + } + + .cta-action { + justify-items: stretch; + min-width: 0; + } + + .work-button { + width: 100%; + } + + .work-meta p { + font-size: 0.86rem; + } +} + +@media (prefers-reduced-motion: reduce) { + .work-button { + transition: none; + } + + .work-button:hover { + transform: none; + } +} From 7029e3f3c2666298c03dc8e71a0a5360d58c7da9 Mon Sep 17 00:00:00 2001 From: Danylo Yenikeiev Date: Wed, 29 Jul 2026 16:58:31 +0700 Subject: [PATCH 02/10] Add work with me page --- _tabs/work-with-me.md | 210 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 _tabs/work-with-me.md diff --git a/_tabs/work-with-me.md b/_tabs/work-with-me.md new file mode 100644 index 0000000..38b41e4 --- /dev/null +++ b/_tabs/work-with-me.md @@ -0,0 +1,210 @@ +--- +title: Work with me +icon: fas fa-briefcase +order: 0 +permalink: /work-with-me/ +description: Web development, automation, integrations and technical repair by Danylo Yenikeiev. +toc: false +--- + + + +
+
+

Independent software engineer

+

I build, automate and repair web software.

+

+ Landing pages, web applications, AI and API integrations, and difficult technical fixes. +

+

+ Available for short fixed-scope projects and longer-term collaboration. +

+ + + +
+

Based in Poland | Remote worldwide | Async-friendly

+

Python | TypeScript | Rust | APIs | Docker | AI integrations

+
+
+ +
+
+

Three ways to start

+

Choose the closest match.

+

+ Not sure which one fits? Send the problem or desired result. I will suggest the smallest useful first step. +

+
+ +
+
+

Build

+

Websites and small web applications

+

+ I build responsive landing pages, business websites, dashboards and focused web applications. +

+

Typical work:

+
    +
  • Product and service landing pages
  • +
  • SaaS and business websites
  • +
  • Dashboards and admin panels
  • +
  • Forms, databases and user workflows
  • +
  • Implementation from an existing design
  • +
+
+ Typical starting scope + 1,500-5,000 PLN +
+
+ +
+

Automate

+

AI, APIs and business automation

+

+ I connect existing tools and build small internal applications that remove repetitive manual work. +

+

Typical work:

+
    +
  • Email and lead-processing workflows
  • +
  • API and webhook integrations
  • +
  • AI classification, extraction and summarization
  • +
  • Document processing, search and RAG
  • +
  • Internal tools and operational dashboards
  • +
  • Python and TypeScript backends
  • +
+
+ Typical starting scope + 2,000-7,000 PLN +
+
+ +
+

Rescue

+

Technical fixes and stabilization

+

+ I diagnose difficult failures in existing applications, integrations and production environments. +

+

Typical work:

+
    +
  • Unfinished or AI-built applications
  • +
  • Broken APIs, authentication and deployments
  • +
  • Shopify, GA4 and Google Ads tracking
  • +
  • Docker, VPS and networking issues
  • +
  • Lifecycle, WebSocket and backend failures
  • +
  • Tests, logging and production hardening
  • +
+
+ Paid diagnostics start at + 450 PLN +
+
+
+ +

+ These ranges are starting points and a practical filter, not a fixed public price list for every project. +

+
+ +
+
+

Selected work

+

Evidence from real systems.

+

+ The commercial work is broad. The engineering depth behind it comes from debugging production integrations, contributing upstream and building complex systems from scratch. +

+
+ +
+
+

Private client work

+

Shopify analytics repair

+

+ Diagnosed duplicate ecommerce events across Shopify, the Google and YouTube app, GA4, Google Ads, GTM and consent tooling. Isolated the real measurement path, removed competing tag routes and documented the reconnect and validation plan. +

+

Shopify | GA4 | Google Ads | GTM | Network debugging

+
+ +
+

Third-party codebase

+

Godot plugin stabilization

+

+ Updated and hardened an existing Godot plugin. Fixed editor lifecycle cleanup, subprocess and WebSocket failures, malformed message handling, oversized buffering, reconnect behavior and regression coverage. +

+

Godot | Python services | WebSockets | Testing | Debugging

+
+ +
+

Merged open source contribution

+

Quinn networking compatibility fix

+

+ Contributed a Rust networking fix that keeps QUIC endpoint creation working under Wine and Proton when optional Windows ECN functionality is unavailable. +

+ View merged pull request +
+ +
+

Independent engineering

+

Kova engine

+

+ Building a modular game engine in Rust with a custom runtime and ECS architecture, rendering, assets, scenes, input, physics, plugins, task systems, tooling, tests and backend-neutral public APIs. +

+ View project overview +
+
+
+ +
+
+

How it works

+

A small first milestone, then evidence.

+
+ +
    +
  1. + 1 +

    You send the current problem, repository or desired result.

    +
  2. +
  3. + 2 +

    I define the smallest useful paid milestone.

    +
  4. +
  5. + 3 +

    You receive a fixed scope, price and acceptance criteria.

    +
  6. +
  7. + 4 +

    I implement, test and document the result.

    +
  8. +
+ +

No free speculative work. No long contract required.

+
+ +
+
+

Start with the facts

+

Have a project or a technical problem?

+

Send:

+
    +
  • What you need
  • +
  • Current stack or platform
  • +
  • Desired result
  • +
  • Preferred deadline
  • +
+

+ A complete specification is not required. A repository, screenshots, logs or rough notes are enough to start. +

+

I will reply with the proposed first milestone.

+
+ + +
+
From dfd5a99df5965688f106ec8bb38ee246a57ec977 Mon Sep 17 00:00:00 2001 From: Danylo Yenikeiev Date: Wed, 29 Jul 2026 17:03:25 +0700 Subject: [PATCH 03/10] Refine selected work details --- _tabs/work-with-me.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_tabs/work-with-me.md b/_tabs/work-with-me.md index 38b41e4..5c40238 100644 --- a/_tabs/work-with-me.md +++ b/_tabs/work-with-me.md @@ -134,7 +134,7 @@ toc: false

Updated and hardened an existing Godot plugin. Fixed editor lifecycle cleanup, subprocess and WebSocket failures, malformed message handling, oversized buffering, reconnect behavior and regression coverage.

-

Godot | Python services | WebSockets | Testing | Debugging

+

Godot | GDScript | WebSockets | Testing | Debugging

From 3ea3a704dfd167bacafd0920022b10e85940b20a Mon Sep 17 00:00:00 2001 From: Danylo Yenikeiev Date: Wed, 29 Jul 2026 17:27:02 +0700 Subject: [PATCH 04/10] Match work page to site style --- _tabs/work-with-me.md | 342 +++++++++++++++++------------------------- 1 file changed, 141 insertions(+), 201 deletions(-) diff --git a/_tabs/work-with-me.md b/_tabs/work-with-me.md index 5c40238..b2076e0 100644 --- a/_tabs/work-with-me.md +++ b/_tabs/work-with-me.md @@ -4,207 +4,147 @@ icon: fas fa-briefcase order: 0 permalink: /work-with-me/ description: Web development, automation, integrations and technical repair by Danylo Yenikeiev. -toc: false +toc: true --- - - -
-
-

Independent software engineer

-

I build, automate and repair web software.

-

- Landing pages, web applications, AI and API integrations, and difficult technical fixes. -

-

- Available for short fixed-scope projects and longer-term collaboration. -

- - - -
-

Based in Poland | Remote worldwide | Async-friendly

-

Python | TypeScript | Rust | APIs | Docker | AI integrations

-
-
- -
-
-

Three ways to start

-

Choose the closest match.

-

- Not sure which one fits? Send the problem or desired result. I will suggest the smallest useful first step. -

-
- -
-
-

Build

-

Websites and small web applications

-

- I build responsive landing pages, business websites, dashboards and focused web applications. -

-

Typical work:

-
    -
  • Product and service landing pages
  • -
  • SaaS and business websites
  • -
  • Dashboards and admin panels
  • -
  • Forms, databases and user workflows
  • -
  • Implementation from an existing design
  • -
-
- Typical starting scope - 1,500-5,000 PLN -
-
- -
-

Automate

-

AI, APIs and business automation

-

- I connect existing tools and build small internal applications that remove repetitive manual work. -

-

Typical work:

-
    -
  • Email and lead-processing workflows
  • -
  • API and webhook integrations
  • -
  • AI classification, extraction and summarization
  • -
  • Document processing, search and RAG
  • -
  • Internal tools and operational dashboards
  • -
  • Python and TypeScript backends
  • -
-
- Typical starting scope - 2,000-7,000 PLN -
-
- -
-

Rescue

-

Technical fixes and stabilization

-

- I diagnose difficult failures in existing applications, integrations and production environments. -

-

Typical work:

-
    -
  • Unfinished or AI-built applications
  • -
  • Broken APIs, authentication and deployments
  • -
  • Shopify, GA4 and Google Ads tracking
  • -
  • Docker, VPS and networking issues
  • -
  • Lifecycle, WebSocket and backend failures
  • -
  • Tests, logging and production hardening
  • -
-
- Paid diagnostics start at - 450 PLN -
-
-
- -

- These ranges are starting points and a practical filter, not a fixed public price list for every project. -

-
- -
-
-

Selected work

-

Evidence from real systems.

-

- The commercial work is broad. The engineering depth behind it comes from debugging production integrations, contributing upstream and building complex systems from scratch. -

-
- -
-
-

Private client work

-

Shopify analytics repair

-

- Diagnosed duplicate ecommerce events across Shopify, the Google and YouTube app, GA4, Google Ads, GTM and consent tooling. Isolated the real measurement path, removed competing tag routes and documented the reconnect and validation plan. -

-

Shopify | GA4 | Google Ads | GTM | Network debugging

-
- -
-

Third-party codebase

-

Godot plugin stabilization

-

- Updated and hardened an existing Godot plugin. Fixed editor lifecycle cleanup, subprocess and WebSocket failures, malformed message handling, oversized buffering, reconnect behavior and regression coverage. -

-

Godot | GDScript | WebSockets | Testing | Debugging

-
- -
-

Merged open source contribution

-

Quinn networking compatibility fix

-

- Contributed a Rust networking fix that keeps QUIC endpoint creation working under Wine and Proton when optional Windows ECN functionality is unavailable. -

- View merged pull request -
- -
-

Independent engineering

-

Kova engine

-

- Building a modular game engine in Rust with a custom runtime and ECS architecture, rendering, assets, scenes, input, physics, plugins, task systems, tooling, tests and backend-neutral public APIs. -

- View project overview -
-
-
- -
-
-

How it works

-

A small first milestone, then evidence.

-
- -
    -
  1. - 1 -

    You send the current problem, repository or desired result.

    -
  2. -
  3. - 2 -

    I define the smallest useful paid milestone.

    -
  4. -
  5. - 3 -

    You receive a fixed scope, price and acceptance criteria.

    -
  6. -
  7. - 4 -

    I implement, test and document the result.

    -
  8. -
- -

No free speculative work. No long contract required.

-
- -
-
-

Start with the facts

-

Have a project or a technical problem?

-

Send:

-
    -
  • What you need
  • -
  • Current stack or platform
  • -
  • Desired result
  • -
  • Preferred deadline
  • -
-

- A complete specification is not required. A repository, screenshots, logs or rough notes are enough to start. -

-

I will reply with the proposed first milestone.

-
- - -
+## I build, automate and repair web software. + +Landing pages, web applications, AI and API integrations, and difficult technical fixes. + +Available for short fixed-scope projects and longer-term collaboration. + + + +Based in Poland | Remote worldwide | Async-friendly +Python | TypeScript | Rust | APIs | Docker | AI integrations + +--- + +## Services + +There are three practical ways to start. If the project does not fit neatly into one category, send the current problem or desired result and I will suggest the smallest useful first step. + +### Build + +**Websites and small web applications** + +I build responsive landing pages, business websites, dashboards and focused web applications. + +Typical work: + +- product and service landing pages +- SaaS and business websites +- dashboards and admin panels +- forms, databases and user workflows +- implementation from an existing design + +**Typical starting scope: 1,500-5,000 PLN** + +### Automate + +**AI, APIs and business automation** + +I connect existing tools and build small internal applications that remove repetitive manual work. + +Typical work: + +- email and lead-processing workflows +- API and webhook integrations +- AI classification, extraction and summarization +- document processing, search and RAG +- internal tools and operational dashboards +- Python and TypeScript backends + +**Typical starting scope: 2,000-7,000 PLN** + +### Rescue + +**Technical fixes and stabilization** + +I diagnose difficult failures in existing applications, integrations and production environments. + +Typical work: + +- unfinished or AI-built applications +- broken APIs, authentication and deployments +- Shopify, GA4 and Google Ads tracking +- Docker, VPS and networking issues +- lifecycle, WebSocket and backend failures +- tests, logging and production hardening + +**Paid diagnostics start at 450 PLN.** + +> These ranges are starting points and a practical filter, not a fixed price list for every project. + +--- + +## Selected work +{: #selected-work } + +The commercial offer is broad, but the engineering depth behind it comes from real debugging work, upstream contributions and complex systems built from scratch. + +### Shopify analytics repair + +*Private client work* + +Diagnosed duplicate ecommerce events across Shopify, the Google and YouTube app, GA4, Google Ads, GTM and consent tooling. Isolated the real measurement path, removed competing tag routes and documented the reconnect and validation plan. + +**Shopify | GA4 | Google Ads | GTM | Network debugging** + +### Godot plugin stabilization + +*Third-party codebase* + +Updated and hardened an existing Godot plugin. Fixed editor lifecycle cleanup, subprocess and WebSocket failures, malformed message handling, oversized buffering, reconnect behavior and regression coverage. + +**Godot | GDScript | WebSockets | Testing | Debugging** + +### Quinn networking compatibility fix + +*Merged open source contribution* + +Contributed a Rust networking fix that keeps QUIC endpoint creation working under Wine and Proton when optional Windows ECN functionality is unavailable. + +[View the merged pull request](https://github.com/quinn-rs/quinn/pull/2532) + +### Kova engine + +*Independent engineering* + +Building a modular game engine in Rust with a custom runtime and ECS architecture, rendering, assets, scenes, input, physics, plugins, task systems, tooling, tests and backend-neutral public APIs. + +[View the project overview]({{ '/projects/' | relative_url }}) + +--- + +## How it works + +1. You send the current problem, repository or desired result. +2. I define the smallest useful paid milestone. +3. You receive a fixed scope, price and acceptance criteria. +4. I implement, test and document the result. + +**No free speculative work. No long contract required.** + +--- + +## Have a project or a technical problem? + +Send: + +- what you need +- current stack or platform +- desired result +- preferred deadline + +A complete specification is not required. A repository, screenshots, logs or rough notes are enough to start. + +**I will reply with the proposed first milestone.** + + From 9258caaef7bdbfda902afd7d3ab968ef620080e5 Mon Sep 17 00:00:00 2001 From: Danylo Yenikeiev Date: Wed, 29 Jul 2026 17:27:08 +0700 Subject: [PATCH 05/10] Remove standalone work page theme --- assets/css/work-with-me.css | 382 ------------------------------------ 1 file changed, 382 deletions(-) delete mode 100644 assets/css/work-with-me.css diff --git a/assets/css/work-with-me.css b/assets/css/work-with-me.css deleted file mode 100644 index 3f1d63a..0000000 --- a/assets/css/work-with-me.css +++ /dev/null @@ -1,382 +0,0 @@ -.work-page { - --work-border: var(--main-border-color, rgba(255, 255, 255, 0.12)); - --work-card: var(--card-bg, rgba(255, 255, 255, 0.035)); - --work-muted: var(--text-muted-color, var(--text-muted, #9ba3af)); - --work-accent: var(--link-color, #6ea8fe); - --work-heading: var(--heading-color, var(--text-color, #f3f4f6)); - --work-text: var(--text-color, #d8dee9); - max-width: 100%; -} - -.work-page, -.work-page * { - box-sizing: border-box; -} - -.work-page section { - margin: 0; -} - -.work-hero, -.work-cta { - border: 1px solid var(--work-border); - border-radius: 1rem; - background: var(--work-card); -} - -.work-hero { - padding: clamp(1.6rem, 4vw, 3.25rem); -} - -.work-eyebrow, -.service-label, -.case-type { - margin: 0 0 0.65rem; - color: var(--work-accent); - font-size: 0.78rem; - font-weight: 700; - letter-spacing: 0.09em; - line-height: 1.4; - text-transform: uppercase; -} - -.work-hero h2 { - max-width: 13ch; - margin: 0; - color: var(--work-heading); - font-size: clamp(2.25rem, 6vw, 4.5rem); - line-height: 1.02; - letter-spacing: -0.045em; -} - -.work-lead { - max-width: 42rem; - margin: 1.4rem 0 0; - color: var(--work-heading); - font-size: clamp(1.15rem, 2.2vw, 1.45rem); - line-height: 1.5; -} - -.work-availability { - max-width: 42rem; - margin: 0.75rem 0 0; - color: var(--work-muted); - font-size: 1rem; -} - -.work-actions { - display: flex; - flex-wrap: wrap; - gap: 0.75rem; - margin-top: 1.75rem; -} - -.work-button { - display: inline-flex; - min-height: 2.9rem; - align-items: center; - justify-content: center; - padding: 0.72rem 1.05rem; - border: 1px solid var(--work-border); - border-radius: 0.55rem; - font-weight: 700; - line-height: 1.2; - text-decoration: none; - transition: border-color 140ms ease, transform 140ms ease, background-color 140ms ease; -} - -.work-button:hover { - transform: translateY(-1px); - text-decoration: none; -} - -.work-button-primary { - border-color: var(--work-accent); - background: var(--work-accent); - color: var(--main-bg, #0d1117); -} - -.work-button-primary:hover { - color: var(--main-bg, #0d1117); -} - -.work-button-secondary { - color: var(--work-heading); - background: transparent; -} - -.work-button-secondary:hover { - border-color: var(--work-accent); - color: var(--work-heading); -} - -.work-meta { - display: grid; - gap: 0.35rem; - margin-top: 1.8rem; - padding-top: 1.2rem; - border-top: 1px solid var(--work-border); -} - -.work-meta p { - margin: 0; - color: var(--work-muted); - font-size: 0.92rem; -} - -.work-section { - padding: clamp(3.75rem, 8vw, 6.5rem) 0 0; -} - -.work-section-heading { - max-width: 46rem; - margin-bottom: 1.75rem; -} - -.work-section-heading h2, -.work-cta h2 { - margin: 0; - color: var(--work-heading); - font-size: clamp(1.9rem, 4vw, 3rem); - line-height: 1.1; - letter-spacing: -0.025em; -} - -.work-section-heading > p:last-child { - margin: 0.85rem 0 0; - color: var(--work-muted); - font-size: 1.02rem; - line-height: 1.65; -} - -.service-grid { - display: grid; - grid-template-columns: repeat(3, minmax(0, 1fr)); - gap: 1rem; -} - -.service-card, -.case-card, -.process-grid li { - border: 1px solid var(--work-border); - border-radius: 0.85rem; - background: var(--work-card); -} - -.service-card { - display: flex; - min-width: 0; - flex-direction: column; - padding: 1.35rem; -} - -.service-card h3, -.case-card h3 { - margin: 0; - color: var(--work-heading); - font-size: 1.28rem; - line-height: 1.3; -} - -.service-card > p:not(.service-label):not(.service-list-title) { - margin: 0.8rem 0 0; - color: var(--work-muted); - line-height: 1.6; -} - -.service-list-title { - margin: 1.25rem 0 0.45rem; - color: var(--work-heading); - font-weight: 700; -} - -.service-card ul, -.work-cta ul { - margin: 0; - padding-left: 1.15rem; -} - -.service-card li, -.work-cta li { - margin: 0.4rem 0; - line-height: 1.5; -} - -.service-price { - display: grid; - gap: 0.2rem; - margin-top: auto; - padding-top: 1.4rem; -} - -.service-price span { - color: var(--work-muted); - font-size: 0.82rem; -} - -.service-price strong { - color: var(--work-heading); - font-size: 1.12rem; -} - -.pricing-note, -.process-note { - margin: 1rem 0 0; - color: var(--work-muted); - font-size: 0.9rem; -} - -.case-grid { - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - gap: 1rem; -} - -.case-card { - min-width: 0; - padding: 1.35rem; -} - -.case-card > p:not(.case-type):not(.case-skills) { - margin: 0.8rem 0 0; - color: var(--work-muted); - line-height: 1.62; -} - -.case-skills { - margin: 1rem 0 0; - color: var(--work-heading); - font-size: 0.84rem; - font-weight: 600; - line-height: 1.5; -} - -.case-link { - display: inline-block; - margin-top: 1rem; - font-weight: 700; -} - -.process-grid { - display: grid; - grid-template-columns: repeat(4, minmax(0, 1fr)); - gap: 0.8rem; - margin: 0; - padding: 0; - list-style: none; -} - -.process-grid li { - min-width: 0; - padding: 1.2rem; -} - -.process-number { - display: inline-flex; - width: 1.8rem; - height: 1.8rem; - align-items: center; - justify-content: center; - border: 1px solid var(--work-border); - border-radius: 999px; - color: var(--work-accent); - font-size: 0.78rem; - font-weight: 800; -} - -.process-grid p { - margin: 0.9rem 0 0; - color: var(--work-heading); - line-height: 1.55; -} - -.work-cta { - display: grid; - grid-template-columns: minmax(0, 1fr) auto; - gap: 2rem; - align-items: end; - margin-top: clamp(4rem, 9vw, 7rem) !important; - padding: clamp(1.5rem, 4vw, 2.5rem); -} - -.work-cta > div:first-child { - max-width: 42rem; -} - -.work-cta > div:first-child > p:not(.work-eyebrow):not(.cta-outcome) { - margin: 0.85rem 0 0; - color: var(--work-muted); - line-height: 1.6; -} - -.work-cta ul { - margin-top: 0.5rem; -} - -.cta-outcome { - margin: 1.25rem 0 0; - color: var(--work-heading); - font-weight: 700; -} - -.cta-action { - display: grid; - gap: 0.7rem; - justify-items: stretch; - min-width: 12rem; -} - -.email-copy { - color: var(--work-muted); - font-size: 0.86rem; - text-align: center; -} - -@media (max-width: 980px) { - .service-grid { - grid-template-columns: 1fr; - } - - .process-grid { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } -} - -@media (max-width: 720px) { - .work-hero h2 { - max-width: none; - } - - .case-grid, - .process-grid, - .work-cta { - grid-template-columns: 1fr; - } - - .work-cta { - align-items: start; - } - - .cta-action { - justify-items: stretch; - min-width: 0; - } - - .work-button { - width: 100%; - } - - .work-meta p { - font-size: 0.86rem; - } -} - -@media (prefers-reduced-motion: reduce) { - .work-button { - transition: none; - } - - .work-button:hover { - transform: none; - } -} From aa07499d1ff3cb8471ce4d6aae7d3effe47d9b70 Mon Sep 17 00:00:00 2001 From: Danylo Yenikeiev Date: Wed, 29 Jul 2026 17:30:11 +0700 Subject: [PATCH 06/10] Make work page international --- _tabs/work-with-me.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/_tabs/work-with-me.md b/_tabs/work-with-me.md index b2076e0..ad9cb27 100644 --- a/_tabs/work-with-me.md +++ b/_tabs/work-with-me.md @@ -11,14 +11,14 @@ toc: true Landing pages, web applications, AI and API integrations, and difficult technical fixes. -Available for short fixed-scope projects and longer-term collaboration. +Available for short fixed-scope projects and longer-term collaboration with clients worldwide. -Based in Poland | Remote worldwide | Async-friendly +Europe-based | Remote worldwide | Async-friendly Python | TypeScript | Rust | APIs | Docker | AI integrations --- @@ -41,7 +41,7 @@ Typical work: - forms, databases and user workflows - implementation from an existing design -**Typical starting scope: 1,500-5,000 PLN** +**Typical starting project: $500-$1,500 USD** ### Automate @@ -58,7 +58,7 @@ Typical work: - internal tools and operational dashboards - Python and TypeScript backends -**Typical starting scope: 2,000-7,000 PLN** +**Typical starting project: $750-$2,000 USD** ### Rescue @@ -75,9 +75,9 @@ Typical work: - lifecycle, WebSocket and backend failures - tests, logging and production hardening -**Paid diagnostics start at 450 PLN.** +**Paid diagnostics start at $150 USD.** -> These ranges are starting points and a practical filter, not a fixed price list for every project. +> These ranges are starting points and a practical filter, not a fixed price list for every project. Final scope and pricing are agreed before work begins. --- From cbf8b7d7c830aa1ae2734c7cfce6061ec78ca587 Mon Sep 17 00:00:00 2001 From: Danylo Yenikeiev Date: Wed, 29 Jul 2026 17:30:34 +0700 Subject: [PATCH 07/10] Clarify USD pricing --- _tabs/work-with-me.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/_tabs/work-with-me.md b/_tabs/work-with-me.md index ad9cb27..fbb52a1 100644 --- a/_tabs/work-with-me.md +++ b/_tabs/work-with-me.md @@ -41,7 +41,7 @@ Typical work: - forms, databases and user workflows - implementation from an existing design -**Typical starting project: $500-$1,500 USD** +**Typical starting project: $500-$1,500** ### Automate @@ -58,7 +58,7 @@ Typical work: - internal tools and operational dashboards - Python and TypeScript backends -**Typical starting project: $750-$2,000 USD** +**Typical starting project: $750-$2,000** ### Rescue @@ -75,9 +75,9 @@ Typical work: - lifecycle, WebSocket and backend failures - tests, logging and production hardening -**Paid diagnostics start at $150 USD.** +**Paid diagnostics start at $150.** -> These ranges are starting points and a practical filter, not a fixed price list for every project. Final scope and pricing are agreed before work begins. +> All prices are in USD. These ranges are starting points and a practical filter, not a fixed price list for every project. Final scope and pricing are agreed before work begins. --- From b49026024ac8dba07fc15ae97a25e37f630ef6bd Mon Sep 17 00:00:00 2001 From: Danylo Yenikeiev Date: Wed, 29 Jul 2026 17:30:58 +0700 Subject: [PATCH 08/10] Keep international positioning concise From 7b6bf715086da77f63859b1547c47720aa59923d Mon Sep 17 00:00:00 2001 From: Danylo Yenikeiev Date: Wed, 29 Jul 2026 17:40:59 +0700 Subject: [PATCH 09/10] Add native work page layout --- assets/css/work-with-me.css | 211 ++++++++++++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 assets/css/work-with-me.css diff --git a/assets/css/work-with-me.css b/assets/css/work-with-me.css new file mode 100644 index 0000000..81ea97c --- /dev/null +++ b/assets/css/work-with-me.css @@ -0,0 +1,211 @@ +.work-page { + max-width: 100%; +} + +.work-page * { + box-sizing: border-box; +} + +.work-intro { + padding: 0.25rem 0 2.4rem; + border-bottom: 1px solid var(--main-border-color); +} + +.work-kicker, +.work-label, +.work-proof-type { + margin: 0 0 0.55rem; + color: var(--text-muted-color); + font-size: 0.78rem; + font-weight: 600; + letter-spacing: 0.06em; + text-transform: uppercase; +} + +.work-intro h2 { + max-width: 17ch; + margin: 0; + font-size: clamp(2rem, 5vw, 3.35rem); + line-height: 1.08; + letter-spacing: -0.025em; +} + +.work-lead { + max-width: 44rem; + margin: 1.25rem 0 0; + font-size: 1.12rem; + line-height: 1.65; +} + +.work-availability { + max-width: 44rem; + margin: 0.75rem 0 0; + color: var(--text-muted-color); +} + +.work-actions { + display: flex; + flex-wrap: wrap; + gap: 1rem; + align-items: center; + margin: 1.5rem 0; +} + +.work-action-primary { + display: inline-flex; + align-items: center; + min-height: 2.65rem; + padding: 0.55rem 0.85rem; + border: 1px solid var(--main-border-color); + border-radius: 0.4rem; + color: var(--text-color) !important; + font-weight: 600; + text-decoration: none; +} + +.work-action-primary:hover { + border-color: currentColor; + text-decoration: none; +} + +.work-action-secondary { + font-weight: 600; +} + +.work-meta { + margin: 0.25rem 0 0; + color: var(--text-muted-color); + font-size: 0.92rem; +} + +.work-section { + padding-top: 3.2rem; +} + +.work-section > h2 { + margin-top: 0; +} + +.work-section-intro { + max-width: 46rem; + margin-bottom: 1.4rem; +} + +.work-service { + display: grid; + grid-template-columns: minmax(11rem, 0.7fr) minmax(0, 1.5fr); + gap: 2rem; + padding: 1.65rem 0; + border-top: 1px solid var(--main-border-color); +} + +.work-service:last-of-type { + border-bottom: 1px solid var(--main-border-color); +} + +.work-service h3, +.work-proof h3 { + margin: 0; +} + +.work-price { + margin: 0.75rem 0 0; + font-weight: 600; +} + +.work-service-copy > p:first-child { + margin-top: 0; +} + +.work-service-copy ul { + margin-bottom: 0; +} + +.work-price-note { + max-width: 46rem; + margin: 1rem 0 0; + color: var(--text-muted-color); + font-size: 0.9rem; +} + +.work-proof { + padding: 1.45rem 0; + border-top: 1px solid var(--main-border-color); +} + +.work-proof:last-of-type { + border-bottom: 1px solid var(--main-border-color); +} + +.work-proof p { + max-width: 48rem; +} + +.work-proof-skills { + color: var(--text-muted-color); + font-size: 0.9rem; +} + +.work-steps { + margin: 1rem 0 0; + padding: 0; + list-style: none; + counter-reset: work-step; +} + +.work-steps li { + display: grid; + grid-template-columns: 2rem minmax(0, 1fr); + gap: 0.75rem; + padding: 0.9rem 0; + border-top: 1px solid var(--main-border-color); + counter-increment: work-step; +} + +.work-steps li:last-child { + border-bottom: 1px solid var(--main-border-color); +} + +.work-steps li::before { + content: counter(work-step, decimal-leading-zero); + color: var(--text-muted-color); + font-size: 0.82rem; + font-weight: 600; +} + +.work-fit-note { + margin-top: 1.15rem; + font-weight: 600; +} + +.work-cta { + margin-top: 3.5rem; + padding: 2rem 0; + border-top: 1px solid var(--main-border-color); + border-bottom: 1px solid var(--main-border-color); +} + +.work-cta h2 { + margin-top: 0; +} + +.work-cta p, +.work-cta ul { + max-width: 46rem; +} + +@media (max-width: 760px) { + .work-service { + grid-template-columns: 1fr; + gap: 0.75rem; + } + + .work-action-primary { + width: 100%; + justify-content: center; + } + + .work-actions { + align-items: flex-start; + } +} From a5eb984555e6b123accbd30c4a294f003cacd776 Mon Sep 17 00:00:00 2001 From: Danylo Yenikeiev Date: Wed, 29 Jul 2026 17:41:44 +0700 Subject: [PATCH 10/10] Refine work page presentation --- _tabs/work-with-me.md | 306 +++++++++++++++++++++++------------------- 1 file changed, 166 insertions(+), 140 deletions(-) diff --git a/_tabs/work-with-me.md b/_tabs/work-with-me.md index fbb52a1..9813cb0 100644 --- a/_tabs/work-with-me.md +++ b/_tabs/work-with-me.md @@ -7,144 +7,170 @@ description: Web development, automation, integrations and technical repair by D toc: true --- -## I build, automate and repair web software. - -Landing pages, web applications, AI and API integrations, and difficult technical fixes. - -Available for short fixed-scope projects and longer-term collaboration with clients worldwide. - - - -Europe-based | Remote worldwide | Async-friendly -Python | TypeScript | Rust | APIs | Docker | AI integrations - ---- - -## Services - -There are three practical ways to start. If the project does not fit neatly into one category, send the current problem or desired result and I will suggest the smallest useful first step. - -### Build - -**Websites and small web applications** - -I build responsive landing pages, business websites, dashboards and focused web applications. - -Typical work: - -- product and service landing pages -- SaaS and business websites -- dashboards and admin panels -- forms, databases and user workflows -- implementation from an existing design - -**Typical starting project: $500-$1,500** - -### Automate - -**AI, APIs and business automation** - -I connect existing tools and build small internal applications that remove repetitive manual work. - -Typical work: - -- email and lead-processing workflows -- API and webhook integrations -- AI classification, extraction and summarization -- document processing, search and RAG -- internal tools and operational dashboards -- Python and TypeScript backends - -**Typical starting project: $750-$2,000** - -### Rescue - -**Technical fixes and stabilization** - -I diagnose difficult failures in existing applications, integrations and production environments. - -Typical work: - -- unfinished or AI-built applications -- broken APIs, authentication and deployments -- Shopify, GA4 and Google Ads tracking -- Docker, VPS and networking issues -- lifecycle, WebSocket and backend failures -- tests, logging and production hardening - -**Paid diagnostics start at $150.** - -> All prices are in USD. These ranges are starting points and a practical filter, not a fixed price list for every project. Final scope and pricing are agreed before work begins. - ---- - -## Selected work -{: #selected-work } - -The commercial offer is broad, but the engineering depth behind it comes from real debugging work, upstream contributions and complex systems built from scratch. - -### Shopify analytics repair - -*Private client work* - -Diagnosed duplicate ecommerce events across Shopify, the Google and YouTube app, GA4, Google Ads, GTM and consent tooling. Isolated the real measurement path, removed competing tag routes and documented the reconnect and validation plan. - -**Shopify | GA4 | Google Ads | GTM | Network debugging** - -### Godot plugin stabilization - -*Third-party codebase* - -Updated and hardened an existing Godot plugin. Fixed editor lifecycle cleanup, subprocess and WebSocket failures, malformed message handling, oversized buffering, reconnect behavior and regression coverage. - -**Godot | GDScript | WebSockets | Testing | Debugging** - -### Quinn networking compatibility fix - -*Merged open source contribution* - -Contributed a Rust networking fix that keeps QUIC endpoint creation working under Wine and Proton when optional Windows ECN functionality is unavailable. - -[View the merged pull request](https://github.com/quinn-rs/quinn/pull/2532) - -### Kova engine - -*Independent engineering* - -Building a modular game engine in Rust with a custom runtime and ECS architecture, rendering, assets, scenes, input, physics, plugins, task systems, tooling, tests and backend-neutral public APIs. - -[View the project overview]({{ '/projects/' | relative_url }}) - ---- - -## How it works - -1. You send the current problem, repository or desired result. -2. I define the smallest useful paid milestone. -3. You receive a fixed scope, price and acceptance criteria. -4. I implement, test and document the result. - -**No free speculative work. No long contract required.** - ---- - -## Have a project or a technical problem? - -Send: - -- what you need -- current stack or platform -- desired result -- preferred deadline - -A complete specification is not required. A repository, screenshots, logs or rough notes are enough to start. - -**I will reply with the proposed first milestone.** - -
- Discuss a project - ogyrec.404@proton.me + + +
+
+

Web development, automation and technical repair

+

I build, automate and repair web software.

+

+ For small companies, product teams and founders who need a landing page, focused web application, business workflow or difficult technical fix. +

+

+ Clear first milestone, fixed scope and async communication. Available for short projects and longer-term collaboration. +

+ + + +

Remote worldwide. Async-friendly. Europe-based.

+

Python, TypeScript, Rust, APIs, Docker and AI integrations.

+
+ +
+

Ways I can help

+

+ Start with the closest match. You do not need a finished specification. A rough brief, repository, screenshots or logs are enough for me to define a useful first milestone. +

+ +
+
+

Build

+

Websites and small web applications

+

Typical projects: $500-$1,500

+
+
+

+ Launch a clear, responsive product or service experience without the overhead of a large agency process. +

+
    +
  • product, service and SaaS landing pages
  • +
  • business websites and focused web applications
  • +
  • dashboards and admin panels
  • +
  • forms, databases and user workflows
  • +
  • implementation from an existing design
  • +
+
+
+ +
+
+

Automate

+

AI, APIs and business automation

+

Typical projects: $750-$2,000

+
+
+

+ Replace repetitive manual work with a small, maintainable tool or integration that fits the systems you already use. +

+
    +
  • email and lead-processing workflows
  • +
  • API and webhook integrations
  • +
  • AI classification, extraction and summarization
  • +
  • document processing, search and RAG
  • +
  • internal tools and operational dashboards
  • +
  • Python and TypeScript backends
  • +
+
+
+ +
+
+

Rescue

+

Technical fixes and stabilization

+

Paid diagnostics from $150

+
+
+

+ Find the real failure, fix the smallest reliable layer and leave the application easier to understand and operate. +

+
    +
  • unfinished or AI-built applications
  • +
  • broken APIs, authentication and deployments
  • +
  • Shopify, GA4 and Google Ads tracking
  • +
  • Docker, VPS and networking issues
  • +
  • lifecycle, WebSocket and backend failures
  • +
  • tests, logging and production hardening
  • +
+
+
+ +

+ All prices are in USD. These ranges are starting points and a practical filter, not a fixed price list. Scope, price and acceptance criteria are agreed before work begins. +

+
+ +
+

Selected work

+

+ My commercial offer is broad, but the same engineering approach applies throughout: reproduce the problem, isolate the real cause, implement the smallest reliable solution and verify the result. +

+ +
+

Private client work

+

Shopify analytics repair

+

+ Diagnosed duplicate ecommerce events across Shopify, the Google and YouTube app, GA4, Google Ads, GTM and consent tooling. Isolated the real measurement path, removed competing tag routes and documented the reconnect and validation plan. +

+

Shopify, GA4, Google Ads, GTM and network debugging

+
+ +
+

Third-party codebase

+

Godot plugin stabilization

+

+ Updated and hardened an existing plugin by fixing editor lifecycle cleanup, subprocess and WebSocket failures, malformed message handling, oversized buffering, reconnect behavior and regression coverage. +

+

Godot, GDScript, WebSockets, testing and debugging

+
+ +
+

Merged open source contribution

+

Quinn networking compatibility fix

+

+ Contributed a Rust networking fix that keeps QUIC endpoint creation working under Wine and Proton when optional Windows ECN functionality is unavailable. +

+

View the merged pull request

+
+ +
+

Independent engineering

+

Kova engine

+

+ Building a modular game engine in Rust with a custom runtime and ECS architecture, rendering, assets, scenes, input, physics, plugins, task systems, tooling, tests and backend-neutral public APIs. +

+

View the project overview

+
+
+ +
+

How it works

+
    +
  1. You send the current problem, repository or desired result.
  2. +
  3. I define the smallest useful paid milestone.
  4. +
  5. You receive a fixed scope, price and acceptance criteria.
  6. +
  7. I implement, test and document the result.
  8. +
+

No free speculative work. No long contract required.

+
+ +
+

Have a project or a technical problem?

+

Send:

+
    +
  • what you need
  • +
  • current stack or platform
  • +
  • desired result
  • +
  • preferred deadline
  • +
+

+ I will reply with a proposed first milestone, including scope, price and acceptance criteria. +

+ +