{"version":3,"sources":["components/Navbar/Navbar.component.jsx","components/Landing/Landing.component.jsx","components/LeftPane/LeftPane.component.jsx","components/RightPane/RightPane.component.jsx","components/Footer/Footer.component.jsx","components/About/About.component.jsx","components/Contact/Contact.component.jsx","components/Reviews/Reviews.component.jsx","components/Projects/Projects.component.jsx","components/Experience/Experience.component.jsx","App.js","serviceWorker.js","index.js"],"names":["Navbar","_useState","useState","_useState2","_slicedToArray","slide","setSlide","_useState3","_useState4","lastScrollY","setLastScrollY","_useState5","_useState6","loadedOnce","setLoadedOnce","handleScroll","currentScrollY","window","scrollY","scroll","element","offSetTop","document","getElementById","offsetTop","scrollTo","top","behavior","reveal","item","type","arguments","length","undefined","ScrollReveal","distance","origin","opacity","reset","_defineProperty","duration","easing","mobile","viewFactor","revealWithTimeout","id","timeDelay","setTimeout","useEffect","addEventListener","navigationItems","getElementsByClassName","_loop","key","React","createElement","className","style","transition","transform","concat","href","src","alt","data-target","onClick","download","Landing","LeftPane","rel","target","FontAwesomeIcon","icon","faGithub","size","faMedium","faLinkedin","faFacebook","RightPane","Footer","About","Contact","data","pic","name","title","review","link","Reviews","navigation","loop","autoplay","speed","map","index","fontSize","width","textAlign","Projects","mapToSpan","list","USDoctorsSpanItems","SathChaloopanItems","XtremeHardwareItems","CDLItems","StanleyItems","Experience","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","args","Array","_key","call","apply","state","_createClass","value","Component","App","Boolean","location","hostname","match","ReactDOM","render","Router","navigator","serviceWorker","ready","then","registration","unregister","catch","error","console","message"],"mappings":"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","file":"static/js/main.cae5fe4d.chunk.js","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport \"./Navbar.scss\";\n\nimport ScrollReveal from \"scrollreveal\";\n\nexport const Navbar = () => {\n const [slide, setSlide] = useState(0);\n const [lastScrollY, setLastScrollY] = useState(0);\n const [loadedOnce, setLoadedOnce] = useState(false);\n\n const handleScroll = () => {\n const currentScrollY = window.scrollY;\n\n if (currentScrollY > lastScrollY) {\n setSlide(\"-70px\");\n } else {\n setSlide(\"0px\");\n }\n setLastScrollY(currentScrollY);\n };\n\n const scroll = (element) => {\n let offSetTop = document.getElementById(element).offsetTop;\n window.scrollTo({\n top: offSetTop - 30,\n behavior: \"smooth\",\n });\n };\n\n const reveal = (item, type = \"move\") => {\n if (type === \"move\") {\n ScrollReveal().reveal(item, {\n distance: \"150%\",\n origin: \"top\",\n opacity: null,\n reset: false,\n });\n } else {\n ScrollReveal().reveal(item, {\n distance: \"50px\",\n duration: 1000,\n easing: \"ease\",\n mobile: true,\n reset: true,\n viewFactor: 0.4,\n reset: false,\n });\n }\n };\n\n const revealWithTimeout = (id, timeDelay = 2000) => {\n setTimeout(() => {\n reveal(document.getElementById(id), \"fade-in\");\n }, timeDelay);\n };\n\n useEffect(() => {\n window.addEventListener(\"scroll\", handleScroll);\n\n if (!loadedOnce) {\n let navigationItems = document.getElementsByClassName(\"nav-item\");\n var timeDelay = 35;\n for (let key in navigationItems) {\n setTimeout(() => {\n reveal(navigationItems[key]);\n }, timeDelay * (key + 1));\n }\n\n // timeDelay = 2000;\n revealWithTimeout(\"landing\");\n revealWithTimeout(\"leftpane\");\n revealWithTimeout(\"rightpane\");\n revealWithTimeout(\"about\");\n // reveal(document.getElementById(\"projects\"), \"fade-in\");\n revealWithTimeout(\"experience\");\n revealWithTimeout(\"testimonials\");\n revealWithTimeout(\"contact\");\n\n setLoadedOnce(true);\n }\n });\n\n return (\n
\n
\n \n
\n
\n \n \"\"\n \n
\n \n menu\n \n \n
\n \n
\n\n \n
\n );\n};\n","import React, { useEffect } from \"react\";\nimport \"./Landing.scss\";\n\nexport const Landing = () => {\n useEffect(() => {\n // alert('saad');\n });\n return (\n
\n
\n
\n
\n
Hi, my name is
\n
\n
\n
\n
\n

Saad Farhan.

\n
\n
\n
\n
\n

I build solutions to your problems.

\n
\n
\n
\n
\n
\n

\n Building complex back-ends in conjunction with sleek front-ends for seamless software experiences.\n\n

\n
\n
\n
\n
\n
\n \n Get in touch\n \n
\n
\n
\n
\n );\n};\n","import React from \"react\";\nimport \"./LeftPane.scss\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faFacebook, faGithub, faLinkedin, faMedium } from '@fortawesome/free-brands-svg-icons';\n\n\nexport const LeftPane = () => (\n
\n \n
\n);\n","import React from \"react\";\nimport \"./RightPane.scss\";\n\nexport const RightPane = () => (\n
\n
\n \n saadfarhan124@gmail.com\n \n
\n
\n);\n","import React from \"react\";\nimport \"./Footer.scss\";\n\nexport const Footer = () => (\n \n);\n","import React from \"react\";\nimport \"./About.scss\";\n\nexport const About = () => (\n
\n
\n
\n
\n

\n 01.About Me\n

\n
\n
\n
\n
\n

\n As a seasoned software engineer, I have successfully completed\n multiple projects, leveraging my knowledge and passion for\n problem-solving to deliver exceptional outcomes. My expertise spans\n a diverse range of technologies, including GoLang, Flutter, Python,\n Android Development, and CodeIgniter.I maintain a steadfast\n commitment to mastering core concepts while keeping pace with\n emerging trends in the industry. In addition to my technical\n expertise, I have a strong interest in teaching and mentoring, and\n have enjoyed writing articles on{\" \"}\n \n Medium\n {\" \"}\n to share my knowledge and experience with others.\n

\n {/*
*/}\n

Here are a few technologies I've been working with recently:

\n
\n
\n
    \n
  • GoLang
  • \n
  • Flutter
  • \n
  • Docker
  • \n
  • PostgreSQL
  • \n
\n
\n
\n
    \n
  • GCP
  • \n
  • Python
  • \n
  • Android (Kotlin and Java)
  • \n
  • React JS
  • \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n);\n","import React from \"react\";\nimport \"./contact.scss\";\n\nexport const Contact = () => (\n
\n
\n
\n

\n 05.Get In Touch\n

\n
\n
\n
\n
\n
\n

\n I'm actively seeking new opportunities and would love to connect\n with you. Whether you have a question or want to explore potential\n collaborations, please feel free to reach out. I'm eager to engage\n and discuss exciting prospects.\n

\n
\n \n Get in touch\n \n
\n
\n
\n
\n
\n);\n","import React from \"react\";\nimport \"./Reviews.scss\";\n\nconst data = [\n {\n pic: \"https://media.licdn.com/dms/image/D5603AQGPup_lra9x6A/profile-displayphoto-shrink_200_200/0/1670731747527?e=1691625600&v=beta&t=UrQExD9jPyJ5Q2CtzOvT-78XnX09uk0fI_RUAnMNNsk\",\n name: \"Ryan Nelson\",\n title: \"Director of IT at CDL1000\",\n review: `Saad's technical talents are very special - partIcularly his uncanny ability to source support talent around him\n and get high production-level results on the fly w/ either an over-articulated Project plan or within a Project plan\n with limited advisory on scope or direction.\n What made me blush a bit was trying to figure how this guy operates with the grace and polish that someone\n 20 years his senior would have (like me). RELIABLE. Calm under duress. Everyone in his space has to own it,\n few do it at the drop of a hat, with PRIMO results every damned time.\n I wish I had that toolbox at his age.\n I can't speak to his web work on the record as a web dev expert as my focus is IT backbone & managing our\n User-facing ops. But I thought it was awesome - I asked my wife who is a high-end web presence for a big\n Chicago digital marketing agency and we agreed his work was gorgeous and was smooth, the moving parts in\n the url were always sewn in perfectly.\n Saad also regularly worked out of the dev scope (thanks man!!) and was a treasured tech resource I will sorely\n miss, he was our top technical expert for a very long time.\n And he's a cool guy to work with - a good human. It will be fun to see where he's at in 5 years, I think his work\n here was slowing down a very very promising career, no offense to us - he just happens to have a very high\n ceiling, I see that. Really talented, nice dude! Miss him!`,\n link: \"https://www.linkedin.com/in/rjn-chicago/\",\n },\n {\n pic: \"https://media.licdn.com/dms/image/D5603AQGPup_lra9x6A/profile-displayphoto-shrink_200_200/0/1670731747527?e=1691625600&v=beta&t=UrQExD9jPyJ5Q2CtzOvT-78XnX09uk0fI_RUAnMNNsk\",\n name: \"Stan Bukriy\",\n title: \"Group Product Manager at CDL1000\",\n link: \"https://www.linkedin.com/in/sbukriy/\",\n review:\n \"I had the opportunity to work with Saad on several products, and I was consistently impressed with his ability to reach all deadlines while maintaining the highest quality of work. As our tech team lead, Saad was responsible for managing a diverse team of backend and frontend developers, product managers, and software architects and produced top-quality results, even with frequent changes in project requirements. He was able to keep everyone focused and motivated, ensuring that we always delivered our best work on time. Saad was also a great collaborator, always willing to listen to feedback and incorporate it into his work. I would highly recommend Saad to anyone looking for a talented and dedicated software engineer who excels at team leadership and collaboration.\",\n },\n {\n pic: \"https://media.licdn.com/dms/image/D5603AQFdx23H75Zahg/profile-displayphoto-shrink_200_200/0/1683655235791?e=1691625600&v=beta&t=KtmzTS3trAG6ohyI3Hh3bCDghbHnFahVJot924XnW2I\",\n name: \"Clark Alexander\",\n title: \" Director of Research and Development at CDL1000\",\n link: \"https://www.linkedin.com/in/clark-alexander-266232aa/\",\n review:\n \"Saad is a rare talent. He has incredible maturity for his youth and is able to handle a major workload on relatively little instruction. I highly recommend any company in need of a software engineer, full stack developer, app developer to give Saad a look. He's able to simultaneously manage a team and work deeply on the problems he has been given. I changed programming languages on him a couple of times, and he was able to get the implementations hooked into the new languages quickly and seemlessly.In addition to his incredible programming skill and team management skills, he's a great guy to work with. Very friendly, responsive, and able to stand his ground against absurd requests.\",\n },\n {\n pic: \"https://media.licdn.com/dms/image/C4E03AQHgm9H86FM3MA/profile-displayphoto-shrink_200_200/0/1547743571675?e=1691625600&v=beta&t=I6IZ2TfLYodj0hh5ArC0e0lSd23lCxe-bs0Oq0z7HoA\",\n name: \"Sal Rehman\",\n title: \"Co-Founder USDoctors.co\",\n link: \"https://www.linkedin.com/in/salmanrehman/\",\n review:\n \"Saad is a great full stack developer. He’s attentive, organized, and committed. A pleasure to work with!\",\n },\n {\n pic: \"https://media.licdn.com/dms/image/D5603AQGSmLQxsGb8Vw/profile-displayphoto-shrink_200_200/0/1666356842878?e=1691625600&v=beta&t=6sGPdxvM84JWKfDiE01VmuwXEsalmoBOEmtJMDwTI9I\",\n name: \"Dr. Collier Griffin\",\n title: \"Product Manager at USDoctors.co\",\n link: \"https://www.linkedin.com/in/lifebycng/\",\n review:\n \"Professional, great work ethic, and gives great ideas! Always a pleasure to work with.\",\n },\n {\n pic: \"https://media.licdn.com/dms/image/D5603AQEeesAAfmI9Ew/profile-displayphoto-shrink_800_800/0/1685083886265?e=1691625600&v=beta&t=tnKPFbKnMGaDEkMX6lcgdSVMZVErO_Dz-lwi7wuKh1g\",\n name: \"Irfan Khan\",\n title: \"Founder at XorToX\",\n link: \"https://www.linkedin.com/in/iffykhan/\",\n review:\n \"Farhan has been working with me as a full-stack software developer since July 2020. He is a hard worker that can write thousands of lines of code with a smile on his face. He has helped me with various cross-platform apps, websites and e-commerce projects for USA based clients. I am very impressed by Farhan's communication skills which came in handy when gathering requirements or presenting deliverables to clients who weren't particularly tech savvy. Farhan takes his programming seriously and regularly takes online classes to experiment with new programming trends. I can throw any new technology framework at him and he'll build me a prototype over-night ... it is a magical experience. He is an easy going fellow who goes out of his way to sync with the team, and resolve any problems we may have. He is constantly looking for guidance and training, and posses all the right signs to become a young leader.\",\n },\n];\n\nexport const Reviews = () => (\n
\n
\n
\n

\n 04.Testimonials\n

\n
\n
\n
\n \n {data.map((item, index) => (\n \n
\n \n

{item.name}

\n\n

{item.title}

\n

\n {item.review}\n

\n
\n
\n ))}\n \n
\n
\n);\n","import React from \"react\";\nimport \"./Projects.scss\";\n\nconst Projects = () => {\n const mapToSpan = (list) => {\n return list.map((item) => {item});\n };\n const USDoctorsTechList = [\n \"CodeIgniter\",\n \"PHP\",\n \"JQuery\",\n \"AJAX\",\n \"JavaScript\",\n \"HTML\",\n \"CSS\",\n ];\n const USDoctorsSpanItems = mapToSpan(USDoctorsTechList);\n\n const SathChalooTechList = [\n \"Android\",\n \"Firebase\",\n \"Kotlin\",\n \"Google Services\",\n \"React JS\",\n ];\n const SathChaloopanItems = mapToSpan(SathChalooTechList);\n\n const XtremeHardwareechList = [\"WordPress\", \"WooCommerce\", \"WP Page Builder\"];\n const XtremeHardwareItems = mapToSpan(XtremeHardwareechList);\n\n const CDL1000TechList = [\n \"NextJS\",\n \"Go Fiber\",\n \"PostgreSQL\",\n \"GCP\",\n \"Cloud Run\",\n \"Cloud Build\",\n \"Julia Lang\",\n \"Genie Framework\",\n ];\n const CDLItems = mapToSpan(CDL1000TechList);\n\n const StanleyTechList = [\n \"Python\",\n \"Electron JS\",\n \"JavaScript\",\n \"Pandas\",\n \"TMDB API\",\n \"HTML\",\n \"CSS\",\n ];\n const StanleyItems = mapToSpan(StanleyTechList);\n\n return (\n
\n
\n
\n
\n

\n 02.Projects\n

\n
\n
\n
\n\n
\n
\n \n
\n
\n
\n
\n
CDL1000 Quoting
\n
\n
\n
\n

\n This web-based quoting engine enables customers to book\n Drayage or Truckload shipments and make payments online or\n later through Stripe invoicing.\n

\n
\n
\n
\n\n
\n
\n
    \n {CDLItems.map((item, key) => (\n
  • {item}
  • \n ))}\n
\n
\n
\n
\n
    \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
Sath Chaloo
\n\n
\n
\n

\n Ride Hailing Startup based in karachi. My key\n responsibilities included developing and maintaining\n multiple android and web apps\n

\n
\n
\n
\n
\n
    \n {SathChaloopanItems.map((item) => (\n
  • {item}
  • \n ))}\n
\n
\n
\n
\n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n
\n
USDoctors
\n
\n
\n
\n

\n An E-Learning Platform connecting Preceptors from all over\n the US to physcians in training\n

\n
\n
\n
\n\n
\n
\n
    \n {USDoctorsSpanItems.map((item, key) => (\n
  • {item}
  • \n ))}\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
Stanley
\n\n
\n
\n

\n My final year and first project that I led to completion on\n my own. A simple command based desktop application that\n generates movie recommendations based on your previous\n choices.\n

\n
\n
\n
\n
\n
    \n {StanleyItems.map((item) => (\n
  • {item}
  • \n ))}\n
\n
\n
\n
\n
    \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n \n
\n
\n\n
\n
\n \n
\n
\n
\n
\n
Xtreme Hardware
\n\n
\n
\n

\n An E-Commerce based startup providing computer hardware to\n people all over Pakistan.\n

\n
\n
\n
\n
\n
    \n {XtremeHardwareItems.map((item) => (\n
  • {item}
  • \n ))}\n
\n
\n
\n
\n
    \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n

\n Other projects that I've worked on\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n Flutter Facebook SDK\n

\n A Flutter plugin used to fetch Facebook deep links and log\n app events\n

\n
\n
    \n
  • Dart
  • \n
  • Kotlin
  • \n
  • Swift
  • \n
\n
\n
\n
\n
\n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n\n
\n
\n Reddit Data Scrapper\n

\n Reddit scrapper built using PRAW API that fetches posts,\n comments and replies\n

\n
\n
    \n
  • Python
  • \n
  • PRAW
  • \n
  • Selenium
  • \n
\n
\n
\n
\n
\n
    \n \n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n Anonymous Social\n

WebApp that allows users to post data anonymously

\n
\n
    \n
  • Express JS
  • \n
  • Node JS
  • \n
  • Mongo DB
  • \n
  • Jade
  • \n
\n
\n
\n
\n
\n
    \n
  • \n \n \n \n
  • \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n Instagram Downloader\n

A Python based utility to download Instagram Posts

\n
\n
    \n
  • Python
  • \n
  • Selenium
  • \n
\n
\n
\n
\n
\n
    \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n Alumni Portal\n

\n Portal to keep track of Alumni's informations and their job\n experiences.\n

\n
\n
    \n
  • ASP.NET
  • \n
  • Entity Framework
  • \n
  • JavaScript
  • \n
\n
\n
\n
\n
\n
    \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n WordPress Automation\n

\n Python utility to create WordPress Pages from a txt file\n

\n
\n
    \n
  • Python
  • \n
  • Selenium
  • \n
\n
\n
\n
\n
\n
    \n
  • \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default Projects;\n","import React, { Component } from \"react\";\n\nimport \"./Experience.scss\";\n\nclass Experience extends Component {\n state = {};\n render() {\n return (\n
\n
\n
\n
\n

\n 03.Where I've worked\n

\n
\n
\n
\n
\n
\n \n
\n\n
\n
\n Senior Software Engineer\n @ Gepeto\n
\n

August 2024 - Present

\n
    \n
  • \n Designed and developed a microservices-based LLM agent management platform using gRPC and Redis for efficient inter-service communication.\n
  • \n
  • \n Created an authentication module to manage organization-specific configurations, enabling secure access to LLM agent data and configurations.\n
  • \n
  • \n Designed a live agent playground for sandbox testing of LLM agents before deployment.\n
  • \n
  • \n Implemented full frontend integration using Next.js to deliver a seamless user experience.\n
  • \n
  • \n Led the architecture and development of AI/LLM powered solutions for businesses using FastAPI, Anthropic, OpenAI, Instructor, PostgreSQL, Twilio, and Redis, implementing LLM-powered intelligent agents designed for enterprise-scale customer service automation.\n
  • \n
  • \n Engineered comprehensive multi-stage agent systems with advanced RAG capabilities for efficient knowledge base querying and response generation.\n
  • \n
  • \n Developed and integrated end-to-end Salesforce connectivity for AI agents, enabling automated case management and contact tracking while maintaining data consistency across platforms.\n
  • \n
  • \n Created an intuitive Next.js dashboard empowering customers to manage user stories and training examples, enhancing agent performance and customization capabilities.\n
  • \n
  • \n Implemented performance optimization strategies utilizing Redis caching and database query refinements, significantly improving agent response times and concurrent user handling.\n
  • \n
  • \n Engineered a versatile embedded chatbot solution with cross-platform compatibility, ensuring seamless integration across various customer websites.\n
  • \n
  • \n Established robust testing environments and deployment pipelines, streamlining the development-to-production lifecycle.\n
  • \n
  • \n Worked with customer's DevOps team to deploy a multi-agent solution on their infrastructure as part of regional collaboration efforts.\n
  • \n
  • \n Partnered with customer's Salesforce integration team to manage the integration and release of changes on their Salesforce instance from development to production.\n
  • \n
\n
\n\n
\n
\n Lead Software Engineer\n @ Code Clan\n
\n

September 2021 - July 2024

\n
    \n
  • \n Led the development of essential in-house products for clients, including a rate calculator and loadboard.\n
  • \n
  • \n Ensured ongoing functionality, alignment with business objectives, and implementation of necessary updates and improvements.\n
  • \n
  • \n Utilized containerized Go-based microservices with the Fiber Framework for scalable solutions.\n
  • \n
  • \n Leveraged Flutter and Dart technologies, significantly improving tracking capabilities and operational efficiency in logistics.\n
  • \n
  • \n Implemented CI/CD pipelines using Google Cloud Build, boosting development efficiency.\n
  • \n
  • \n Designed GCP infrastructure, including Cloud Run, Build, Memory Store, and SQL.\n
  • \n
  • \n Coordinated with external agencies to integrate third-party APIs and services into developed products.\n
  • \n
  • \n Developed a custom landing page and improved user experience for a UK marketing company through bug fixes and enhancements.\n
  • \n
  • \n Engineered the backend for an AI sales bot company, focusing on recording, managing, and organizing key performance indicators (KPIs).\n
  • \n
  • \n Collaborated with Nuance's team to deploy and integrate a customer's chatbot solution, contributing to regional collaboration on the deployment process.\n
  • \n
\n
\n\n
\n
\n Software Developer\n @ OctoberNow\n
\n

February 2021 - September 2021

\n
    \n
  • \n Led the optimization efforts of multiple mobile apps developed in Flutter and Dart.\n
  • \n
  • \n Optimized bug resolution, diagnosing and rectifying 10+ critical issues across devices.\n
  • \n
  • \n Enhanced code quality with SOLID and Design Principles, reducing codebase vulnerabilities and improving maintainability.\n
  • \n
  • \n Integrated multiple platform-specific functionalities within Flutter apps, and a consistent user experience across different operating systems.\n
  • \n
  • \n Fixed a buggy implementation of an audio-to-text feature in the production app, eliminating unexpected behavior and crashes by implementing the Singleton Principle.\n
  • \n
  • \n Fostered community engagement and innovation by developing an{\" \"}\n \n open-source plugin\n {\" \"}\n supporting Android and iOS, garnering 100+ downloads and positive feedback from the Flutter and Dart community.\n
  • \n
  • \n Contributed to microservices development and maintenance using Spring Boot.\n
  • \n
  • \n Led serverless computing solutions with Google Cloud Functions.\n
  • \n
\n
\n\n
\n
\n Software Engineer\n @ Xortox\n
\n

June 2020 - January 2021

\n
    \n
  • \n Led client requirement sessions, ensuring deep understanding of their expectations, with high client satisfaction levels.\n
  • \n
  • \n Optimized deployment workflows, streamlining processes and reducing deployment time.\n
  • \n
  • \n Configured third-party plugins to tailor functionality to specific requirements, ensuring optimal performance and user experience.\n
  • \n
  • \n Developed diverse platforms with CodeIgniter, WordPress, React Native, and React JS, showcasing expertise across frameworks.\n
  • \n
  • \n Led the development of mobile applications using React Native.\n
  • \n
\n
\n
\n
\n
\n );\n }\n}\n\nexport default Experience;\n","import React, {useEffect} from \"react\";\nimport \"./App.css\";\nimport {Navbar} from \"./components/Navbar/Navbar.component\";\nimport { Landing } from \"./components/Landing/Landing.component\";\nimport { LeftPane } from \"./components/LeftPane/LeftPane.component\";\nimport { RightPane } from \"./components/RightPane/RightPane.component\";\nimport { Footer } from \"./components/Footer/Footer.component\";\nimport { About } from \"./components/About/About.component\";\nimport { Contact } from \"./components/Contact/Contact.component\";\nimport { Reviews } from \"./components/Reviews/Reviews.component\";\n\nimport Projects from \"./components/Projects/Projects.component\";\n\nimport Experience from \"./components/Experience/Experience.component\";\n\nfunction App() {\n useEffect(()=>{\n // var elems = document.querySelectorAll('.sidenav');\n // var instances = M.Sidenav.init(elems, []);\n })\n return (\n
\n \n \n \n \n \n \n \n \n \n
\n );\n}\n\nexport default App;\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' }\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport { BrowserRouter as Router } from \"react-router-dom\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}