[{"data":1,"prerenderedAt":222},["ShallowReactive",2],{"navigation":3,"index":74,"pinned-projects":141},[4],{"title":5,"path":6,"stem":7,"children":8,"page":73},"Blog","/blog","blog",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69],{"title":10,"path":11,"stem":12},"How to Increase Free Tier Memory on AWS EC2","/blog/aws-ec2-ram","blog/aws-ec2-ram",{"title":14,"path":15,"stem":16},"Disk Management in Linux","/blog/disk-management-in-linux","blog/disk-management-in-linux",{"title":18,"path":19,"stem":20},"Docker Devtools Stage | Powerlevel, OhMyZSH, tmux, fuzzy finder, autocomplete etc","/blog/docker-devtools","blog/docker-devtools",{"title":22,"path":23,"stem":24},"Docker container | Resolving Permission Denied Woes: A Decade-Long Struggle Unraveled","/blog/docker-non-root-user-perms","blog/docker-non-root-user-perms",{"title":26,"path":27,"stem":28},"Git commands | underrated","/blog/git-commands-underrated","blog/git-commands-underrated",{"title":30,"path":31,"stem":32},"Kubernetes Cluster Setup Guide","/blog/k8s-setup","blog/k8s-setup",{"title":34,"path":35,"stem":36},"Linux WiFi Drivers","/blog/linux-wifi-drivers","blog/linux-wifi-drivers",{"title":38,"path":39,"stem":40},"pfSense basic firewall setup","/blog/pfsense-basic-firewall-setup","blog/pfsense-basic-firewall-setup",{"title":42,"path":43,"stem":44},"pfSense Quickstart","/blog/pfsense-quickstart","blog/pfsense-quickstart",{"title":46,"path":47,"stem":48},"Proxmox DNS Management","/blog/proxmox-dns","blog/proxmox-dns",{"title":50,"path":51,"stem":52},"Proxmox Recovery","/blog/proxmox-recovery","blog/proxmox-recovery",{"title":54,"path":55,"stem":56},"Proxmox WiFi Connection Story","/blog/proxmox-wifi","blog/proxmox-wifi",{"title":58,"path":59,"stem":60},"roadauth-rails api jwt cors","/blog/rodauth-jwt","blog/rodauth-jwt",{"title":62,"path":63,"stem":64},"SOCKS5 Proxy Quickstart","/blog/sock5-proxy","blog/sock5-proxy",{"title":66,"path":67,"stem":68},"tmux status bar toggle","/blog/tmux-status","blog/tmux-status",{"title":70,"path":71,"stem":72},"UFW - Cheatsheet","/blog/ufw-cheatsheet","blog/ufw-cheatsheet",false,{"id":75,"title":76,"about":77,"blog":80,"body":80,"description":81,"experience":82,"extension":108,"faq":80,"hero":109,"meta":129,"navigation":130,"path":131,"projects":132,"seo":135,"stem":139,"testimonials":80,"__hash__":140},"index/0.index.yml","Rahul Dhole - Full-Stack Engineer",{"title":78,"description":79},"Hi, I'm Rahul.","I am a Full-Stack Engineer based in Paris, France. With an M.Sc in Computer Science from Paul Sabatier University, I specialize in Ruby on Rails, Vue JS, and Cloud DevOps. I focus on improving developer experience (DX), building API-first architectures, and delivering end-to-end highly scalable systems.",null,"Full-Stack Engineer based in Paris specializing in Ruby on Rails, Vue.js, and Cloud DevOps. Portfolio of Rahul Dhole, showcasing modern web applications and developer tools.",{"title":83,"items":84,"description":107},"Work Experience",[85,93,100],{"date":86,"position":87,"company":88},"2024 - 2025","Full-Stack Engineer",{"name":89,"url":90,"logo":91,"color":92},"OnPharma","#","i-lucide-building","#eab308",{"date":94,"position":95,"company":96},"2022 - 2024","Full-Stack Ruby on Rails Engineer",{"name":97,"url":90,"logo":98,"color":99},"P1 Security","i-lucide-shield","#ef4444",{"date":101,"position":102,"company":103},"2016 - 2017","Full-Stack PHP Developer",{"name":104,"url":90,"logo":105,"color":106},"Vensark Technologies","i-lucide-code","#3b82f6","","yml",{"links":110,"images":128},[111,116,122],{"label":112,"to":113,"icon":114,"target":115},"LinkedIn","https://linkedin.com/in/dholerahul","i-simple-icons-linkedin","_blank",{"label":117,"to":118,"icon":119,"target":115,"color":120,"variant":121},"Book a Call","https://calendly.com/rahuldhole/rdv","i-lucide-calendar","primary","solid",{"label":123,"to":124,"icon":125,"target":115,"color":126,"variant":127},"GitHub","https://github.com/rahuldhole","i-simple-icons-github","neutral","outline",[],{},{"icon":107},"/",{"title":133,"description":134},"Featured Projects","A selection of tools and applications I've built to solve various problems.",{"title":136,"description":137,"keywords":138},"Rahul Dhole | Full-Stack Engineer & Cloud DevOps Expert","Professional portfolio of Rahul Dhole, a Full-Stack Engineer in Paris specializing in Ruby on Rails, Vue.js, and API-first architectures. Explore projects and technical blog posts.","Rahul Dhole, Full-Stack Engineer, Ruby on Rails, Vue.js, Cloud DevOps, Paris, Web Development, Portfolio","0.index","UiitQFBBH9ATEtGpRHVq72U-Yjpi1HU6mmOXpfEnbMM",[142,157,171,185,197,209],{"id":143,"title":144,"date":145,"description":146,"extension":108,"image":147,"meta":148,"pinned":149,"stem":150,"tags":151,"url":155,"__hash__":156},"projects/projects/hfs.yml","HTTP File Server","2026","Cross-platform app built with Tauri and VueJS. A Rust utility to host files locally and share them instantly over IP.","https://placehold.co/800x400/0f172a/06b6d4?text=HTTP+File+Server",{},true,"projects/hfs",[152,153,154],"Tauri","Rust","VueJS","https://hfs.rahuldhole.com/","Ixk-FxRx13TXzrOgesHzoox1jNEfE2QjxDinmlIJw3Y",{"id":158,"title":159,"date":160,"description":161,"extension":108,"image":162,"meta":163,"pinned":149,"stem":164,"tags":165,"url":169,"__hash__":170},"projects/projects/html-playground.yml","HTML Playground","2025","Developed a browser-based HTML IDE enabling instant code execution without local setup. Implemented live preview and fast in-browser rendering for improved learning experience.","https://placehold.co/800x400/0f172a/22c55e?text=\u003Chtml>",{},"projects/html-playground",[166,167,168],"IDE","Web","Education","https://html-playground.rahuldhole.com/","I4S48P3zrN3ypXVxSJ5goLIUer-Pds9eJJ1tP3SWppg",{"id":172,"title":173,"date":174,"description":175,"extension":108,"image":176,"meta":177,"pinned":149,"stem":178,"tags":179,"url":183,"__hash__":184},"projects/projects/openbox.yml","openbox/xrdp","2024","Built an RDP plugin enabling secure remote desktop access for cloud-based dev environments. Improved remote developer onboarding and workflow stability.","https://placehold.co/200x400/0f172a/3b82f6?text=xRDP",{},"projects/openbox",[180,181,182],"DevOps","RDP","Cloud","https://openbox.rahuldhole.com/","qgRsKl0BTFfDTU48UDO5qJ-3fYg-fpMA4Qp_jr9ZRjE",{"id":186,"title":187,"date":160,"description":188,"extension":108,"image":189,"meta":190,"pinned":149,"stem":191,"tags":192,"url":195,"__hash__":196},"projects/projects/prepajs.yml","PrepaJS","Built an interactive platform for learning JavaScript fundamentals through hands-on exercises. Focused on performance, clean UI, and progressive learning flow.","https://placehold.co/800x400/0f172a/eab308?text=PrepaJS",{},"projects/prepajs",[193,168,194],"JavaScript","Web App","https://prepajs.rahuldhole.com/","BfZJ5qQVpqIpzxwQgqizoazXY9Y1OD9Zt5hnKcujjBY",{"id":198,"title":199,"date":145,"description":200,"extension":108,"image":201,"meta":202,"pinned":149,"stem":203,"tags":204,"url":207,"__hash__":208},"projects/projects/streak-pulse.yml","Github Streak","Visualize your GitHub contributions in Duolingo-style fire streaks. Built as a minimal, lightweight microservice returning dynamic SVGs for profiles and repositories.","https://github-streak.rahuldhole.com/?user=rahuldhole&theme=dark",{},"projects/streak-pulse",[123,205,206],"SVG","Gamification","https://github-streak.rahuldhole.com/","BXZcUhhHn_vt-YhkPFEo2CCNEdmtbWWN98PBi2PBctk",{"id":210,"title":211,"date":160,"description":212,"extension":108,"image":213,"meta":214,"pinned":149,"stem":215,"tags":216,"url":220,"__hash__":221},"projects/projects/untangled-html.yml","Untangled HTML","Created a VS Code extension to improve HTML readability by visually hiding angle brackets. Enhanced developer productivity when working with deeply nested markup.","https://placehold.co/800x400/0f172a/a855f7?text=Untangled+HTML",{},"projects/untangled-html",[217,218,219],"VS Code","Extension","DX","https://untangled-html.rahuldhole.com/","DIyC2X_yT0kzF3WMzGC4tI8RQJmlj2MbRik2cmKB-4o",1774445283138]