mirror of
https://github.com/kemko/resume.git
synced 2026-01-01 15:55:47 +03:00
chore: refactor & improve (#2)
* chore: update resume PDF * feat: baseline resume
This commit is contained in:
6
.github/workflows/generate-pdf.yml
vendored
6
.github/workflows/generate-pdf.yml
vendored
@@ -28,15 +28,15 @@ jobs:
|
||||
node-version: "20.5.0"
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm install -g pnpm && pnpm install # Install dependencies
|
||||
run: npm install -g pnpm && pnpm install
|
||||
|
||||
- name: Generate PDF
|
||||
run: pnpm build # Ensure this script generates the PDF from resume.md
|
||||
run: pnpm build
|
||||
|
||||
- name: Commit PDF
|
||||
run: |
|
||||
git config --global user.name "${{ github.actor }}"
|
||||
git config --global user.email "${{ github.actor}}@users.noreply.github.com"
|
||||
git add output/art_rosnovsky_software_engineer.pdf
|
||||
git commit -am "update resume PDF"
|
||||
git commit -am "feat: update resume PDF"
|
||||
git push
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1 +1,2 @@
|
||||
node_modules
|
||||
output/*.pdf
|
||||
|
||||
19
index.test.ts
Normal file
19
index.test.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import assert from 'node:assert';
|
||||
import { describe, it } from "node:test";
|
||||
|
||||
export const markdownFilePath = "./resume.md";
|
||||
export const outputFilePath = "output/art_rosnovsky_software_engineer.pdf";
|
||||
|
||||
describe("generatePdf", () => {
|
||||
it("should throw an error if the markdown file does not exist", async () => {
|
||||
assert(true)
|
||||
});
|
||||
|
||||
it("should throw an error if the mdToPdf function fails", async () => {
|
||||
assert(true)
|
||||
});
|
||||
|
||||
it("should successfully convert the markdown to a pdf and write it to the output file", async () => {
|
||||
assert(true)
|
||||
});
|
||||
});
|
||||
27
index.ts
27
index.ts
@@ -1,10 +1,27 @@
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { mdToPdf } from "md-to-pdf";
|
||||
|
||||
(async () => {
|
||||
const pdf = await mdToPdf({ path: "./resume.md" }).catch(console.error);
|
||||
export const markdownFilePath = "./resume.md";
|
||||
export const outputFilePath = "output/art_rosnovsky_software_engineer.pdf";
|
||||
|
||||
if (pdf) {
|
||||
fs.writeFileSync("output/art_rosnovsky_software_engineer.pdf", pdf.content);
|
||||
export async function generatePdf() {
|
||||
if (!fs.existsSync(markdownFilePath)) {
|
||||
console.error(`File ${markdownFilePath} does not exist.`);
|
||||
throw new Error(`File ${markdownFilePath} does not exist.`);
|
||||
}
|
||||
})();
|
||||
|
||||
try {
|
||||
const pdf = await mdToPdf({ path: markdownFilePath });
|
||||
|
||||
if (pdf) {
|
||||
fs.writeFileSync(path.resolve(__dirname, outputFilePath), pdf.content);
|
||||
console.log(`PDF has been written to ${outputFilePath}`);
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.error(`Error occurred: ${error.message}`);
|
||||
throw new Error(error.message);
|
||||
}
|
||||
}
|
||||
|
||||
generatePdf();
|
||||
|
||||
0
output/.keep
Normal file
0
output/.keep
Normal file
Binary file not shown.
@@ -1,10 +1,11 @@
|
||||
{
|
||||
"name": "resume-manager",
|
||||
"version": "1.0.0",
|
||||
"description": "Converts Markdown resume to PDF and DOCX formats",
|
||||
"version": "1.0.1",
|
||||
"description": "Converts Markdown resume to PDF format.",
|
||||
"main": "dist/index.js",
|
||||
"scripts": {
|
||||
"build": "ts-node index.ts"
|
||||
"build": "ts-node index.ts",
|
||||
"test": "NODE_ENV=\"test\" node --no-warnings --require \"ts-node/register\" --test **/**/*.test.ts"
|
||||
},
|
||||
"keywords": [
|
||||
"resume",
|
||||
@@ -21,8 +22,8 @@
|
||||
"typescript": "^5.2.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "latest",
|
||||
"@types/markdown-pdf": "^9.0.5",
|
||||
"@types/node": "latest",
|
||||
"ts-node": "latest",
|
||||
"typescript": "latest"
|
||||
},
|
||||
|
||||
42
resume.md
42
resume.md
@@ -14,53 +14,59 @@ pdf_options:
|
||||
|
||||
> job@rosnovsky.us | [github.com/rosnovsky](https://github.com/rosnovsky) | Washington state | **Remote Only** |
|
||||
|
||||
Dedicated `JavaScript`/`TypeScript` Engineer with a knack for ` React`, `Kubernetes`, and CI/CD. I champion sustainable, ethical tech that makes a positive impact, and thrive in diverse, remote work environments.
|
||||
Dedicated `JavaScript`/`TypeScript` Engineer with a knack for ` React`, `Kubernetes`, and CI/CD. I champion sustainable, ethical tech that makes a positive impact, by building stable, scalable, efficient, and maintainable software.
|
||||
|
||||
## Technical Skills
|
||||
|
||||
- **Front End**: `JavaScript`, `TypeScript`, `React`, `Tailwind CSS`, UX/UI Design
|
||||
- **Back End**: `Node.js`, `Express`, `Next.js`, `MongoDB`, `PostgreSQL`, `gRPC`, RESTful APIs
|
||||
- **Dev Tools/DevOps**: Git, `Kubernetes`, `Jira`, `AWS`, `Azure`, CI/CD (`GitHub Actions`, `Gitlab Pipelines`)
|
||||
- **Front End**: `JavaScript`, `TypeScript`, `React`, `Svelte`, `Tailwind`, `CSS`, `HTML`
|
||||
- **Back End**: `Node.js`, `Express`, `Next.js`, `MongoDB`, `PostgreSQL`, `tRPC`, RESTful APIs
|
||||
- **Dev Tools/DevOps**: Git, `Docker`, `Kubernetes`, `Jira`, `AWS`, `Azure`, CI/CD (`GitHub Actions`, `Gitlab Pipelines`)
|
||||
- **Other**: former frontline reporter, can fly single-engine aircraft
|
||||
|
||||
## Work Experience
|
||||
|
||||
### Software Engineer
|
||||
|
||||
> **[Okta](https://okta.com)**, Remote • Mar 2021 - Present
|
||||
> **[Okta](https://okta.com)**, Remote • Mar 2021 - April 2024
|
||||
|
||||
- Delivered the [Quarterly Snapshot](https://auth0.com/docs/get-started/tenant-settings/auth0-teams/quarterly-snapshot) feature on schedule.
|
||||
- Enhanced Technical Account Managers' workflow with internal tools for Quarterly Snapshots.
|
||||
- Developed a data reconciliation subsystem for an internal ML tool, enhancing knowledge delivery within the Customer First team.
|
||||
- Improved and delivered a multitude of internal tools
|
||||
- Enhanced Technical Account Managers' workflow by building internal tools for Quarterly Snapshots covering **$20M** worth of ARR.
|
||||
- Developed, deployed, and stabilized an internal AI/ML tool, enhancing knowledge sharing and delivery within the Customer First teams **saving over $10K** of SME productive time every year
|
||||
- Saved **$20K** annually on AWS bills by strategically decommissioning idle resources
|
||||
- Improved and delivered a multitude of high-profile company-wide internal tools
|
||||
- Implemented critical security improvements to key in-house Customer Success tools
|
||||
|
||||
### Developer Support Engineer
|
||||
|
||||
> **[Auth0](https://auth0.com)**, Remote • Dec 2019 - Mar 2021
|
||||
|
||||
- Assisted hundreds of clients with various levels of Identity Management integrations, from simple setups to complex configurations.
|
||||
- Successfully resolved over 2,000 support cases of various complexity with an average **cSAT of 99%** and **on-time SLA of 97%**.
|
||||
- Assisted hundreds of major enterprise customers with complex CIAM integration use cases.
|
||||
- Guided hundreds of developers through Identity Management implementations in every environment imaginable.
|
||||
|
||||
### Software Engineer
|
||||
|
||||
> **[Microsoft](https://microsoft.com)**, Redmond, WA • Apr 2019 - Oct 2019
|
||||
|
||||
- Crafted both the UI and server for an internal search application using `C#`, `.NET Core`, `MSSQL`, and `React`, scaling it from a prototype to a full-scale production app.
|
||||
- Saved hundreds of hours of account managers' time by implementing a slick search UI and functionality
|
||||
- Crafted both the UI and backend for an internal search application using `C#`, `.NET Core`, `MSSQL`, and `React`, scaling it from a prototype to a full-scale production app.
|
||||
- Saved hundreds of hours of account managers' productive time by implementing a slick search UI and functionality
|
||||
|
||||
### Web Developer
|
||||
<div class="page-break"></div>
|
||||
|
||||
### Software Engineer
|
||||
|
||||
> **Transmark Logistics**, Kent, WA • Oct 2018 — Mar 2019
|
||||
|
||||
- Pioneered an internal shipment and task management system, saving users an average of 40 minutes per day through UI enhancements.
|
||||
- Lead a small team from inception of the project to its MVP
|
||||
- Pioneered an internal shipment and task management system, saving users an average of 40 minutes of productive time per day through UI enhancements.
|
||||
|
||||
<div class="page-break"></div>
|
||||
|
||||
### Web Developer
|
||||
|
||||
> **[AT&T](https://att.com)**, Bothell, WA • Apr 2017 - Sep 2018
|
||||
|
||||
- Executed over 100 updates and rectified 100+ defects in the AT&T MyServices client portal.
|
||||
- With primary focus on defect resolution, proactively researched and fixed issues
|
||||
- Executed over 100 updates and rectified hundreds of defects in the AT&T MyServices client portal.
|
||||
- With primary focus on defect resolution, proactively researched and fixed issues outside of the scope of daily responsibilities
|
||||
|
||||
|
||||
### Web Producer
|
||||
@@ -76,11 +82,13 @@ Dedicated `JavaScript`/`TypeScript` Engineer with a knack for ` React`, `Kuberne
|
||||
> London, Canada • AA, Multimedia Design
|
||||
|
||||
- Developed 'Hourglass', a student assignment management system.
|
||||
- Produced a PSA for the local branch of Big Brothers Big Sisters
|
||||
|
||||
### RUDN University
|
||||
|
||||
> Moscow, Russia • BA, Journalism
|
||||
|
||||
- Frontline reporter for country's largest news outlets
|
||||
- Reported live from significant events, including terrorist incidents.
|
||||
|
||||
### Udacity Nanodegree
|
||||
@@ -89,7 +97,7 @@ Dedicated `JavaScript`/`TypeScript` Engineer with a knack for ` React`, `Kuberne
|
||||
|
||||
## Languages
|
||||
|
||||
- Russian — Native (comprehends Belarusian, Ukrainian)
|
||||
- Russian — Bilingual (comprehend Belarusian, Ukrainian)
|
||||
- Arabic — Basic
|
||||
|
||||
## Publications
|
||||
|
||||
Reference in New Issue
Block a user