diff --git a/build/assets/hackerhgl-cv.jpg b/build/assets/hackerhgl-cv.jpg index 564b0c1..b8dbe4c 100644 Binary files a/build/assets/hackerhgl-cv.jpg and b/build/assets/hackerhgl-cv.jpg differ diff --git a/build/assets/hackerhgl-cv.pdf b/build/assets/hackerhgl-cv.pdf index c0e2af3..a8af3e5 100644 Binary files a/build/assets/hackerhgl-cv.pdf and b/build/assets/hackerhgl-cv.pdf differ diff --git a/build/index.html b/build/index.html index cc9fe56..4585ef5 100644 --- a/build/index.html +++ b/build/index.html @@ -284,7 +284,7 @@

Experience

-
Leading flutter mobile (iOS, Android) development project of sastaticket.pk. +
I am leading Flutter mobile app development project at sastaticket.pk. I structured the codebase with flexible architecture with the bloc pattern. I am Responsible for maintaining high quality and stable codebase. I wrote a custom Github action script that creates flavored APK builds, Then the builds are uploaded to google drive and The google drive link is sent by email. I also published the new sastaticket flutter mobile App to App Store.
@@ -303,7 +303,7 @@

Experience

-
I mostly took small gigs like build MVPs mobile apps using React Native & Flutter for different clients.I also made small scale custom CMS to manage data with nodeJS & React JSAlso did Fixed bugs, Tunned performance, Updated apps to new flutter version by solving native dependency conflicts & Made very unstable apps to stable stage. +
I mostly took small gigs like build MVP mobile apps using React Native & Flutter for different clients. I built a small-scale custom CMS for managing data with MYSQL, Node JS, and React JS. Also did Fixed bugs, tunned performance, Updated apps to new flutter version by solving native dependency conflicts, Made unstable apps to stable stage.
@@ -322,7 +322,7 @@

Experience

-
In Upwork, I primarily worked on worked on React JS & React Native small projects with long term clients. +
During my Upwork journey, I worked two short term jobs where I fixed bugs and improved user experience, and worked with a long term client where I built small scale MVP apps with React Native and React JS, Also built `Grow youth app` with React Native and published it on App Store and Play Store
@@ -346,10 +346,10 @@

Experience

-
Peekaboo Guru is the product of Fetch Sky which is a location based platform.that acts as your complete lifestyle guide and shows all the deals and discounts offered in the market.I contributed technically on consumer mobile app and website, enterprise mobile sdk, internal admin panel and backend server. -
In consumer web and mobile app development I got to work with React Native, React JS, styled-components, Redux, Webpack and Redux Saga.I built reusable components while making sure it scale well on multiple screen sizes.I also learned a great deal of react eco system like best practices, proper use of lints, configuring webpack and firebase. -
In admin panel I got to work on AngularJS(1.5).I built complex data tables to show, create, update and delete data.Also integrated a custom built light weight image cropping and resizing module. -
In backend I got to work on AWS (S3, SES), puppeteer, NodeJS and MariaDB.I wrote CRUD API calls for modules and & built a light weight image cropping module via "node-canvas". +
Peekaboo Guru is the product of Fetch Sky which is a location-based platform. that acts as your complete lifestyle guide and shows all the deals and discounts offered in the market. I contributed technically to the consumer mobile app and website, enterprise mobile SDK, internal admin panel, and backend server. I had great a experience working with technically advanced seniors which helped me a lot in my career growth. +
In consumer web and mobile app development, I got to work on React Native, React JS, styled-components, Redux, Webpack, and Redux-Saga. I built reusable components while making sure they scale well on multiple screen sizes. I also learned a great deal about react ecosystem like best practices, proper use of lint, configuring webpack, and firebase. +
In the admin panel, I got to work on AngularJS(1.5). I built complex data tables to show, create, update and delete data. Also integrated a custom-built lightweight image cropping and resizing module. +
In the backend, I got to work on AWS (S3, SES), puppeteer, NodeJS, and MariaDB. I wrote CRUD API calls for modules and & built a lightweight image cropping module via "node-canvas".
diff --git a/build/script.js b/build/script.js index 36a33bd..a278f71 100644 --- a/build/script.js +++ b/build/script.js @@ -1 +1 @@ -!function(){var t=[,function(t,e,n){"use strict";function o(t,e,n){t===document&&(t=document.scrollingElement||document.documentElement||document.body.parentNode||document.body);var o=!1,i=t.scrollTop,r=t===document.body&&document.documentElement?document.documentElement:t;function d(n){n.preventDefault();var d=function(t){return t.detail?t.wheelDelta?t.wheelDelta/t.detail/40*(t.detail>0?1:-1):-t.detail/3:t.wheelDelta/120}(n);i+=-d*e,i=Math.max(0,Math.min(i,t.scrollHeight-r.clientHeight)),o||c()}function c(){o=!0;var e=(i-t.scrollTop)/n;t.scrollTop+=e,Math.abs(e)>.5?a(c):o=!1}t.addEventListener("mousewheel",d,{passive:!1}),t.addEventListener("DOMMouseScroll",d,{passive:!1});var a=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,20)}}n.r(e),n.d(e,{default:function(){return o}})},function(t,e,n){"use strict";n.r(e);var o=n(3);let i;const r=document.getElementById("header");let d;function c(t,e){t.clearRect(.5*-e.width,.5*-e.height,2*e.width,2*e.height),d.forEach((n=>{n.update(e,t)})),i=requestAnimationFrame((()=>c(t,e)))}!function(){const t=o.canvas();function e(){t.width=window.innerWidth-function(){const t=document.createElement("div");t.style.visibility="hidden",t.style.overflow="scroll",t.style.msOverflowStyle="scrollbar",document.body.appendChild(t);const e=document.createElement("div");t.appendChild(e);const n=t.offsetWidth-e.offsetWidth;return t.parentNode.removeChild(t),n}()-1,t.height=document.getElementById("header").offsetHeight,function(){null!=i&&(o.setVelocity(o.BASE_VELOCITY),cancelAnimationFrame(i));const t=o.canvas(),e=canvas.getContext("2d");e.translate(t.width/2,t.height/2),d=o.grid3d(t),c(e,t),window.addEventListener("mousemove",(function(t){const e=o.canvas(),n=canvas.getContext("2d"),i=e.width/2-.045*t.clientX,r=e.height/2-.045*t.clientY;n.setTransform(1,0,0,1,i,r)}))}()}window.addEventListener("resize",e,!1),e()}();var a=function(t){var e,n,o,i,r=(t=t||{}).delay||50;function d(){e=null,i=0}return d(),function(){return n=window.scrollY,null!=e&&(i=n-e),e=n,clearTimeout(o),o=setTimeout(d,r),i}}();const l=3*o.BASE_VELOCITY;window.onscroll=function(){const t=.22*window.scrollY;r.style.transform=`translateY(${t}px)`;var e=.15*a();e<-l&&(e=-l),e>l&&(e=l),0==e&&(e=o.BASE_VELOCITY),o.setVelocity(e);const n=document.getElementById("contact").offsetTop;if(window.scrollY>=n&&null!=i&&(cancelAnimationFrame(i),i=null),window.scrollY.16*(o().width+o().height),r=.08;var d=r;function c(t){d=t??d}function a(t){var e=o();const n={x:e.width/2,y:e.height/2};return{initial:{start:{xs:n.x-.14*e.width,ys:n.y-.14*e.height,xe:n.x+.14*e.width,ye:n.y+.14*e.height},end:{xs:n.x-.05*e.width,ys:n.y-.05*e.height,xe:n.x+.05*e.width,ye:n.y+.05*e.height}},center:n}}function l(t){t=o();const e=Math.floor(.26*(t.width+t.height));return Array(e).fill(0).map((()=>function(t){const e={init:!1,x:0,y:0,size:0,z:0,update:function(t,n){e.z-=d,(e.z<1||e.z>i())&&e.init(!0);var o=.1+u(e.z,0,t.width,e.size,0),r=u(e.x/e.z,0,1,0,t.width),c=u(e.y/e.z,0,1,0,t.height);n.beginPath(),n.arc(r,c,Math.abs(o),0,2*Math.PI,!1),n.fillStyle="white",n.fill()},init:function(n=!1){var o,r;e.x=(2*Math.random()-1)*(.045*t.height),e.y=(2*Math.random()-1)*(.045*t.height),e.size=.7+Math.random(),e.z=d<0?n?(o=0,r=.1,(Math.random()*(r-o)+o)*i()):e.z:n?Math.random()*i():e.z}};e.init||e.init(!1);return e}(t)))}function u(t,e,n,o,i){return(t-e)/(n-e)*(i-o)+o}},function(){window.isToggled=!1,window.toggle=function(){const t=[document.getElementById("download-card"),document.getElementById("footer"),document.getElementById("header")],e=[document.getElementById("contact"),document.getElementById("skills")];window.isToggled?(window.isToggled=!1,t.forEach((t=>{t.style.display="block"})),e.forEach((t=>{t.classList.remove("toggled")}))):(window.isToggled=!0,t.forEach((t=>{t.style.display="none"})),e.forEach((t=>{t.classList.add("toggled")})))}}],e={};function n(o){var i=e[o];if(void 0!==i)return i.exports;var r=e[o]={exports:{}};return t[o](r,r.exports,n),r.exports}n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,{a:e}),e},n.d=function(t,e){for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};!function(){"use strict";n.r(o);var t=n(1);n(2),n(4);window.onload=function(){(0,t.default)(document,120,12)}}()}(); \ No newline at end of file +!function(){var t=[,function(t,n,e){"use strict";e.r(n);var o=e(2);let i;const r=document.getElementById("header");let c;function d(t,n){t.clearRect(.5*-n.width,.5*-n.height,2*n.width,2*n.height),c.forEach((e=>{e.update(n,t)})),i=requestAnimationFrame((()=>d(t,n)))}!function(){const t=o.canvas();function n(){t.width=window.innerWidth-function(){const t=document.createElement("div");t.style.visibility="hidden",t.style.overflow="scroll",t.style.msOverflowStyle="scrollbar",document.body.appendChild(t);const n=document.createElement("div");t.appendChild(n);const e=t.offsetWidth-n.offsetWidth;return t.parentNode.removeChild(t),e}()-1,t.height=document.getElementById("header").offsetHeight,function(){null!=i&&(o.setVelocity(o.BASE_VELOCITY),cancelAnimationFrame(i));const t=o.canvas(),n=canvas.getContext("2d");n.translate(t.width/2,t.height/2),c=o.grid3d(t),d(n,t),window.addEventListener("mousemove",(function(t){const n=o.canvas(),e=canvas.getContext("2d"),i=n.width/2-.045*t.clientX,r=n.height/2-.045*t.clientY;e.setTransform(1,0,0,1,i,r)}))}()}window.addEventListener("resize",n,!1),n()}();var a=function(t){var n,e,o,i,r=(t=t||{}).delay||50;function c(){n=null,i=0}return c(),function(){return e=window.scrollY,null!=n&&(i=e-n),n=e,clearTimeout(o),o=setTimeout(c,r),i}}();const l=3*o.BASE_VELOCITY;window.onscroll=function(){const t=.22*window.scrollY;r.style.transform=`translateY(${t}px)`;var n=.15*a();n<-l&&(n=-l),n>l&&(n=l),0==n&&(n=o.BASE_VELOCITY),o.setVelocity(n);const e=document.getElementById("contact").offsetTop;if(window.scrollY>=e&&null!=i&&(cancelAnimationFrame(i),i=null),window.scrollY.16*(o().width+o().height),r=.08;var c=r;function d(t){c=t??c}function a(t){var n=o();const e={x:n.width/2,y:n.height/2};return{initial:{start:{xs:e.x-.14*n.width,ys:e.y-.14*n.height,xe:e.x+.14*n.width,ye:e.y+.14*n.height},end:{xs:e.x-.05*n.width,ys:e.y-.05*n.height,xe:e.x+.05*n.width,ye:e.y+.05*n.height}},center:e}}function l(t){t=o();const n=Math.floor(.26*(t.width+t.height));return Array(n).fill(0).map((()=>function(t){const n={init:!1,x:0,y:0,size:0,z:0,update:function(t,e){n.z-=c,(n.z<1||n.z>i())&&n.init(!0);var o=.1+s(n.z,0,t.width,n.size,0),r=s(n.x/n.z,0,1,0,t.width),d=s(n.y/n.z,0,1,0,t.height);e.beginPath(),e.arc(r,d,Math.abs(o),0,2*Math.PI,!1),e.fillStyle="white",e.fill()},init:function(e=!1){var o,r;n.x=(2*Math.random()-1)*(.045*t.height),n.y=(2*Math.random()-1)*(.045*t.height),n.size=.7+Math.random(),n.z=c<0?e?(o=0,r=.1,(Math.random()*(r-o)+o)*i()):n.z:e?Math.random()*i():n.z}};n.init||n.init(!1);return n}(t)))}function s(t,n,e,o,i){return(t-n)/(e-n)*(i-o)+o}},function(){window.isToggled=!1,window.toggle=function(){const t=[document.getElementById("download-card"),document.getElementById("footer"),document.getElementById("header")],n=[document.getElementById("contact"),document.getElementById("skills")];window.isToggled?(window.isToggled=!1,t.forEach((t=>{t.style.display="block"})),n.forEach((t=>{t.classList.remove("toggled")}))):(window.isToggled=!0,t.forEach((t=>{t.style.display="none"})),n.forEach((t=>{t.classList.add("toggled")})))}}],n={};function e(o){var i=n[o];if(void 0!==i)return i.exports;var r=n[o]={exports:{}};return t[o](r,r.exports,e),r.exports}e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,{a:n}),n},e.d=function(t,n){for(var o in n)e.o(n,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:n[o]})},e.o=function(t,n){return Object.prototype.hasOwnProperty.call(t,n)},e.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var o={};!function(){"use strict";e.r(o);e(1),e(3);window.onload=function(){}}()}(); \ No newline at end of file diff --git a/build/style.css b/build/style.css index 74d982a..131e0de 100644 --- a/build/style.css +++ b/build/style.css @@ -2106,9 +2106,6 @@ body { #experience-card .experience .points-holder .point-break { margin-top: 12px; } -#experience-card .experience .points-holder .point { - margin-right: 6px; -} #experience-card .experience .points-holder .point:first-child { margin-top: 0; } diff --git a/scripts/data/experience.json b/scripts/data/experience.json index 142df73..982dcc5 100644 --- a/scripts/data/experience.json +++ b/scripts/data/experience.json @@ -9,7 +9,12 @@ "company": "Sastaticket.pk", "points": [ [ - "Leading flutter mobile (iOS, Android) development project of sastaticket.pk." + "I am leading Flutter mobile app development project at sastaticket.pk.", + "I structured the codebase with flexible architecture with the bloc pattern.", + "I am Responsible for maintaining high quality and stable codebase.", + "I wrote a custom Github action script that creates flavored APK builds,", + "Then the builds are uploaded to google drive and The google drive link is sent by email.", + "I also published the new sastaticket flutter mobile App to App Store." ] ] }, @@ -24,9 +29,10 @@ "contract": "Freelance", "points": [ [ - "I mostly took small gigs like build MVPs mobile apps using React Native & Flutter for different clients.", - "I also made small scale custom CMS to manage data with nodeJS & React JS", - "Also did Fixed bugs, Tunned performance, Updated apps to new flutter version by solving native dependency conflicts & Made very unstable apps to stable stage." + "I mostly took small gigs like build MVP mobile apps using React Native & Flutter for different clients.", + "I built a small-scale custom CMS for managing data with MYSQL, Node JS, and React JS.", + "Also did Fixed bugs, tunned performance, Updated apps to new flutter version by solving native dependency conflicts,", + "Made unstable apps to stable stage." ] ] }, @@ -41,7 +47,9 @@ "contract": "Freelance", "points": [ [ - "In Upwork, I primarily worked on worked on React JS & React Native small projects with long term clients." + "During my Upwork journey, I worked two short term jobs where I fixed bugs and improved user experience,", + "and worked with a long term client where I built small scale MVP apps with React Native and React JS,", + "Also built `Grow youth app` with React Native and published it on App Store and Play Store" ] ] }, @@ -59,23 +67,24 @@ ], "points": [ [ - "Peekaboo Guru is the product of Fetch Sky which is a location based platform.", + "Peekaboo Guru is the product of Fetch Sky which is a location-based platform.", "that acts as your complete lifestyle guide and shows all the deals and discounts offered in the market.", - "I contributed technically on consumer mobile app and website, enterprise mobile sdk, internal admin panel and backend server." + "I contributed technically to the consumer mobile app and website, enterprise mobile SDK, internal admin panel, and backend server.", + "I had great a experience working with technically advanced seniors which helped me a lot in my career growth." ], [ - "In consumer web and mobile app development I got to work with React Native, React JS, styled-components, Redux, Webpack and Redux Saga.", - "I built reusable components while making sure it scale well on multiple screen sizes.", - "I also learned a great deal of react eco system like best practices, proper use of lints, configuring webpack and firebase." + "In consumer web and mobile app development, I got to work on React Native, React JS, styled-components, Redux, Webpack, and Redux-Saga.", + "I built reusable components while making sure they scale well on multiple screen sizes.", + "I also learned a great deal about react ecosystem like best practices, proper use of lint, configuring webpack, and firebase." ], [ - "In admin panel I got to work on AngularJS(1.5).", + "In the admin panel, I got to work on AngularJS(1.5).", "I built complex data tables to show, create, update and delete data.", - "Also integrated a custom built light weight image cropping and resizing module." + "Also integrated a custom-built lightweight image cropping and resizing module." ], [ - "In backend I got to work on AWS (S3, SES), puppeteer, NodeJS and MariaDB.", - "I wrote CRUD API calls for modules and & built a light weight image cropping module via \"node-canvas\"." + "In the backend, I got to work on AWS (S3, SES), puppeteer, NodeJS, and MariaDB.", + "I wrote CRUD API calls for modules and & built a lightweight image cropping module via \"node-canvas\"." ] ] } diff --git a/src/components/experience/experience.pug b/src/components/experience/experience.pug index 9205b89..dbae1b2 100644 --- a/src/components/experience/experience.pug +++ b/src/components/experience/experience.pug @@ -1,4 +1,4 @@ -- var data = [{"journey":[{"position":"Software engineer","date":"Jan 2021 - Present"}],"company":"Sastaticket.pk","points":[["Leading flutter mobile (iOS, Android) development project of sastaticket.pk."]]},{"journey":[{"position":"Full Stack, Flutter and React Native","date":"Sep 2018 - Present"}],"company":"Fiverr","contract":"Freelance","points":[["I mostly took small gigs like build MVPs mobile apps using React Native & Flutter for different clients.","I also made small scale custom CMS to manage data with nodeJS & React JS","Also did Fixed bugs, Tunned performance, Updated apps to new flutter version by solving native dependency conflicts & Made very unstable apps to stable stage."]]},{"journey":[{"position":"Full Stack, Flutter and React Native","date":"May 2018 - Present"}],"company":"Upwork","contract":"Freelance","points":[["In Upwork, I primarily worked on worked on React JS & React Native small projects with long term clients."]]},{"company":"Fetch Sky","journey":[{"position":"Associate Software Engineer","date":"Nov 2017 - Jan 2018"},{"position":"Junior Software Engineer","date":"Dec 2016 - Oct 2017"}],"points":[["Peekaboo Guru is the product of Fetch Sky which is a location based platform.","that acts as your complete lifestyle guide and shows all the deals and discounts offered in the market.","I contributed technically on consumer mobile app and website, enterprise mobile sdk, internal admin panel and backend server."],["In consumer web and mobile app development I got to work with React Native, React JS, styled-components, Redux, Webpack and Redux Saga.","I built reusable components while making sure it scale well on multiple screen sizes.","I also learned a great deal of react eco system like best practices, proper use of lints, configuring webpack and firebase."],["In admin panel I got to work on AngularJS(1.5).","I built complex data tables to show, create, update and delete data.","Also integrated a custom built light weight image cropping and resizing module."],["In backend I got to work on AWS (S3, SES), puppeteer, NodeJS and MariaDB.","I wrote CRUD API calls for modules and & built a light weight image cropping module via \"node-canvas\"."]]}]; +- var data = [{"journey":[{"position":"Software engineer","date":"Jan 2021 - Present"}],"company":"Sastaticket.pk","points":[["I am leading Flutter mobile app development project at sastaticket.pk.","I structured the codebase with flexible architecture with the bloc pattern.","I am Responsible for maintaining high quality and stable codebase.","I wrote a custom Github action script that creates flavored APK builds,","Then the builds are uploaded to google drive and The google drive link is sent by email.","I also published the new sastaticket flutter mobile App to App Store."]]},{"journey":[{"position":"Full Stack, Flutter and React Native","date":"Sep 2018 - Present"}],"company":"Fiverr","contract":"Freelance","points":[["I mostly took small gigs like build MVP mobile apps using React Native & Flutter for different clients.","I built a small-scale custom CMS for managing data with MYSQL, Node JS, and React JS.","Also did Fixed bugs, tunned performance, Updated apps to new flutter version by solving native dependency conflicts,","Made unstable apps to stable stage."]]},{"journey":[{"position":"Full Stack, Flutter and React Native","date":"May 2018 - Present"}],"company":"Upwork","contract":"Freelance","points":[["During my Upwork journey, I worked two short term jobs where I fixed bugs and improved user experience,","and worked with a long term client where I built small scale MVP apps with React Native and React JS,","Also built `Grow youth app` with React Native and published it on App Store and Play Store"]]},{"company":"Fetch Sky","journey":[{"position":"Associate Software Engineer","date":"Nov 2017 - Jan 2018"},{"position":"Junior Software Engineer","date":"Dec 2016 - Oct 2017"}],"points":[["Peekaboo Guru is the product of Fetch Sky which is a location-based platform.","that acts as your complete lifestyle guide and shows all the deals and discounts offered in the market.","I contributed technically to the consumer mobile app and website, enterprise mobile SDK, internal admin panel, and backend server.","I had great a experience working with technically advanced seniors which helped me a lot in my career growth."],["In consumer web and mobile app development, I got to work on React Native, React JS, styled-components, Redux, Webpack, and Redux-Saga.","I built reusable components while making sure they scale well on multiple screen sizes.","I also learned a great deal about react ecosystem like best practices, proper use of lint, configuring webpack, and firebase."],["In the admin panel, I got to work on AngularJS(1.5).","I built complex data tables to show, create, update and delete data.","Also integrated a custom-built lightweight image cropping and resizing module."],["In the backend, I got to work on AWS (S3, SES), puppeteer, NodeJS, and MariaDB.","I wrote CRUD API calls for modules and & built a lightweight image cropping module via \"node-canvas\"."]]}]; #experience-card .container @@ -25,5 +25,6 @@ each array in exp.points each point in array span.point.ab1= point + span= " " .point-break div.br diff --git a/src/components/experience/experience.sass b/src/components/experience/experience.sass index 46858fe..0df7215 100644 --- a/src/components/experience/experience.sass +++ b/src/components/experience/experience.sass @@ -59,7 +59,6 @@ margin-top: 12px .point // margin: 12px 0 - margin-right: 6px &:first-child margin-top: 0 &:last-child diff --git a/src/scripts/index.js b/src/scripts/index.js index 87a83dc..61a9ac2 100644 --- a/src/scripts/index.js +++ b/src/scripts/index.js @@ -1,4 +1,3 @@ -import SmoothScroll from "./smoothScroll.js"; import "./header.js"; import "./download.js"; @@ -7,5 +6,5 @@ window.onload = function () { // c.width = window.innerWidth; // c.height = 450; - SmoothScroll(document, 120, 12); + // SmoothScroll(document, 120, 12); };