From 74e3c0442c196b9cb7fadf7ddc4d49944f1270af Mon Sep 17 00:00:00 2001 From: mattkae Date: Sun, 13 Feb 2022 10:37:46 -0500 Subject: Adding some new content and fixing spacing issues --- download/build.sh | 1 + download/cv.pdf | Bin 34277 -> 39633 bytes download/resume_dl.html | 104 +++++++++++++++++++++++++++++++----------------- resume.css | 29 +++++++++----- resume.html | 44 ++++++++++---------- themes/Snowflake.cpp | 49 ++++++++++++++++++----- themes/Snowflake.h | 1 + themes/dist/output.wasm | Bin 82965 -> 83691 bytes 8 files changed, 151 insertions(+), 77 deletions(-) create mode 100755 download/build.sh diff --git a/download/build.sh b/download/build.sh new file mode 100755 index 0000000..b3c88af --- /dev/null +++ b/download/build.sh @@ -0,0 +1 @@ +wkhtmltopdf resume_dl.html cv.pdf \ No newline at end of file diff --git a/download/cv.pdf b/download/cv.pdf index 0d05620..bb0dc1d 100644 Binary files a/download/cv.pdf and b/download/cv.pdf differ diff --git a/download/resume_dl.html b/download/resume_dl.html index 3ff59d4..bd4ea57 100644 --- a/download/resume_dl.html +++ b/download/resume_dl.html @@ -1,10 +1,12 @@ - + +

Matthew Kosarek

- -

Software Engineer

-
- TEL: +1-201-400-2699 - EMAIL: mkosare1@gmail.com + 🖦Computer Programmer + 📞 +1-201-400-2699 + 📧 mkosare1@gmail.com
-
+

Skills

-

+

- Languages & Tech
C/C++, OpenGL, C#, ASP.NET, TypeScript/JavaScript, ReactJS, ThreeJS, HTML/CSS, SQL, Java
+ Languages & Tech
C/C++, C#, TypeScript/JavaScript, HTML & CSS, Java, OpenGL, ASP.NET, ReactJS, WebGL, SQL
- Tools
Git, Visual Studio Professional, Unity, Sourcetree, npm, Webpack, TeamCity, NuGet, AWS
+ Tools
Git, Visual Studio Professional, Unity, npm, Webpack, TeamCity, NuGet, AWS
-

-
-
+
+
+ +

Experience

-

+

@@ -161,10 +179,19 @@
  • - Implemented new features and fixed bugs as a member of the MachineLogic Team, which is tasked with creating a visual programming language for our hardware stack. + Led the MachineApps team in the development of a robust infrastructure for industrial software applications +
  • +
  • + Developed and shipped a number of time-sensitive client projects +
  • +
  • + Interacted extensively with other teams to align on specific business goals and meet client deadlines
  • - Designed and developed a CNC application for our hardware that accepts G-Code files as input and provides a realtime rendering of the path as the machine follows it. + Implemented new features and fixed bugs in both the engine and frontend of a code-free programming language +
  • +
  • + Developed a CNC application that accepts G-Code files as input and provides a realtime rendering of the path during execution
@@ -181,11 +208,14 @@
  • - Developed and maintained the data pipeline - from data entry, to data validation, to data publishing - for Arcane Shodown. + Developed and maintained the data pipeline - from data entry, to data validation, to data publishing - for Arcane Showdown
  • Designed, built, and maintained a live operations scheduling and publishing web application for DomiNations
  • +
  • + Implemented a localization system for Arcane Showdown which allowed the game to be released in different languages +
  • Implemented game features on all parts of the stack, including tools, Unity client, and game servers
  • @@ -254,11 +284,12 @@
-

-
-
+
+
+ +

Education

-

+

@@ -274,14 +305,15 @@ B.S. in Computer Engineering (Magna Cum Laude)
  • - 3.53 GPA + 3.53 GPA (Cumulative)
  • Relevant Coursework: Computer Graphics, Object Oriented Software Engineering, Linear Algebra, Video Game Engines and Design, Operating Systems, Data Structures, Introduction to Renewable Energy Engineering
  • -

    -
    +
    +
    + diff --git a/resume.css b/resume.css index 914e296..e5b983f 100755 --- a/resume.css +++ b/resume.css @@ -1,3 +1,7 @@ +html { + overflow-y: overlay; +} + body { font-size: 14px !important; } @@ -18,7 +22,6 @@ header { position: relative; text-align: left; background-color: white; - border-radius: 2px; color: black; font-family: Arial,Helvetica Neue,Helvetica,sans-serif !important; line-height: 1.2rem; @@ -70,18 +73,21 @@ header { font-weight: 500; } -#resume > header > h3 { +#resume > header > div { padding-top: 0.8rem; - padding-bottom: 0.8rem; - margin: 0; - color: #396EB01; - font-weight: 400; - font-variant: small-caps; - font-size: 1.25rem; } #resume > header > div > span { - padding-right: 1rem; + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +#resume > header > div > span > i { + padding-right: 0.25rem; +} + +.resume_section { + width: 100%; } .resume_section > h2 { @@ -93,7 +99,6 @@ header { padding: 0.5rem; background-color: #2E4C6D; color: white; - border-radius: 2px; } .resume_section > div { @@ -125,3 +130,7 @@ header { flex-direction: row; justify-content: space-between; } + +.experience-item li { + width: 100%; +} \ No newline at end of file diff --git a/resume.html b/resume.html index b075a6e..0abcaa9 100755 --- a/resume.html +++ b/resume.html @@ -17,7 +17,7 @@
  • 📝 Posts
  • - +
    +

    Experience

    @@ -66,15 +66,15 @@ -

    - + +
    +

    Education

    @@ -189,7 +193,7 @@ B.S. in Computer Engineering (Magna Cum Laude)
  • - 3.53 GPA + 3.53 GPA (Cumulative)
  • Relevant Coursework: Computer Graphics, Object Oriented Software Engineering, Linear Algebra, Video Game Engines and Design, Operating Systems, Data Structures, Introduction to Renewable Energy Engineering @@ -198,7 +202,7 @@
  • + - diff --git a/themes/Snowflake.cpp b/themes/Snowflake.cpp index da42515..5890b57 100644 --- a/themes/Snowflake.cpp +++ b/themes/Snowflake.cpp @@ -41,6 +41,7 @@ inline void initFlake(SnowflakeParticleRenderer* renderer, SnowflakeUpdateData* inline void spawnFlake(SnowflakeParticleRenderer* renderer, SnowflakeUpdateData* ud) { ud->velocity = Vector2(randomFloatBetween(-10, 10), randomFloatBetween(-100, -85)); ud->position = Vector2(randomFloatBetween(0, renderer->xMax), randomFloatBetween(renderer->yMax, renderer->yMax + 256)); + ud->isAlive = true; } inline void findAndSpawnNextFlake(SnowflakeParticleRenderer* renderer) { @@ -49,7 +50,7 @@ inline void findAndSpawnNextFlake(SnowflakeParticleRenderer* renderer) { if (renderer->endIndex >= renderer->numSnowflakes) renderer->endIndex = 0; - } while (renderer->updateData[renderer->endIndex].onGround); + } while (renderer->updateData[renderer->endIndex].isAlive); spawnFlake(renderer, &renderer->updateData[renderer->endIndex]); } @@ -106,6 +107,26 @@ void SnowflakeParticleRenderer::load(SnowflakeLoadParameters params, Renderer2d* glBindVertexArray(0); } +inline void updateFlake(SnowflakeParticleRenderer* renderer, SnowflakeUpdateData* ud, int32 s, float32 dtSeconds, bool addWind) { + // Once the snowflake has been set to die in this interval, we try and increment the + // startIndex + if (!ud->isAlive && renderer->startIndex == s) { + renderer->startIndex = (renderer->startIndex + 1) % renderer->numSnowflakes; + return; + } + + if (addWind) ud->velocity += renderer->windSpeed; + ud->position += ud->velocity * dtSeconds; + + if (ud->position.y < 0) + ud->isAlive = false; + + Mat4x4 m = Mat4x4().translateByVec2(ud->position); + for (int32 v = ud->vtxIdx; v < (ud->vtxIdx + ud->numVertices); v++) { + renderer->vertices.data[v].vMatrix = m; + } +} + void SnowflakeParticleRenderer::update(float32 dtSeconds) { timeUntilNextSpawnSeconds -= dtSeconds; if (timeUntilNextSpawnSeconds < 0) { @@ -121,16 +142,22 @@ void SnowflakeParticleRenderer::update(float32 dtSeconds) { addWind = true; } - for (int32 s = startIndex; s < endIndex; s++) { - SnowflakeUpdateData* ud = &updateData[s]; - - if (addWind) ud->velocity += windSpeed; - - ud->position += ud->velocity * dtSeconds; - - Mat4x4 m = Mat4x4().translateByVec2(ud->position); - for (int32 v = ud->vtxIdx; v < (ud->vtxIdx + ud->numVertices); v++) { - vertices.data[v].vMatrix = m; + if (startIndex < endIndex) { + for (int32 s = startIndex; s < endIndex; s++) { + SnowflakeUpdateData* ud = &updateData[s]; + updateFlake(this, ud, s, dtSeconds, addWind); + } + } + else { + int32 endRange = startIndex - numSnowflakes; + for (int32 s = endIndex - 1; s >= endRange; s--) { + SnowflakeUpdateData* ud; + if (s < 0) + ud = &updateData[numSnowflakes + s]; + else + ud = &updateData[s]; + + updateFlake(this, ud, s, dtSeconds, addWind); } } } diff --git a/themes/Snowflake.h b/themes/Snowflake.h index d44851b..f67c214 100644 --- a/themes/Snowflake.h +++ b/themes/Snowflake.h @@ -22,6 +22,7 @@ struct SnowflakeUpdateData { Vector2 velocity; Vector2 position; float32 rotation; + bool isAlive = false; bool onGround = false; int32 vtxIdx = 0; diff --git a/themes/dist/output.wasm b/themes/dist/output.wasm index 776adba..d78d57a 100755 Binary files a/themes/dist/output.wasm and b/themes/dist/output.wasm differ -- cgit v1.2.1