it's me!

Denis Svetleishii

Front-end developer

Education and courses

About me

Creative and ambitious front-end developer with 2 years of experience working on interactive and responsive websites and applications. Proficient in HTML, CSS, JavaScript, SASS, and other modern front-end development tools. Participated in the development of several websites and applications for various industries and clients. I strive to constantly learn and improve my skills.

Experience

Freelance front-end developer
2021 — p.t
  • Developed websites and applications using HTML, CSS, JavaScript, SASS, NodeJS
  • Collaborated with designers, back-end developers and project managers to ensure the quality and timing of work
  • Tested and debugged code using browser developer tools and console
  • Used Git for code versioning and team collaboration
  • Created responsive design for different types of devices and screen resolutions
  • Implemented interactive elements such as animations, transitions, forms, and sliders
  • Used Figma to edit interface elements

Key strengths

  • Hardworking
  • Responsible
  • Sociable
  • Quick learner
  • Goal-oriented
  • Conscientious

Skills

  • JavaScript
  • HTML5
  • CSS3
  • SASS
  • GIT
  • GitHub
  • Figma
  • NodeJS (basic)
  • BEM

Language

  • Russian (native)
  • English (B1)

Code examples

Morse decoder

              
                const MORSE_TABLE = {
                  '.-':     'a',
                  '-...':   'b',
                  '-.-.':   'c',
                  '-..':    'd',
                  '.':      'e',
                  '..-.':   'f',
                  '--.':    'g',
                  '....':   'h',
                  '..':     'i',
                  '.---':   'j',
                  '-.-':    'k',
                  '.-..':   'l',
                  '--':     'm',
                  '-.':     'n',
                  '---':    'o',
                  '.--.':   'p',
                  '--.-':   'q',
                  '.-.':    'r',
                  '...':    's',
                  '-':      't',
                  '..-':    'u',
                  '...-':   'v',
                  '.--':    'w',
                  '-..-':   'x',
                  '-.--':   'y',
                  '--..':   'z',
                  '.----':  '1',
                  '..---':  '2',
                  '...--':  '3',
                  '....-':  '4',
                  '.....':  '5',
                  '-....':  '6',
                  '--...':  '7',
                  '---..':  '8',
                  '----.':  '9',
                  '-----':  '0',
              };
              
              function decode(expr) {
                  let result = '';
                  
                  const arrExpr = [];
                  for (let i = 0; i < expr.length; i+=10){
                      arrExpr.push(expr.slice(i, i + 10));
                  }
                  
                  const arrEachElement = [];
                  for (let element of arrExpr){
                      if (element == '**********'){
                          arrEachElement.push(' ');
                      }
                      else{
                          arrEachElement.push(element);
                      }
                  }
              
                  const arrEachElementMorse = [];
                  for (let element of arrEachElement){
                      if (element == ' '){
                          arrEachElementMorse.push(' ');
                      }
                      else{
                          element = element.replace(/10/gi, '.');
                          element = element.replace(/11/gi, '-');
                          element = element.replace(/00/gi, '')
                          arrEachElementMorse.push(element);
                      }
                  }
              
                  const finalStringResult = [];
                  for(let element of arrEachElementMorse){
                      for (key in MORSE_TABLE){
                          if (element == key){
                              finalStringResult.push(MORSE_TABLE[key]);
                          }
                          else if (element == ' '){
                              finalStringResult.push(' ');
                              break;
                          }
                      }
                  }
                  result = finalStringResult.join('');
                  return result;
              }
              
            

Towel sort

              
                function towelSort (matrix) {
                  let result = '';
                  if(matrix === undefined || matrix.length === 0){
                    return result = [];
                  }
                  else{
                    const reverseMatrix = [];
                    matrix.forEach(function(item, index, array) {
                        if (index === 0){
                          reverseMatrix.push(item)
                        }
                        else if (index !== 2){
                          reverseMatrix.push(item.reverse())
                        }
                        else{
                          reverseMatrix.push(item)
                        }
                    })
                    const reverseMatrixString = reverseMatrix.join();
                    const arrReverseMatrixString = reverseMatrixString.split(',')
                    const arrFinal = [];
                      for(let element of arrReverseMatrixString){
                        if (element !== ','){
                          arrFinal.push(Number(element))
                        }
                      }
                    result = arrFinal;
                    return result;
                  }
                }
              
            

Human readable number

              
                function toReadable (number) {
                  let result = '';
                  let stringNumber = number.toString();
                  let ones = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty'];
              
                  let tens = ['', '', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety'];
              
                  if (number <= 20){
                      result = ones[number];
                  }
                  else if (number > 20 && number < 100 && stringNumber[1] != 0){
                      result = `${tens[stringNumber[0]]} ${ones[stringNumber[1]]}`;
                  }
                  else if (number > 20 && number < 100 && stringNumber[1] == 0){
                      result = `${tens[stringNumber[0]]}`;
                  }
                  else if (number >= 100){
                      if(stringNumber[1] == 0 && stringNumber[2] != 0){
                          result = `${ones[stringNumber[0]]} hundred ${ones[stringNumber[2]]}`;
                      }
                      else if(stringNumber[1] >= 1 && stringNumber[1] < 2){
                          result = `${ones[stringNumber[0]]} hundred ${ones[stringNumber.slice(1)]}`;
                      }
                      else if(stringNumber[1] >= 2 && stringNumber[2] != 0){
                          result = `${ones[stringNumber[0]]} hundred ${tens[stringNumber[1]]} ${ones[stringNumber[2]]}`
                      }
                      else if (stringNumber[0] >= 1 && stringNumber[1] == 0 && stringNumber[2] == 0){
                          result = `${ones[stringNumber[0]]} hundred`;
                      }
                      else if(stringNumber[1] > 0 && stringNumber[2] == 0){
                          result = `${ones[stringNumber[0]]} hundred ${tens[stringNumber[1]]}`;
                      }
                  }
                  return result;
              }
              
            

If you want to see more examples of my code, check up my CodeWars github repository

My Projects

RSSchool Stage0 Summer 2022

elder

Eldritch-codejam

travel

Travel

momentum

Momentum

RSSchool Stage1 Spring 2023

Shelter

Shelter

keyboard

Virtual keyboard

minesweeper

Minesweeper

Self Projects

In developing