Education
Rivne State University of the Humanities
Major: Physical Education and Sports
The National University of Water and Environmental Engineering
Major: Computer Science (withdrew from the program by personal decision)
Experience
Pravo Vibora - "Life capital" for blind youth
Volunteer project for a non-profit organization
Description:
“Life Capital” is a financial‑economic training game that helps participants improve their financial literacy, resource allocation skills, creative problem‑solving, and decision‑making speed.
Goal:
To design and develop an accessible online platform that supports financial training sessions based on the educational game “Life Capital.” In the traditional format, game participants manually record data with a pencil on paper — an approach that excludes blind and visually impaired users. This project aims to remove that barrier by enabling real-time interaction with game data in a fully accessible digital environment.
Technology Stack:
React, TypeScript, Firebase, React Router, TanStack Query, Mantine UI, Tailwind CSS
Source code:
https://github.com/AsieievKostiantyn/Life-CapitalCode Expamples
Generic debounce function to limit rapid re-renders or API calls
export const debounce = <T extends (...args: any[]) => void>(
func: T,
delay = 300
): ((...args: Parameters<T>) => void) => {
let timer: ReturnType<typeof setTimeout>;
return (...args) => {
clearTimeout(timer);
timer = setTimeout(() => func(...args), delay);
};
};
Stream large text file with Node.js
async function processLargeFile(filePath: string) {
if (!fs.existsSync(filePath)) {
throw new Error(`File not found: ${filePath}`);
}
try {
const stream = fs.createReadStream(filePath, { encoding: "utf8" });
const rl = readline.createInterface({
input: stream,
crlfDelay: Infinity,
});
let count = 0;
for await (const line of rl) {
if (count % 1_000_000 === 0) {
console.log(`Processing line ${count}: ${line}`);
}
count++;
}
console.log(`Finished. Total lines: ${count}`);
} catch (err) {
console.error("Error while processing the file:", err);
}
}
Find the first non-repeating character in a string
function firstUniqueChar(input: string): string | null {
const charCount = new Map<string, number>();
for (const char of input) {
charCount.set(char, (charCount.get(char) || 0) + 1);
}
for (const char of input) {
if (charCount.get(char) === 1) {
return char;
}
}
return null;
}