1(this["webpackJsonpnlhlong01.github.io"]=this["webpackJsonpnlhlong01.github.io"]||[]).push([[6],{170:function(e,t,n){"use strict";n.r(t);var c=n(0),r=n(1),o=n(7),a=n(19),i=function(e){var t=e.data;return Object(c.jsx)("article",{className:"degree-container",children:Object(c.jsxs)("header",{children:[Object(c.jsx)("h4",{className:"degree",children:t.degree}),Object(c.jsxs)("p",{className:"school",children:[Object(c.jsx)("a",{href:t.link,children:t.school}),", ",t.year]})]})})},s=function(e){var t=e.data;return Object(c.jsxs)("div",{className:"education",children:[Object(c.jsx)("div",{className:"link-to",id:"education"}),Object(c.jsx)("div",{className:"title",children:Object(c.jsx)("h3",{children:"Education"})}),t.map((function(e){return Object(c.jsx)(i,{data:e},e.school)}))]})};s.defaultProps={data:[]};var l=s,u=function(e){var t=e.data;return Object(c.jsxs)("article",{className:"jobs-container",children:[Object(c.jsxs)("header",{children:[Object(c.jsxs)("h4",{children:[Object(c.jsx)("a",{href:t.link,children:t.company})," - ",t.position]}),Object(c.jsxs)("p",{className:"daterange",children:[" ",t.daterange]})]}),Object(c.jsx)("ul",{className:"points",children:t.points.map((function(e){return Object(c.jsx)("li",{children:e},e)}))})]})},p=function(e){var t=e.data;return Object(c.jsxs)("div",{className:"experience",children:[Object(c.jsx)("div",{className:"link-to",id:"experience"}),Object(c.jsx)("div",{className:"title",children:Object(c.jsx)("h3",{children:"Experience"})}),t.map((function(e){return Object(c.jsx)(u,{data:e},e.company)}))]})};p.defaultProps={data:[]};var b=p;function d(e,t){for(var n=0;n<t.length;n++){var c=t[n];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(e,c.key,c)}}function y(e,t){return(y=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){return(m=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function f(e){return(f="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function j(e,t){return!t||"object"!==f(t)&&"function"!==typeof t?function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e):t}function h(e){var t=function(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,c=m(e);if(t){var r=m(this).constructor;n=Reflect.construct(c,arguments,r)}else n=c.apply(this,arguments);return j(this,n)}}var g=n(55),v=n(54),O=function(e){var t=e.handleClick,n=e.active,r=e.label;return Object(c.jsx)("button",{className:"skillbutton ".concat(n[r]?"skillbutton-active":""),type:"button",onClick:function(){return t(r)},children:r})},x=function(e){var t=e.data,n=e.categories,r=t.category,o=t.competency,a=t.title,i={background:n.filter((function(e){return r.includes(e.name)})).map((function(e){return e.color}))[0]},s=Object(v.a)(Object(v.a)({},i),{},{width:"".concat(String(Math.min(100,Math.max(o/5*100,0))),"%")});return Object(c.jsxs)("div",{className:"skillbar clearfix",children:[Object(c.jsx)("div",{className:"skillbar-title",style:i,children:Object(c.jsx)("span",{children:a})}),Object(c.jsx)("div",{className:"skillbar-bar",style:s}),Object(c.jsxs)("div",{className:"skill-bar-percent",children:[o," / 5"]})]})};x.defaultProps={categories:[]};var k=x,S=function(e){!function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&y(e,t)}(a,e);var t,n,r,o=h(a);function a(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,a),(t=o.call(this,e)).handleChildClick=function(e){t.setState((function(t){var n=Object.keys(t.buttons).reduce((function(n,c){return Object(v.a)(Object(v.a)({},n),{},Object(g.a)({},c,e===c&&!t.buttons[c]))}),{});return n.All=!Object.keys(t.buttons).some((function(e){return n[e]})),{buttons:n}}))},t.state=function(e){var t=e.categories,n=e.skills;return{buttons:t.map((function(e){return e.name})).reduce((function(e,t){return Object(v.a)(Object(v.a)({},e),{},Object(g.a)({},t,!1))}),{All:!0}),skills:n}}({categories:e.categories,skills:e.skills}),t}return t=a,(n=[{key:"getRows",value:function(){var e=this,t=Object.keys(this.state.buttons).reduce((function(t,n){return e.state.buttons[n]?n:t}),"All");return this.state.skills.sort((function(e,t){var n=0;return e.competency>t.competency?n=-1:e.competency<t.competency?n=1:e.category[0]>t.category[0]?n=-1:e.category[0]<t.category[0]||e.title>t.title?n=1:e.title<t.title&&(n=-1),n})).filter((function(e){return"All"===t||e.category.includes(t)})).map((function(t){return Object(c.jsx)(k,{categories:e.props.categories,data:t},t.title)}))}},{key:"getButtons",value:function(){var e=this;return Object.keys(this.state.buttons).map((function(t){return Object(c.jsx)(O,{label:t,active:e.state.buttons,handleClick:e.handleChildClick},t)}))}},{key:"render",value:function(){return Object(c.jsxs)("div",{className:"skills",children:[Object(c.jsx)("div",{className:"link-to",id:"skills"}),Object(c.jsxs)("div",{className:"title",children:[Object(c.jsx)("h3",{children:"Skills"}),Object(c.jsx)("p",{children:"Note: I think these sections are silly, but everyone seems to have one. Here is a *mostly* honest overview of my skills."})]}),Object(c.jsx)("div",{className:"skill-button-container",children:this.getButtons()}),Object(c.jsx)("div",{className:"skill-row-container",children:this.getRows()})]})}}])&&d(t.prototype,n),r&&d(t,r),a}(r.Component);S.defaultProps={skills:[],categories:[]};var D=S,w=function(){return Object(c.jsxs)("div",{className:"references",children:[Object(c.jsx)("div",{className:"link-to",id:"references"}
1),Object(c.jsx)("div",{className:"title",children:Object(c.jsx)(o.b,{to:"/contact",children:Object(c.jsx)("h3",{children:"References are available upon request"})})})]})},N=[{school:"Cologne Unversity of Applied Sciences",degree:"\ud83d\udce1 M.Sc. Communication Systems and Networks",link:"https://mcsn.de",year:"2016 - 2021"},{school:"Vietnamese-German Unversity & Frankfurt University of Applied Sciences",degree:"\u26a1 B.Eng. Electrical Engineering and Information Technology",link:"https://vgu.edu.vn/study-programs/bachelor/eeit",year:"2012 - 2016"}],P=[{company:"Autodesk",position:"Software Engineer Intern (Working Student)",link:"https://forge.autodesk.com",daterange:"December 2017 - December 2019",points:["\ud83d\udc4a Participated in a Scrum team of 6 engineers working on the core features of an internal app framework on the Forge Platform. It is adopted by other teams like AutoCAD, Revit and Fusion 360","\ud83d\udcaa Together with another engineer developed and maintained two components of this framework using TypeScript and ReactJS.","\u2757 Supporting others should they have any issues and questions using our components.","\ud83d\udc68\u200d\ud83c\udfeb Examined and presented Feature Flag and its implementation to my cohort (2 dev teams).","\ud83d\udcc8 Developed a Dashboard tracking the daily download count of more than 50 internal packages from Artifactory servers using Grafana and Amazon CloudWatch."]}],W=n(16);var J=n(23);var C,A=[{title:"Javascript",competency:5,category:["Web Development","Languages","Javascript"]},{title:"Node.JS",competency:2,category:["Web Development","Javascript"]},{title:"React",competency:3,category:["Web Development","Javascript"]},{title:"Bash",competency:2,category:["Tools","Languages"]},{title:"Google Cloud Platform",competency:1,category:["Web Development","Tools"]},{title:"Amazon CloudWatch",competency:3,category:["Web Development","Databases"]},{title:"PostgreSQL/SQLite3/SQL",competency:3,category:["Web Development","Databases","Languages"]},{title:"Express.JS",competency:2,category:["Web Development","Javascript"]},{title:"D3",competency:4,category:["Web Development","Javascript"]},{title:"Git/GitHub",competency:4,category:["Tools"]},{title:"Numpy",competency:2,category:["Data Science","Python"]},{title:"Jupyter",competency:2,category:["Data Science","Python"]},{title:"Typescript",competency:4,category:["Web Development","Languages","Javascript"]},{title:"HTML + SASS/SCSS/CSS",competency:3,category:["Web Development","Languages"]},{title:"Python",competency:4,category:["Languages","Python"]},{title:"GraphQL",competency:1,category:["Web Development","Databases"]},{title:"Pandas",competency:2,category:["Data Science","Python"]},{title:"Matplotlib",competency:3,category:["Data Science","Python"]},{title:"Scikit-Learn",competency:4,category:["Data Science","Python"]},{title:"Webpack",competency:4,category:["Tools","Javascript","Web Development"]},{title:"Rest API",competency:3,category:["Web Development","Databases"]},{title:"NPM",competency:4,category:["Web Development","Javascript"]},{title:"Mocha",competency:3,category:["Web Development","Javascript","Testing","Tools"]},{title:"Cypress",competency:4,category:["Web Development","Javascript","Testing"]},{title:"JSDoc",competency:5,category:["Web Development","Documentation"]},{title:"Markdown",competency:3,category:["Documentation"]},{title:"BabelJS",competency:3,category:["Web Development","Javascript","Testing","Tools"]}].map((function(e){return Object(v.a)(Object(v.a)({},e),{},{category:e.category.sort()})})),R=["#6968b3","#37b1f5","#40494e","#515dd4","#e47272","#cc7b94","#3896e2","#c3423f","#d75858","#747fff","#64cb7b"],T=(C=new Set(A.reduce((function(e,t){var n=t.category;return e.concat(n)}),[])),function(e){if(Array.isArray(e))return Object(W.a)(e)}(C)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(C)||Object(J.a)(C)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()).sort().map((function(e,t){return{name:e,color:R[t]}})),E=["Education","Experience","Skills","References"];t.default=function(){return Object(c.jsx)(a.a,{title:"Resume",description:"Long Nguyen's Resume.",children:Object(c.jsxs)("article",{className:"post",id:"resume",children:[Object(c.jsx)("header",{children:Object(c.jsxs)("div",{className:"title",children:[Object(c.jsx)("h2",{"data-testid":"heading",children:Object(c.jsx)(o.b,{to:"resume",children:"Resume"})}),Object(c.jsx)("div",{className:"link-container",children:E.map((function(e){return Object(c.jsx)("h4",{children:Object(c.jsx)("a",{href:"#".concat(e.toLowerCase()),children:e})},e)}))})]})}),Object(c.jsx)(l,{data:N}),Object(c.jsx)(b,{data:P}),Object(c.jsx)(D,{skills:A,categories:T}),Object(c.jsx)(w,{})]})})}},54:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}
1));var c=n(55);function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);t&&(c=c.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,c)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?r(Object(n),!0).forEach((function(t){Object(c.a)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}},55:function(e,t,n){"use strict";function c(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,"a",(function(){return c}))}}]); 2//# sourceMappingURL=6.93d2939f.chunk.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.