[{"content":" Leveraged Java technologies (Spring boot framework) to build reliable microservices-based back-end, enhancing system modularity by applying design patterns. Utilized JPA and MySQL to implement layers for database interactions. Built responsive and intuitive front-end interfaces with ReactJS, improving user experience. Implemented secure authentication and authorization mechanisms using JWT and Spring Security, ensuring robust access control and data protection across services. Collaborated with BA team to clarify software requirements, creating detailed use case diagrams, page mock-ups, class diagrams, sequence diagrams, and ERDs to align development with business objectives. Deployed applications locally using Docker for detailed development. Enhanced code quality by implementing comprehensive unit tests for both front-end and back-end. ","permalink":"https://lorem.sanlab.zone/resume/01-fsoft/","summary":"\u003cul\u003e\n\u003cli\u003eLeveraged Java technologies (Spring boot framework) to build reliable microservices-based back-end, enhancing system modularity by applying design patterns.\u003c/li\u003e\n\u003cli\u003eUtilized JPA and MySQL to implement layers for database interactions.\u003c/li\u003e\n\u003cli\u003eBuilt responsive and intuitive front-end interfaces with ReactJS, improving user experience.\u003c/li\u003e\n\u003cli\u003eImplemented secure authentication and authorization mechanisms using JWT and Spring Security, ensuring robust access control and data protection across services.\u003c/li\u003e\n\u003cli\u003eCollaborated with BA team to clarify software requirements, creating detailed use case diagrams, page mock-ups, class diagrams, sequence diagrams, and ERDs to align development with business objectives.\u003c/li\u003e\n\u003cli\u003eDeployed applications locally using Docker for detailed development.\u003c/li\u003e\n\u003cli\u003eEnhanced code quality by implementing comprehensive unit tests for both front-end and back-end.\u003c/li\u003e\n\u003c/ul\u003e","title":"Associate Software Engineer"},{"content":"","permalink":"https://lorem.sanlab.zone/tools/epoch-converter/","summary":"","title":"Epoch Converter"},{"content":" Researched and implemented multiple features with advanced technologies including Dask, Faust, and Kafka Streams. Implemented data pipelines using Java, Scala and Kafka Stream. Implemented validation system using Python, Faust, Dask. Implemented module using Spring Boot, ReactJS and graphQL. Maintained core system using Java, Go. Applied proper data structures and algorithms based on the project\u0026rsquo;s coding standard. Mentored new members. ","permalink":"https://lorem.sanlab.zone/resume/02-unified/","summary":"\u003cul\u003e\n\u003cli\u003eResearched and implemented multiple features with advanced technologies including Dask, Faust, and Kafka Streams.\u003c/li\u003e\n\u003cli\u003eImplemented data pipelines using Java, Scala and Kafka Stream.\u003c/li\u003e\n\u003cli\u003eImplemented validation system using Python, Faust, Dask.\u003c/li\u003e\n\u003cli\u003eImplemented module using Spring Boot, ReactJS and graphQL.\u003c/li\u003e\n\u003cli\u003eMaintained core system using Java, Go.\u003c/li\u003e\n\u003cli\u003eApplied proper data structures and algorithms based on the project\u0026rsquo;s coding standard.\u003c/li\u003e\n\u003cli\u003eMentored new members.\u003c/li\u003e\n\u003c/ul\u003e","title":"Software Engineer"},{"content":"","permalink":"https://lorem.sanlab.zone/tools/string-generator/","summary":"","title":"String Generator"},{"content":" Main responsibility for the implementation of multiple features. Implemented back-end system using Java and Spring Boot integrated with mongodb and redis as database / caching, gRPC for internal back-end synchronous communication, RabbitMQ and Redis Stream brokers for asynchronous communication, RestAPI and Websocket for front-end - back-end communication. Collaborated with the QA team to design and implement automation testing suites using Typescript and Playwright. Deployed multiple servers for development and testing environments, including SMTP servers and HTTP proxy servers…, streamlining development workflows. Mentored new members. ","permalink":"https://lorem.sanlab.zone/resume/03-opswat/","summary":"\u003cul\u003e\n\u003cli\u003eMain responsibility for the implementation of multiple features.\u003c/li\u003e\n\u003cli\u003eImplemented back-end system using Java and Spring Boot integrated with mongodb and redis as database / caching, gRPC for internal back-end synchronous communication, RabbitMQ and Redis Stream brokers for asynchronous communication, RestAPI and Websocket for front-end - back-end communication.\u003c/li\u003e\n\u003cli\u003eCollaborated with the QA team to design and implement automation testing suites using Typescript and Playwright.\u003c/li\u003e\n\u003cli\u003eDeployed multiple servers for development and testing environments, including SMTP servers and HTTP proxy servers…, streamlining development workflows.\u003c/li\u003e\n\u003cli\u003eMentored new members.\u003c/li\u003e\n\u003c/ul\u003e","title":"Software Engineer"},{"content":" Performed shift-left development approach. Implemented automation testing with Playwright. Planned and implemented multiple features including: full-text search, IAM, server-sent notification … in a domain-driven microservices system. Contributed to improve overall application architecture. Implemented monitoring module including tracing, metrics tracking, logging with tempo, prometheus, loki and grafana. ","permalink":"https://lorem.sanlab.zone/resume/04-stealth-startup/","summary":"\u003cul\u003e\n\u003cli\u003ePerformed shift-left development approach.\u003c/li\u003e\n\u003cli\u003eImplemented automation testing with Playwright.\u003c/li\u003e\n\u003cli\u003ePlanned and implemented multiple features including: full-text search, IAM, server-sent notification … in a domain-driven microservices system.\u003c/li\u003e\n\u003cli\u003eContributed to improve overall application architecture.\u003c/li\u003e\n\u003cli\u003eImplemented monitoring module including tracing, metrics tracking, logging with tempo, prometheus, loki and grafana.\u003c/li\u003e\n\u003c/ul\u003e","title":"Senior Software Engineer"},{"content":"Overview I always think it\u0026rsquo;s a great idea for every dead serious software developer to personally own a DIY data center, not from cloud provider BS, but a bare metal data center that you can see every solder joins from its mainboard, feel the weights of its CPUs, feel the difficulties of making components work together, etc. Those feelings will make you ascended to higher dimensions.\nJoking aside, but it\u0026rsquo;s cool to:\nExperience how your applications get delivered from A to Z. Know in-depth how the infrastructures that support the applications actually work and get deployed. Especially in these days, where this industry diverses into multiple jobs, roles and positions, most developers just code passively, merge PRs and wait for features appear to different development environments with bare minimum knowledge of how things work outside their application boundaries.\nThen I plan to build a DIY data center.\nShopping spree First, this is the hardwares after the long period of searching and dealing\nName Type Price (VND) Quantity Total Note HUANANZHI X99-F8D Plus Main 3,200,000 1 3,200,000 CPU Intel Xeon E5-2696v4 CPU 4,500,000 2 9,000,000 RAM SAMSUNG 32GB DDR4 2133 MHZ ECC RAM 1,600,000 4 6,400,000 RAM SAMSUNG 32GB DDR4 2133 MHZ ECC RAM 1,600,000 4 6,400,000 SSD PCIe NVMe M.2 2280 2TB Storage 3,650,000 1 3,650,000 SSD Kioxia (TOSHIBA) Exceria Plus M.2 PCIe Gen3 x4 BiCS FLASH 1TB Storage 1 From old laptop SSD Samsung 850 EVO Plus PCIe NVMe V-NAND 250GB Storage 1 From old laptop GIGABYTE UD850GM 80 Plus Goldselle UPS 3,990,000 1 3,990,000 VGA Gigabyte RTX 2060 6G GDDR6 GPU 2,863,850 1 2,863,850 COOLER MASTER ID-Cooling SE-60 Cooler 718,000 1 718,000 COOLER MASTER ID-Cooling SE 226 XT BLACK Cooler 725,000 1 725,000 Antec NX290 Case 750,000 1 750,000 SUM 37,696,850 37,696,850 The OS layer After finish assembling hardware components, I install the proxmox and make this hypervisor type 1 server\nThis is how it\u0026rsquo;s look like\nData center health check (proxmox integrates with influxdb and grafana)\nData center architecture For the gateway of the data center system, I choose pfsense , in short, it is a firewall / virtual router that help the data center to connect with outside internet.\nAs we can see in the architecture diagram, I split the system\u0026rsquo;s network into 2 separated zone: the standalone app zone and the shooting ground kubernetes cluster zone:\nThe standalone app zone: this zone is for simple apps that help me everyday like pastebin, image hosting app, etc. I use docker compose installed on top of proxmox\u0026rsquo;s LXC container to run the apps (all are free docker opensource image). The Shooting ground k8s cluster zone: This is for me to gain knowledge and practice about kubernetes and enterprise delivery pipeline. How I install k8s cluster There are a lot of codies in the market talk about how useful k3s is and how it\u0026rsquo;s superior to minikube. But to me, both are non-serious toys, comparing them just like talk about how mature the 6-year-old kid is comparing to 5-year-old kid.\nI use talos linux , first I download its iso and upload to proxmox. Then I create 4 VMs with talos linux iso and join them together into a cluster (1 master and 3 slaves)\nk8s master k8s slaves This setup is the closest to the industry production-graded k8s cluster.\nConclusion Building this DIY data center has been one of the most rewarding side projects I\u0026rsquo;ve ever worked on. From researching hardware compatibility, assembling every component, configuring the BIOS, installing a Type-1 hypervisor, designing network topology, deploying Kubernetes, and finally hosting my own applications, every step help me to broaden my horizons.\nIf you\u0026rsquo;re serious about understanding distributed systems, infrastructure, or cloud-native technologies, I\u0026rsquo;d recommend building a home lab at least once. It doesn\u0026rsquo;t need to be expensive, and it doesn\u0026rsquo;t need enterprise hardware. Start small, break things often, rebuild them, and gradually evolve your setup; you\u0026rsquo;ll gain something that\u0026rsquo;s difficult to obtain from tutorials alone: intuition.\nAnd in software engineering, intuition is often what separates someone who merely uses technology from someone who truly understands it.\n","permalink":"https://lorem.sanlab.zone/posts/20260114-how-i-build-my-homelab/","summary":"\u003ch1 id=\"overview\"\u003eOverview\u003c/h1\u003e\n\u003cp\u003eI always think it\u0026rsquo;s a great idea for every dead serious software developer to personally own a DIY data center, not from cloud provider BS, but a bare metal data center that you can see every solder joins from its mainboard, feel the weights of its CPUs, feel the difficulties of making components work together, etc. Those feelings will make you ascended to higher dimensions.\u003c/p\u003e\n\u003cp\u003eJoking aside, but it\u0026rsquo;s cool to:\u003c/p\u003e","title":"How I build my homelab"}]