Skip to content

Commit

Permalink
chore: refactor & improve (#2)
Browse files Browse the repository at this point in the history
* chore: update resume PDF
* feat: baseline resume
  • Loading branch information
rosnovsky authored Feb 5, 2024
1 parent b8eeeba commit 61ac46d
Show file tree
Hide file tree
Showing 8 changed files with 75 additions and 29 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/generate-pdf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
node_modules
output/*.pdf
19 changes: 19 additions & 0 deletions index.test.ts
Original file line number Diff line number Diff line change
@@ -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 changes: 22 additions & 5 deletions index.ts
Original file line number Diff line number Diff line change
@@ -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();
Empty file added output/.keep
Empty file.
Binary file modified output/art_rosnovsky_software_engineer.pdf
Binary file not shown.
9 changes: 5 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -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",
Expand All @@ -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"
},
Expand Down
42 changes: 25 additions & 17 deletions resume.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,53 +14,59 @@ pdf_options:

> [email protected] | [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
Expand All @@ -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
Expand All @@ -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
Expand Down

0 comments on commit 61ac46d

Please sign in to comment.