-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
17 changed files
with
1,049 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
# 👤 Serhii Melnyk | ||
## 💼 JavaScript Software Developer | ||
|
||
### 📝 Profile | ||
JavaScript developer. Working in web industry as developer since 2011. Highly skilled at solving issues, implementing new technologies, supporting un-supportable code, refactoring huge chunks of code, developing unit and integration tests, deciding project structure and architecture, communicating with people in pleasing manner. More thinking, less writing. Programming is about automatization, not about typing. | ||
|
||
### 🛠 Work Experience | ||
- **Web Team Lead** at *Trinetix* (2023 - now) | ||
- Responsible for team overseeing development of framework and application based on framework that involves geospatial data analysis and visualization using Mapbox and Next.js for farm fields. Writing technical documentation for solution design and project structure. Reviewing and helping out with pull requests. Performing technical interviews, providing feedback for candidates. Ensuring pleasing and fast communication between foreign co-workers and teams. Coaching and mentoring colleagues. Responsible for development of PoC. | ||
- **Sr. JavaScript Developer** at *Trinetix* (2022 - 2023) | ||
- Responsible for developing application that visualizes statistical data for radio stations using React, Mapbox, Chart.js, Ant Design. Performing code reviews. Responsible for development of PoC. | ||
- **Front-End Team Lead** at *Trinetix* (2019 - 2022) | ||
- Responsible for developing and extending functionality of diner applications used by mullions of users. Participated in migration of applications from AngularJS to Angular, to Preact, to React. Ensuring code quality with UT and E2E tests. Overseeing developing of internal administrative services. Writing technical documentation for solution design and project structure. Reviewing and helping out with pull requests. Performing technical interviews, providing feedback for candidates. Management of outstaff team. Onboarding local and foreign newcomers. Ensuring pleasing and fast communication between co-workers and teams. Release managing and shepherding. Coaching and mentoring colleagues. | ||
- **JavaScript Developer** at *Trinetix* (2019 - 2022) | ||
- Responsible for developing various administrative applications based on AngularJS. Ensuring code quality with UT and E2E tests. | ||
- **JavaScript Developer** at *GlobalLogic* (2014 - 2014) | ||
- Supporting existing software based on AngularJS. Implementing new and extending existing functionality. Ensuring code quality with UT and E2E tests. Writing code documentation. | ||
- **СoffeeScript / Ruby Developer** at *R&R Music* (2013 - 2014) | ||
- Developing new services and features for music listening service using CoffeeScript, Ruby on Rails, EmberJS. | ||
- **Junior Full-Stack Developer** at *TAVR Media* (2011 - 2013) | ||
- Responsible for supporting front-end and back-end kissfm.ua, radioroks.ua, hitfm.ua using Zend, JQuery, Smarty. Integrating social sharing systems. Working with MySQL databases. | ||
|
||
### 🌟 Skills | ||
- **Soft Skills**: Communication, Management, Documentation | ||
- **Programming Languages**: TypeScript, JavaScript, PHP, Ruby, CoffeeScript | ||
- **Frameworks & Libraries**: React, Preact, Next.js, EmberJS, Angular, AngularJS | ||
- **CSS Preprocessors & Libraries**: CSS, Sass, Less, Styled Components, ARIA, MUI, Ant Design | ||
- **State Management**: Redux, rxjs, Recoil | ||
- **Testing Tools**: Karma, Mocha, Jest, Jasmine, Enzyme, TestCafe, Protractor, Cypress | ||
- **Bundling Tools**: Webpack, Rollup, Turborepo, Lerna | ||
- **Specialized Libraries and Tools**: Mapbox, Chart.js, turf, codemod, jscodeshift | ||
- **DevOps and Integration Tools**: Github Actions, Slack API, Sentry, Launch Darkly |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,190 @@ | ||
{ | ||
"name": "Serhii Melnyk", | ||
"title": "JavaScript Software Developer", | ||
"profile": "JavaScript developer. Working in web industry as developer since 2011. Highly skilled at solving issues, implementing new technologies, supporting un-supportable code, refactoring huge chunks of code, developing unit and integration tests, deciding project structure and architecture, communicating with people in pleasing manner. More thinking, less writing. Programming is about automatization, not about typing.", | ||
"jobs": [ | ||
{ | ||
"title": "Web Team Lead", | ||
"company": "Trinetix", | ||
"years": "2023 - now", | ||
"description": "Responsible for team overseeing development of framework and application based on framework that involves geospatial data analysis and visualization using Mapbox and Next.js for farm fields. Writing technical documentation for solution design and project structure. Reviewing and helping out with pull requests. Performing technical interviews, providing feedback for candidates. Ensuring pleasing and fast communication between foreign co-workers and teams. Coaching and mentoring colleagues. Responsible for development of PoC." | ||
}, | ||
{ | ||
"title": "Sr. JavaScript Developer", | ||
"company": "Trinetix", | ||
"years": "2022 - 2023", | ||
"description": "Responsible for developing application that visualizes statistical data for radio stations using React, Mapbox, Chart.js, Ant Design. Performing code reviews. Responsible for development of PoC." | ||
}, | ||
{ | ||
"title": "Front-End Team Lead", | ||
"company": "Trinetix", | ||
"years": "2019 - 2022", | ||
"description": "Responsible for developing and extending functionality of diner applications used by mullions of users. Participated in migration of applications from AngularJS to Angular, to Preact, to React. Ensuring code quality with UT and E2E tests. Overseeing developing of internal administrative services. Writing technical documentation for solution design and project structure. Reviewing and helping out with pull requests. Performing technical interviews, providing feedback for candidates. Management of outstaff team. Onboarding local and foreign newcomers. Ensuring pleasing and fast communication between co-workers and teams. Release managing and shepherding. Coaching and mentoring colleagues." | ||
}, | ||
{ | ||
"title": "JavaScript Developer", | ||
"company": "Trinetix", | ||
"years": "2019 - 2022", | ||
"description": "Responsible for developing various administrative applications based on AngularJS. Ensuring code quality with UT and E2E tests." | ||
}, | ||
{ | ||
"title": "JavaScript Developer", | ||
"company": "GlobalLogic", | ||
"years": "2014 - 2014", | ||
"description": "Supporting existing software based on AngularJS. Implementing new and extending existing functionality. Ensuring code quality with UT and E2E tests. Writing code documentation." | ||
}, | ||
{ | ||
"title": "СoffeeScript / Ruby Developer", | ||
"company": "R&R Music", | ||
"years": "2013 - 2014", | ||
"description": "Developing new services and features for music listening service using CoffeeScript, Ruby on Rails, EmberJS." | ||
}, | ||
{ | ||
"title": "Junior Full-Stack Developer", | ||
"company": "TAVR Media", | ||
"years": "2011 - 2013", | ||
"description": "Responsible for supporting front-end and back-end kissfm.ua, radioroks.ua, hitfm.ua using Zend, JQuery, Smarty. Integrating social sharing systems. Working with MySQL databases." | ||
} | ||
], | ||
"skills": [ | ||
{ | ||
"category": "Soft Skills", | ||
"skills": [ | ||
"Communication", | ||
"Management", | ||
"Documentation" | ||
] | ||
}, | ||
{ | ||
"category": "Programming Languages", | ||
"skills": [ | ||
"TypeScript", | ||
"JavaScript", | ||
"PHP", | ||
"Ruby", | ||
"CoffeeScript" | ||
] | ||
}, | ||
{ | ||
"category": "Frameworks & Libraries", | ||
"skills": [ | ||
"React", | ||
"Preact", | ||
"Next.js", | ||
"EmberJS", | ||
"Angular", | ||
"AngularJS" | ||
] | ||
}, | ||
{ | ||
"category": "CSS Preprocessors & Libraries", | ||
"skills": [ | ||
"CSS", | ||
"Sass", | ||
"Less", | ||
"Styled Components", | ||
"ARIA", | ||
"MUI", | ||
"Ant Design" | ||
] | ||
}, | ||
{ | ||
"category": "State Management", | ||
"skills": [ | ||
"Redux", | ||
"rxjs", | ||
"Recoil" | ||
] | ||
}, | ||
{ | ||
"category": "Testing Tools", | ||
"skills": [ | ||
"Karma", | ||
"Mocha", | ||
"Jest", | ||
"Jasmine", | ||
"Enzyme", | ||
"TestCafe", | ||
"Protractor", | ||
"Cypress" | ||
] | ||
}, | ||
{ | ||
"category": "Bundling Tools", | ||
"skills": [ | ||
"Webpack", | ||
"Rollup", | ||
"Turborepo", | ||
"Lerna" | ||
] | ||
}, | ||
{ | ||
"category": "Specialized Libraries and Tools", | ||
"skills": [ | ||
"Mapbox", | ||
"Chart.js", | ||
"turf", | ||
"codemod", | ||
"jscodeshift" | ||
] | ||
}, | ||
{ | ||
"category": "DevOps and Integration Tools", | ||
"skills": [ | ||
"Github Actions", | ||
"Slack API", | ||
"Sentry", | ||
"Launch Darkly" | ||
] | ||
} | ||
], | ||
"details": [ | ||
{ | ||
"label": "Address:", | ||
"value": "Kyiv, Ukraine" | ||
}, | ||
{ | ||
"label": "Phone:", | ||
"value": "(050) 193 89 77", | ||
"link": "tel:380501938977" | ||
}, | ||
{ | ||
"label": "Email:", | ||
"value": "[email protected]", | ||
"link": "mailto:[email protected]" | ||
}, | ||
{ | ||
"label": "Skype:", | ||
"value": "serhi.melnik", | ||
"link": "skype:serhi.melnik?chat" | ||
} | ||
], | ||
"education": [ | ||
{ | ||
"degree": "Bachelor of Science in Metrology, Information Technology", | ||
"school": "Kyiv University of Aviation", | ||
"years": "2008 - 2012" | ||
}, | ||
{ | ||
"degree": "High School Diploma", | ||
"school": "Ivano-Frankivsk Physical-Technical Lyceum", | ||
"years": "2005 - 2008" | ||
}, | ||
{ | ||
"degree": "Secondary School Diploma", | ||
"school": "Ivano-Frankivsk Secondary School #21", | ||
"years": "1997 - 2005" | ||
} | ||
], | ||
"languages": [ | ||
{ | ||
"language": "English", | ||
"level": "C1" | ||
}, | ||
{ | ||
"language": "Ukrainian", | ||
"level": "Native" | ||
} | ||
], | ||
"hoobies": "In free time I like to paint miniatures and play tabletop games. Reading books and watching movies about Warhammer universe. Playing video games, streaming. Also I'm owner and organizer of a local tabletop games club in Kyiv." | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,26 @@ | ||
<!doctype html><html lang="en"><head><meta charset="UTF-8"><title>React Tailwind App</title><script defer="defer" src="bundle.js"></script></head><body><div id="root"></div></body></html> | ||
<!doctype html><html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width,initial-scale=1"/><title>React Tailwind App</title><script>// Single Page Apps for GitHub Pages | ||
// MIT License | ||
// https://github.com/rafgraph/spa-github-pages | ||
// This script checks to see if a redirect is present in the query string, | ||
// converts it back into the correct url and adds it to the | ||
// browser's history using window.history.replaceState(...), | ||
// which won't cause the browser to attempt to load the new url. | ||
// When the single page app is loaded further down in this file, | ||
// the correct url will be waiting in the browser's history for | ||
// the single page app to route accordingly. | ||
(function (l) { | ||
if (l.search[1] === "/") { | ||
var decoded = l.search | ||
.slice(1) | ||
.split("&") | ||
.map(function (s) { | ||
return s.replace(/~and~/g, "&"); | ||
}) | ||
.join("?"); | ||
window.history.replaceState( | ||
null, | ||
null, | ||
l.pathname.slice(0, -1) + decoded + l.hash | ||
); | ||
} | ||
})(window.location);</script><script defer="defer" src="bundle.js"></script></head><body><div id="root"></div></body></html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,3 @@ | ||
module.exports = { | ||
plugins: { | ||
tailwindcss: {}, | ||
autoprefixer: {}, | ||
}, | ||
} | ||
|
||
plugins: [require("tailwindcss"), require("autoprefixer")], | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
const fs = require("fs"); | ||
const path = require("path"); | ||
|
||
// Define the path to the JSON file | ||
const jsonFilePath = path.join(__dirname, "../data", "info.json"); | ||
|
||
// Read the JSON file | ||
fs.readFile(jsonFilePath, "utf8", (err, data) => { | ||
if (err) { | ||
console.error("Error reading the file:", err); | ||
return; | ||
} | ||
|
||
const cvData = JSON.parse(data); | ||
|
||
// Initialize an array to hold the lines of the Markdown file | ||
let mdLines = []; | ||
|
||
// Add name and title with emojis | ||
mdLines.push(`# 👤 ${cvData.name}`); | ||
mdLines.push(`## 💼 ${cvData.title}`); | ||
mdLines.push(""); | ||
|
||
// Add profile | ||
mdLines.push("### 📝 Profile"); | ||
mdLines.push(cvData.profile); | ||
mdLines.push(""); | ||
|
||
// Add jobs | ||
mdLines.push("### 🛠 Work Experience"); | ||
cvData.jobs.forEach((job) => { | ||
mdLines.push(`- **${job.title}** at *${job.company}* (${job.years})`); | ||
mdLines.push(` - ${job.description}`); | ||
}); | ||
mdLines.push(""); | ||
|
||
// Add skills | ||
mdLines.push("### 🌟 Skills"); | ||
cvData.skills.forEach((skill) => { | ||
mdLines.push(`- **${skill.category}**: ${skill.skills.join(", ")}`); | ||
}); | ||
mdLines.push(""); | ||
|
||
// Convert the array of lines into a single Markdown-formatted string | ||
const mdContent = mdLines.join("\n"); | ||
|
||
// Define the path to the output Markdown file | ||
const mdFilePath = path.join(__dirname, "../", "README.md"); | ||
|
||
// Write to the Markdown file | ||
fs.writeFile(mdFilePath, mdContent, (err) => { | ||
if (err) { | ||
console.error("Error writing the file:", err); | ||
} else { | ||
console.log("README.md file has been generated with emojis 😄"); | ||
} | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.