Asieiev Kostiantyn

Front-end developer

Education

[Sep 2023 - Present] Bachelor's Degree

Rivne State University of the Humanities

Major: Physical Education and Sports

[Sep 2023 - Feb 2025] Bachelor's Degree

The National University of Water and Environmental Engineering

Major: Computer Science (withdrew from the program by personal decision)

Experience

[Jun 2025 - Present]

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

Code 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;
  }