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
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
Self Projects
In developing