[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"portfolio-content":3},{"personal":4,"skills":18,"experience":104,"projects":136,"currentWork":162,"certifications":163},{"name":5,"title":6,"summary":7,"photo":8,"email":9,"linkedin":10,"github":11,"resume":12,"location":13,"availability":14,"updatedAt":15},"Mark James  Espinosa","Full Stack Web Developer","Full Stack Web Developer with 2+ years of experience building, optimizing, and maintaining production web applications \nusing Vue.js, Nuxt.js, Laravel, PHP, and Node.js. Proven track record of diagnosing and resolving critical performance \nissues, implementing secure OAuth authentication, and translating complex Figma designs into pixel-perfect, responsive \ninterfaces. Skilled at collaboratin","https:\u002F\u002Fi.ibb.co\u002FJj4zk9jg\u002FScreenshot-2026-06-07-112058.png","jamesespinosamark@gmail.com","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmark-james-e-4b8146241\u002F","https:\u002F\u002Fgithub.com\u002Fjames1821\u002F","https:\u002F\u002Fdrive.google.com\u002Ffile\u002Fd\u002F1wgz5pYJFBGlIgW_i-fij8qr__QAYrpKu\u002Fview?usp=sharing","Philippines . Remote","",{"_seconds":16,"_nanoseconds":17},1790243625,359000000,[19,25,30,35,40,46,51,56,61,67,72,78,83,88,94,99],{"id":20,"name":21,"category":22,"order":23,"icon":24},"vue","Vue 3","Frontend",1,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Fvuejs\u002Fvuejs-original.svg",{"id":26,"name":27,"category":22,"order":28,"icon":29},"nuxt","Nuxt",2,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Fnuxtjs\u002Fnuxtjs-original.svg",{"id":31,"name":32,"category":22,"order":33,"icon":34},"react","React",3,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Freact\u002Freact-original.svg",{"id":36,"name":37,"category":22,"order":38,"icon":39},"tailwind","Tailwind CSS",4,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Ftailwindcss\u002Ftailwindcss-original.svg",{"id":41,"name":42,"category":43,"order":44,"icon":45},"laravel","Laravel","Backend",5,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Flaravel\u002Flaravel-original.svg",{"id":47,"name":48,"category":43,"order":49,"icon":50},"node","Node.js",6,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Fnodejs\u002Fnodejs-original.svg",{"id":52,"name":53,"category":43,"order":54,"icon":55},"supabase","Supabase",7,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Fsupabase\u002Fsupabase-original.svg",{"id":57,"name":58,"category":43,"order":59,"icon":60},"firebase","Firebase",8,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Ffirebase\u002Ffirebase-plain.svg",{"id":62,"name":63,"category":64,"order":65,"icon":66},"mysql","MySQL","Database",9,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Fmysql\u002Fmysql-original.svg",{"id":68,"name":69,"category":64,"order":70,"icon":71},"mongodb","MongoDB",10,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Fmongodb\u002Fmongodb-original.svg",{"id":73,"name":74,"category":75,"order":76,"icon":77},"typescript","TypeScript","Languages",11,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Ftypescript\u002Ftypescript-original.svg",{"id":79,"name":80,"category":75,"order":81,"icon":82},"javascript","JavaScript",12,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Fjavascript\u002Fjavascript-original.svg",{"id":84,"name":85,"category":75,"order":86,"icon":87},"php","PHP",13,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Fphp\u002Fphp-original.svg",{"id":89,"name":90,"category":91,"order":92,"icon":93},"git","Git","Tooling",14,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Fgit\u002Fgit-original.svg",{"id":95,"name":96,"category":91,"order":97,"icon":98},"vite","Vite",15,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Fvitejs\u002Fvitejs-original.svg",{"id":100,"name":101,"category":91,"order":102,"icon":103},"figma","Figma",16,"https:\u002F\u002Fcdn.jsdelivr.net\u002Fgh\u002Fdevicons\u002Fdevicon\u002Ficons\u002Ffigma\u002Ffigma-original.svg",[105,116,123],{"id":106,"company":107,"companyLogo":108,"role":109,"startDate":110,"endDate":111,"description":112,"tech":113,"order":23},"posbang","Posbang Corporation","https:\u002F\u002Fmedia.licdn.com\u002Fdms\u002Fimage\u002Fv2\u002FC560BAQE8o9Tx-vMghA\u002Fcompany-logo_200_200\u002Fcompany-logo_200_200\u002F0\u002F1644997964200?e=1782345600&v=beta&t=kZsi72mY6gcsoSfpjT0CTjxCYvvhZGKFJpPu25iBJdY","Web Developer","2024","Present","Build and maintain internal tooling and the company e-commerce platform. Optimised the PrestaShop-based camera rental system, shipped new features against a Laravel API, and built the Witty Manager V2 and V3 frontends in Vue, Nuxt and Tailwind.",[27,114,74,37,42,85,63,115],"Vue","PrestaShop",{"id":117,"company":118,"companyLogo":119,"role":109,"startDate":120,"endDate":111,"description":121,"tech":122,"order":28},"freelance","Freelance","https:\u002F\u002Fi.ibb.co\u002Fjv7MNFS1\u002FScreenshot-2026-06-09-111001.png","2023","Design and ship websites and web apps for startups and small businesses end to end — scoping, interface design, implementation and deployment.",[27,32,37,53,90],{"id":124,"company":125,"companyLogo":126,"role":127,"startDate":128,"endDate":129,"description":130,"tech":131,"order":33},"iphitech","iPhiTech IT and Digital Solutions","https:\u002F\u002Fmedia.licdn.com\u002Fdms\u002Fimage\u002Fv2\u002FD560BAQEt-kZgv0XgXA\u002Fcompany-logo_200_200\u002Fcompany-logo_200_200\u002F0\u002F1690506291969\u002Fiphitech_logo?e=1782345600&v=beta&t=eWkew-fXcAUOccl_c6-Kcisk4rNX4iB1syR4RVd6Z3M","Web Developer Intern","Feb 2023","Jun 2023","Turned UI\u002FUX mockups into responsive marketing pages and storefronts using WordPress, Elementor and Shopify alongside hand-written HTML, CSS and JavaScript.",[132,80,133,134,135],"HTML\u002FCSS","WordPress","Elementor","Shopify",[137,147,154],{"id":138,"title":139,"description":140,"image":141,"tech":142,"demo":144,"github":145,"featured":146,"order":23},"honey-flower-shop","Handmade by Honey","An e-commerce store for handcrafted and fresh flower arrangements. Customers get order customisation and a guided checkout; the owner gets a dashboard for products, customers, promo codes, analytics and shipping rules.","https:\u002F\u002Fi.ibb.co\u002FnqPBDRhC\u002FScreenshot-2026-06-10-084335.png",[27,53,143,37],"PostgreSQL","https:\u002F\u002Fhoney-flower-shop-v2-5srb.vercel.app","https:\u002F\u002Fgithub.com\u002Fjames1821\u002Fhoney-flower-shop-V2\u002F",true,{"id":148,"title":149,"description":150,"image":151,"tech":152,"demo":14,"github":14,"featured":146,"order":28},"witty-manager-v3","Witty Manager V3","Rebuilt the product frontend from Figma in Nuxt 3 and Tailwind, working against a Node.js API layer. Used SSR, composables and layouts to keep the module structure maintainable as the surface area grew.","https:\u002F\u002Fimages.unsplash.com\u002Fphoto-1611532736597-de2d4265fba3?w=1000&q=75",[153,74,37,48],"Nuxt 3",{"id":155,"title":156,"description":157,"image":158,"tech":159,"demo":14,"github":14,"featured":161,"order":33},"witty-manager-v2","Witty Manager V2","Added Google OAuth 2.0 sign-in through a Laravel API and shipped a Quick Menu that cut navigation depth to frequently used tools. Redesigned the login, signup and home screens for consistency across the platform.","https:\u002F\u002Fi.ibb.co\u002F4nkfLm0m\u002FScreenshot-2026-06-09-134144.png",[160,74,37,42,63],"Vue 2",false,[],[164,172],{"id":165,"title":166,"issuer":167,"issuerLogo":168,"date":169,"description":170,"link":171,"order":23},"fcc-js","JavaScript Algorithms and Data Structures","freeCodeCamp","https:\u002F\u002Fmedia.licdn.com\u002Fdms\u002Fimage\u002Fv2\u002FC4E0BAQGLKj3JHcof0w\u002Fcompany-logo_100_100\u002Fcompany-logo_100_100\u002F0\u002F1630639684997\u002Ffree_code_camp_logo?e=1782950400&v=beta&t=ynYTRff6UfAIT6yBLXuPB5YYjP40qZKJIkwz1gt5clo","July 2023","Covers sorting and searching, linked lists, trees, graphs and dynamic programming, assessed through implementation challenges.","https:\u002F\u002Fwww.freecodecamp.org\u002Fcertification\u002Ffcc71a9be58-9e3e-4387-86d9-7387e9390675\u002Fjavascript-algorithms-and-data-structures",{"id":173,"title":174,"issuer":175,"issuerLogo":176,"date":177,"description":178,"link":179,"order":28},"hackerrank-react","React (Basic)","HackerRank","https:\u002F\u002Fhrcdn.net\u002Ffcore\u002Fassets\u002Fbrand\u002Flogo-new-white-green-a5cb16e0ae.svg","August 2023","Component composition, hooks and state management, assessed by timed coding tasks.","https:\u002F\u002Fwww.hackerrank.com\u002Fcertificates\u002F0dc11c5d1ddb"]