diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 04d62ea..0000000
--- a/.editorconfig
+++ /dev/null
@@ -1,6 +0,0 @@
-[*]
-root = true
-indent_style = space
-indent_size = 2
-trim_trailing_whitespace = true
-insert_final_newline = true
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 4d29575..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,23 +0,0 @@
-# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-
-# dependencies
-/node_modules
-/.pnp
-.pnp.js
-
-# testing
-/coverage
-
-# production
-/build
-
-# misc
-.DS_Store
-.env.local
-.env.development.local
-.env.test.local
-.env.production.local
-
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
diff --git a/.idea/.gitignore b/.idea/.gitignore
deleted file mode 100644
index b58b603..0000000
--- a/.idea/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Editor-based HTTP Client requests
-/httpRequests/
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 292333d..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- {category.description} -
-- Hover over hexagon elements or category cards to expand details -
-- {level.description} -
-- Solidgate is a payment processing and orchestration platform helping - thousands of businesses to accept payments online. We enable - businesses to accept payments globally through a unified API, - supporting multiple payment methods, currencies, and compliance - requirements. Our client base encompasses various industries and - countries, working with both local merchants and multinational - corporations. They do business while we do payments for their - businesses. -
- -- At Solidgate, we work with{" "} - engineers, not just - developers. Solidgate engineers don't maintain systems — they design - them. We build the architecture behind seamless global payments, - trusted by 150+ digital leaders. They take a holistic approach to - problem-solving, designing systems with scalability, security, and - business impact in mind. They understand the entire system lifecycle - and make architectural decisions that drive business value. -
- -- We embrace DevOps principles with continuous integration/deployment, - infrastructure as code (Terraform, AWS Fargate), comprehensive - monitoring (Grafana, VictoriaMetrics, VictoriaLogs), and site - reliability engineering. Our technology stack includes Go, Kotlin, - Python, Node.js, React, TypeScript, RDS, Kafka, and AWS cloud - infrastructure. -
-- We move fast. We stay transparent. We evaluate impact and thinking — - not buzzwords. -
- - {/* Step 1 */} -- First alignment. -
-- Talent team learns your story, expectations, goals, motivation + - comp range. -
-- You get signal on role, team, product and direction. -
-- A browser-based VS Code session with Claude Code available - throughout. You'll explore a small TypeScript/Node.js - codebase, add a focused feature, then implement a bigger one - from a deliberately concise spec. Before the technical - interview, Front-End and Full-Stack Engineer candidates go - through this additional step. -
-- We're not grading whether you finish — we're watching how you - direct AI, verify its output, and reason about trade-offs. -
- - - {showAIScreen && ( -- Check out{" "} - - solidgate.com - {" "} - 💚 and get to know what we build. You don't need domain - knowledge going in — what matters is how you think, - communicate, and use AI tools like Claude. -
-- Quick introductions, then a chance to ask any questions - upfront — about the role, the team, or how we work. -
-- A browser-based VS Code environment, pre-configured - with Node.js, TypeScript, and Claude Code CLI. Read the - spec, run the tests, ask clarifying questions. -
-- A small, well-scoped feature on a pre-built TypeScript/ - Node.js app. Get oriented, make a focused change, verify - it works in the running app — not just that the code - looks right. -
-- A bigger feature from a spec that's intentionally - concise. Treat it like a real ticket — ask clarifying - questions, read the code you're building on, consider - edge cases, verify your work. -
-- A short debrief and what's next. Time to ask us - anything — about the role, the team, or the engineering - culture at Solidgate. -
-- Not whether you finish everything — how you approach - problems and collaborate with AI: -
-- Deep dive into how you engineer, reason and make decisions. -
-- Architecture thinking, trade-offs, problem solving, clarity of - thought. -
- - - {showTechInterview && ( -- Start by checking out our website —{" "} - - solidgate.com - {" "} - 💚 — and get to know our product inside out. Want to dig - deeper? Our API docs have all the details you need. Below, - you'll find a clear breakdown of the skills we look for - across engineering roles. -
-- We'll kick things off with quick intros — who you are, who - we are, and what we're here to do. Before we dive in, - you'll have a chance to ask any questions upfront — about - the role, the team, how we work, or anything that helps - you feel confident moving forward. -
-- We want to understand how you work, not just where you've - worked. -
-- We'll ask about: -
-- Be ready to go beyond your CV. We're interested in - ownership and real impact you've had on teams and - products. -
-- Now we go into your engineering skills. Expect questions - covering the topics outlined in the competence matrix - section. -
-- This could be hands-on or conceptual. We're not just - looking for the right answer — we care about how you - approach problems. -
-- If relevant for the role, we'll throw in a system design - challenge. -
-- You might be asked to sketch out how you'd build something - like: -
-- We want to see how you balance scalability, reliability, - and speed — and how you justify your tech choices. -
-- We'll close with a short debrief and outline what's next. -
-- You'll also have time to ask us anything — about the role, - the team, the culture, or how we build at Solidgate. -
-- We evaluate leadership behaviors, ownership, communication, - feedback culture, and collaboration patterns. Usually with the - Head of Engineering or the Engineering Managers. -
-- Independent calibration. We check if you increase our bar — not - just match it. Focus on long-term potential and cultural - contribution. Held by the CEO. -
-- We align on offer details, expectations, timeline and final - signals from both sides. -
-- And you join one of the strongest fintech engineering teams in - the world. -
-- This matrix represents the expected competency levels for our - engineering roles. Each category is scored from 0 to 5, where 5 - represents maximum competency. -
-- Understanding our engineering career progression helps align - expectations and growth opportunities. Each level represents different - responsibilities, technical depth, and organizational impact. -
-- Макс Багінський, Head of engineering -
-- Лев Давидов Tech Lead(FE Guild Master) -
-- Микита Глушак, Head of Infrastructure -
-- Сергій Сафонов, ex-Tech Lead -
-- Сергій Сафонов, ex-Tech Lead -
-- Макс Багінський, Head of Engineering -
-- Владислав Павленко, Go Engineer -
-- Сергій Сафонов, ex-Tech Lead -
-- Святослав Головін, Frontend engineer -
-- These principles guide how we build, ship, and improve. -
- -- {value.description} -
-- {stream.description} -
- -- {stream.quote} -
- - {stream.teams.length > 0 && ( -- Teams -
-- by {book.authors} -
- -- {book.description} -
-- AI tools are woven into our daily engineering workflow — from code completion to automated reviews and intelligent pair programming. -
-- {tool.description} -
-- {position.team} Team -
-- {position.hook} -
- - {isExpanded && ( -- {position.details} -
-- We look for product engineers who know how to code and are ready to - become real T-shaped specialists. -
--
-
-
-
- We don't just complete tasks at Solidgate — we build top-quality - products using DevOps and Lean approaches. --
- {description} -
- ) : null} -a||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import React from \"react\";\n\nexport function TestimonialCard({\n name,\n position,\n team,\n linkedinUrl,\n photoUrl,\n description,\n qa,\n}) {\n const initials = name\n .split(\" \")\n .map((part) => part[0])\n .join(\"\")\n .slice(0, 2)\n .toUpperCase();\n\n return (\n \n {description}\n \n {category.description}\n \n Hover over hexagon elements or category cards to expand details\n \n {level.description}\n \n Solidgate is a payment processing and orchestration platform helping\n thousands of businesses to accept payments online. We enable\n businesses to accept payments globally through a unified API,\n supporting multiple payment methods, currencies, and compliance\n requirements. Our client base encompasses various industries and\n countries, working with both local merchants and multinational\n corporations. They do business while we do payments for their\n businesses.\n \n At Solidgate, we work with{\" \"}\n engineers, not just\n developers. Solidgate engineers don't maintain systems — they design\n them. We build the architecture behind seamless global payments,\n trusted by 150+ digital leaders. They take a holistic approach to\n problem-solving, designing systems with scalability, security, and\n business impact in mind. They understand the entire system lifecycle\n and make architectural decisions that drive business value.\n \n We embrace DevOps principles with continuous integration/deployment,\n infrastructure as code (Terraform, AWS Fargate), comprehensive\n monitoring (Grafana, VictoriaMetrics, VictoriaLogs), and site\n reliability engineering. Our technology stack includes Go, Kotlin,\n Python, Node.js, React, TypeScript, RDS, Kafka, and AWS cloud\n infrastructure.\n \n We move fast. We stay transparent. We evaluate impact and thinking —\n not buzzwords.\n \n First alignment.\n \n Talent team learns your story, expectations, goals, motivation +\n comp range.\n \n You get signal on role, team, product and direction.\n \n A browser-based VS Code session with Claude Code available\n throughout. You'll explore a small TypeScript/Node.js\n codebase, add a focused feature, then implement a bigger one\n from a deliberately concise spec. Before the technical\n interview, Front-End and Full-Stack Engineer candidates go\n through this additional step.\n \n We're not grading whether you finish — we're watching how you\n direct AI, verify its output, and reason about trade-offs.\n \n Check out{\" \"}\n \n solidgate.com\n {\" \"}\n 💚 and get to know what we build. You don't need domain\n knowledge going in — what matters is how you think,\n communicate, and use AI tools like Claude.\n \n Quick introductions, then a chance to ask any questions\n upfront — about the role, the team, or how we work.\n \n A browser-based VS Code environment, pre-configured\n with Node.js, TypeScript, and Claude Code CLI. Read the\n spec, run the tests, ask clarifying questions.\n \n A small, well-scoped feature on a pre-built TypeScript/\n Node.js app. Get oriented, make a focused change, verify\n it works in the running app — not just that the code\n looks right.\n \n A bigger feature from a spec that's intentionally\n concise. Treat it like a real ticket — ask clarifying\n questions, read the code you're building on, consider\n edge cases, verify your work.\n \n A short debrief and what's next. Time to ask us\n anything — about the role, the team, or the engineering\n culture at Solidgate.\n \n Not whether you finish everything — how you approach\n problems and collaborate with AI:\n \n Deep dive into how you engineer, reason and make decisions.\n \n Architecture thinking, trade-offs, problem solving, clarity of\n thought.\n \n Start by checking out our website —{\" \"}\n \n solidgate.com\n {\" \"}\n 💚 — and get to know our product inside out. Want to dig\n deeper? Our API docs have all the details you need. Below,\n you'll find a clear breakdown of the skills we look for\n across engineering roles.\n \n We'll kick things off with quick intros — who you are, who\n we are, and what we're here to do. Before we dive in,\n you'll have a chance to ask any questions upfront — about\n the role, the team, how we work, or anything that helps\n you feel confident moving forward.\n \n We want to understand how you work, not just where you've\n worked.\n \n We'll ask about:\n \n Be ready to go beyond your CV. We're interested in\n ownership and real impact you've had on teams and\n products.\n \n Now we go into your engineering skills. Expect questions\n covering the topics outlined in the competence matrix\n section.\n \n This could be hands-on or conceptual. We're not just\n looking for the right answer — we care about how you\n approach problems.\n \n If relevant for the role, we'll throw in a system design\n challenge.\n \n You might be asked to sketch out how you'd build something\n like:\n \n We want to see how you balance scalability, reliability,\n and speed — and how you justify your tech choices.\n \n We'll close with a short debrief and outline what's next.\n \n You'll also have time to ask us anything — about the role,\n the team, the culture, or how we build at Solidgate.\n \n We evaluate leadership behaviors, ownership, communication,\n feedback culture, and collaboration patterns. Usually with the\n Head of Engineering or the Engineering Managers.\n \n Independent calibration. We check if you increase our bar — not\n just match it. Focus on long-term potential and cultural\n contribution. Held by the CEO.\n \n We align on offer details, expectations, timeline and final\n signals from both sides.\n \n And you join one of the strongest fintech engineering teams in\n the world.\n \n This matrix represents the expected competency levels for our\n engineering roles. Each category is scored from 0 to 5, where 5\n represents maximum competency.\n \n Understanding our engineering career progression helps align\n expectations and growth opportunities. Each level represents different\n responsibilities, technical depth, and organizational impact.\n \n Макс Багінський, Head of engineering\n \n Лев Давидов Tech Lead(FE Guild Master)\n \n Микита Глушак, Head of Infrastructure\n \n Сергій Сафонов, ex-Tech Lead\n \n Сергій Сафонов, ex-Tech Lead\n \n Макс Багінський, Head of Engineering\n \n Владислав Павленко, Go Engineer\n \n Сергій Сафонов, ex-Tech Lead\n \n Святослав Головін, Frontend engineer\n \n These principles guide how we build, ship, and improve.\n \n {value.description}\n \n {stream.description}\n \n {stream.quote}\n \n Teams\n \n by {book.authors}\n \n {book.description}\n \n AI tools are woven into our daily engineering workflow — from code completion to automated reviews and intelligent pair programming.\n \n {tool.description}\n \n {position.team} Team\n \n {position.hook}\n \n {position.details}\n \n We look for product engineers who know how to code and are ready to\n become real T-shaped specialists.\n \n \n \n \n \n ) : (\n
{name}
\n {linkedinUrl ? (\n \n LinkedIn\n \n ) : null}\n \n Testimonials\n
\n\n \n )}\n
\n {language}\n
\n \n Requirements:\n
\n \n {requirements.map((req, index) => (\n
\n \n Top Interview Questions:\n
\n \n {questions.map((question, index) => (\n
\n \n Competency Matrix\n
\n \n Category Details\n
\n \n {category.name}\n
\n \n Engineering Career Levels\n
\n\n \n {level.name}\n
\n \n {level.characteristics.map((char, charIndex) => (\n
\n \n About Solidgate\n
\n \n 🚀 Our Hiring Process\n
\n \n 🔍 Recruiter Screening (30–45 min)\n
\n \n 🤖 AI Fluency Screening (~1 hour)\n
\n \n Frontend / Full-Stack Only\n \n \n Preparation\n
\n \n 1. 👋 Intro (5 min)\n
\n \n 2. 🔍 Warm-Up — Explore the Environment (5 min)\n
\n \n 3. 🔧 Task 1 — Small Feature (15 min)\n
\n \n 4. ✨ Task 2 — Feature Implementation (20 min)\n
\n \n 5. ✅ Wrap-Up & Next Steps (5 min)\n
\n \n What we're looking for\n
\n \n
\n \n ⚙️ Technical Interview (~1.5 hours)\n
\n \n Preparation\n
\n \n 1. 👋 Intro (5 min)\n
\n \n 2. 📂 Deep Dive into Experience (20 min)\n
\n \n
\n \n 3. 🧠 Technical Questions (60 min)\n
\n \n 3. 🏗️ Architecture Task (60 min)\n
\n \n
\n \n 4. ✅ Wrap-Up & Next Steps (5 min)\n
\n \n 🤝 Soft Skills Interview (~1.5 hours)\n
\n \n 📈 Bar-Raising Interview (1–1.5 hours)\n
\n \n ✅ Final Alignment Call (15 min)\n
\n \n 💚 Offer Signed\n
\n \n Expected Competency Matrix\n
\n \n Engineering Career Levels\n
\n \n Language-Specific Requirements\n
\n\n {/* Tabs */}\n \n Our Engineers on Media\n
\n \n \n \n \n Як 50 інженерів роблять 1000 деплоїв на місяць | DOU Day 2025\n
\n \n \n \n \n Challenge: Unbreakable Payment Form\n
\n \n \n \n \n Реальність керування 100+ «керованими» базами даних RDS Postgres\n
\n \n \n \n \n Надійність систем за налаштованого CI/CD\n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n Books We Love and Recommend 💚\n
\n \n Engineering Values\n
\n \n {value.title.split(\" \").slice(1).join(\" \")}\n
\n {value.title.includes(\"Reliability Obsessed\") && (\n <>\n {!isMobile && (\n \n Team Structure\n
\n\n \n {stream.title}\n
\n \n {stream.points.map((point, pIdx) => (\n
\n\n {\n e.target.style.display = \"none\";\n }}\n />\n
\n {book.title}\n
\n\n \n How We Use AI at Solidgate\n
\n \n {tool.name}\n
\n \n {tool.ring}\n \n \n {position.title}\n
\n \n Software Engineering School — Open Positions\n
\n \n We don't just complete tasks at Solidgate — we build top-quality\n products using DevOps and Lean approaches.\n
\n