Next cohort starts 12 January · 14 seats
Twelve weeks of project-based programming courses in Ukraine, closed each week by a numbered code review you resubmit before the next module opens.
Line 41: the fetch is never awaited. Blocker. Fix it and resubmit. The second version is where the learning happens.
const user = fetch(url)return user.dataconst res = await fetch(url)if (!res.ok) throw new Error(res.status)return res.json()
Ledger / Proof
Numbers we track, plus the limit we will not hide.
Hiring depends on completed work, interview performance and market conditions. We publish the review method so you can inspect the process before you apply.
Read the review method04
Review Method
A reviewer opens your branch, quotes the exact lines that broke, tags the severity, and names the direction to try next. One reviewer covers seven students, so nobody waits in a queue.
order.js:42, the fetch resolves after unmount and throws into an empty tree. Suggested direction: abort the controller in cleanup before you touch the loading flag.
Filters.tsx:118, the list re-renders on every keystroke because the memo depends on a fresh array. Suggested direction: memoise the derived list, not the handler.
api/client.ts:9, data hides three shapes under one name. Suggested direction: call it orderLines and the type narrows on its own.
You clear the blocker and the should-fix, then push again. The second version is where the learning happens, so a week never closes on the first draft.
Notes stay in the thread, dated and signed. Read a full review thread from week 6 before you apply.
Modules run in order. The next one does not open until the previous review has been answered, so a gate works as a dependency rather than a formality. Weekly workload below assumes no prior professional experience.
Git history, commit messages, and repository hygiene, checked line by line.
Accessible markup and responsive breakpoints, read against a fixed checklist.
Functions, data flow, and error paths, each one explained in writing.
Event handling and fetch states. The second version is where the learning happens.
State boundaries and prop contracts. Blocker notes must be closed before w06 opens.
Request validation, status codes, and the failure paths most tutorials skip.
Schema review, migration order, and one reversible rollback you write yourself.
Portfolio audit, CV review, and a mock interview signed off by the reviewer.
Reviewers are assigned at 1 per 7 students, with a 72-hour turnaround on every submitted module. The cost breakdown lists what each module includes and the instalment total.
Evidence / portfolio
Four files taken from reviewed student repositories, each with the reviewer's numbered note and the diff that closed it. Names are cut to initials at the student's request.
Note 2, should-fix: the window resets on every call, so a burst of 40 requests gets through. Store the timestamps and slice them.
- if (++calls > LIMIT) return block();
+ hits.push(now);
+ hits = hits.filter(t => t > now - WINDOW);
+ if (hits.length > LIMIT) return block();
Note 1, blocker: the total is recomputed in render with floats. Move the maths to cents and format once at the edge.
- const total = items.reduce((s, i) => s + i.price * i.qty, 0);
+ const cents = items.reduce((s, i) => s + i.priceCents * i.qty, 0);
+ const total = formatUah(cents);
Note 3, should-fix: this test only checks that the button exists. Assert the order row in the database and the message that left the queue.
- expect(button).toBeVisible();
+ await expect(orderRow()).toContainText('paid');
+ expect(outbox.lastTo).toBe('o.petrenko@example.org');
Note 1, nit: the setup steps assume Node 20 is already installed. Add the version, the exact commands, and one screen of the running app.
- ## Run / npm start
+ ## Run (Node 20.11, see .nvmrc)
+ npm ci && npm run dev
+ open http://localhost:3000
Resubmission is mandatory and re-reviewed by the same person within 72 hours. Read a full review thread or ask admissions a question.
Cost disclosure
One fee covers twelve weeks of project work, numbered code reviews on every submission, and a portfolio audit at the end. Nothing is billed later and nothing is sold separately.
| Item | Amount |
|---|---|
| Program fee, 12 weeks | UAH 42,000 |
| Review and assessment, 14 reviews per student | Included |
| Portfolio audit and career preparation | UAH 7,500 |
| Total, paid in full | UAH 49,500 |
| Instalments, 3 payments of UAH 16,500 | UAH 49,500 |
| Materials, tooling and repository hosting | UAH 0 |
Spreading the fee across three instalments does not add a margin: the instalment total is UAH 49,500, the same figure as paying once.
Cancel up to seven days before the start date and the fee is returned in full. Withdraw during the first two weeks and you are charged for the weeks attended at UAH 3,500 each, with the remainder refunded within ten working days. After week two the fee is not refunded, but your seat stays open for the next cohort.
Contact
Questions about the 72-hour review turnaround, cohort dates, or the schedule reach a reviewer, not a call center. The UAH 49,500 instalment total is printed in full in the cost disclosure table.