Article Information
Category: Development
Published: May 9, 2026
Author: Chris de Gruijter
Reading Time: 13 min
Tags

Buying a Refurbished ThinkPad T480 in Malaysia and Syncing My Dev Environment
Published: May 9, 2026
I run a freelance agency and a SaaS side project from Malaysia. My main PC handles everything when I am at my desk, but I occasionally work from coffee shops, co-working spaces, and on the road. I needed a dedicated Linux machine for mobile work — something that could handle real development workloads without being tethered to a charger. This is the story of how I searched for, evaluated, bought, and upgraded a refurbished ThinkPad T480, and then solved the harder problem: making my entire AI-assisted development environment portable between two machines with a single git pull.
What I Needed from a Laptop
My workload is terminal-heavy. I run Nuxt dev servers, Node.js builds, and the full Cloudflare stack locally. I use Distrobox and Podman containers for sandboxed AI development. I occasionally need a Windows VM for tools like Google Ads Editor and Adobe products. I do not game and I do not need a dedicated GPU.
The hard requirements were simple:
- Exclusively for Ubuntu/Linux — no dual-boot compromises
- Minimum 16GB RAM, ideally 32GB for container workloads
- Minimum 250GB NVMe SSD
- Proven Linux compatibility — WiFi, suspend, trackpad all working out of the box
- Reliable, repairable, and upgradeable hardware
- Budget: initially RM1,000, later extended as I realised what was available
I was completely open to refurbished or used machines. A new laptop at this budget would mean 8GB RAM, a plastic chassis, and a warranty from a brand that treats repairs as a profit centre. The refurbished market, on the other hand, gets you enterprise-grade hardware at a fraction of the original cost.
The Search: T470, Revibe, and Local Sellers
Starting with the ThinkPad T470
I started looking at the Lenovo ThinkPad T470 — a 6th gen i5 model with 16GB RAM and a 256GB SSD, listed at RM850. The price was attractive and the T-series has a strong reputation for Linux compatibility. But the more I researched, the more the limitations stood out: dual-core CPU, older DDR4 memory controller, and no USB-C charging. For running Podman containers alongside a Nuxt dev server and a browser with 20+ tabs, dual-core felt like a bottleneck I would hit within weeks.
Discovering the T480 — and Revibe Malaysia
Then I found the ThinkPad T480. The jump from T470 to T480 is not incremental — it is generational. The T480 moved to 8th gen Intel, which meant quad-core processors even in the i5 models. It introduced the Power Bridge dual battery system with hot-swap capability. And it remains one of the most repairable laptops ever manufactured, with parts still widely available in 2026.
I found a T480 listing on Revibe Malaysia — i5 8th gen, 32GB RAM, 512GB SSD for RM1,340. Revibe is a well-funded UAE-based refurbished electronics company that had recently expanded into Malaysia. I researched them carefully. The company itself looked legitimate: proper funding, professional website, decent reviews from their UAE operations.
But the Malaysian operation was new, and the warranty terms gave me pause. Repairs required sending the device to their supplier, with a turnaround of up to four weeks. There was no local physical presence for warranty claims. For a machine I would depend on daily for client work, the idea of being without a laptop for a month while it sits in a courier pipeline to the UAE was a dealbreaker.
The Local Alternative: ithub.com.my
I also looked at ithub.com.my, a local Malaysian refurbished seller based in Cheras, KL. They had T480 listings at RM1,099-1,299, but the configurations came with 16GB soldered RAM — not upgradeable. For my container-heavy workflow, 16GB was the absolute minimum, and having no upgrade path was a risk I did not want to take.
Why the T480 Specifically
At this point I was specifically hunting for a T480 with the right configuration. Here is why:
- Quad-core 8th gen Intel — the T470 and earlier T-series used dual-core chips. The 8th gen i5/i7 doubled core count, which matters enormously for parallel container workloads
- Power Bridge dual battery — a small internal 24Wh battery plus a hot-swappable external battery. You can carry spares and swap them without shutting down
- Exceptional Linux compatibility — the T480 is one of the most thoroughly tested ThinkPads on Ubuntu and Fedora. WiFi, Bluetooth, suspend, trackpad, fingerprint reader — everything works
- MIL-SPEC build quality — magnesium and carbon fibre chassis, tested against drops, vibration, humidity, and temperature extremes
- Repairability — dual RAM slots (one soldered, one SODIMM), dual storage slots (M.2 NVMe + 2.5" SATA), user-replaceable keyboard, battery, screen, and virtually every other component
- Parts availability — ThinkPad parts are everywhere in Malaysia. Any IT shop in a mall can source replacement screens, keyboards, batteries, and chargers
The T480 occupies a sweet spot that modern thin-and-light laptops have abandoned: it is powerful enough for real work, repairable enough that a single component failure does not write off the machine, and cheap enough on the refurbished market that the total investment including upgrades stays well under RM2,000.
The Purchase: Going Local in Shah Alam
I ultimately found a ThinkPad T480 at a local computer shop in Shah Alam — i7 8th gen, 32GB RAM, 512GB NVMe SSD, for RM1,650. More expensive than the Revibe listing, but the trade-offs were clear:
- Walk-in warranty claims — no courier, no waiting
- Face-to-face accountability — I could point to the person who sold it to me
- No risk of a four-week repair turnaround
- I could inspect and stress test the machine on the spot before paying
That last point turned out to be the most important.
The Stress Test: Trust but Verify
Before handing over RM1,650, I booted Ubuntu 24.04 from a live USB stick and ran a full verification on the spot. This is something I would strongly recommend to anyone buying refurbished hardware — never trust the listing specs, always verify yourself.
Here is what I checked:
- CPU — confirmed i7-8550U (4 cores, 8 threads, 8th gen)
- RAM — confirmed 32GB DDR4
- Storage — confirmed 512GB NVMe SSD
- WiFi — connected to the shop's network, ran a speed test
- Display — checked for dead pixels, backlight bleed
- Keyboard — tested every key
- Battery health — this was the most revealing check
The battery diagnostic showed something interesting. The external battery reported 100% design capacity with only 6 charge cycles — manufactured September 2025. Essentially brand new. But when I checked for the internal battery, it was absent. The T480's Power Bridge system uses two batteries: a small internal 24Wh cell and the hot-swappable external. This unit was missing the internal one entirely.
The Missing Battery Decision
I briefly considered haggling RM100 off the price for the missing internal battery. But the overall deal was solid — an i7 8th gen with 32GB RAM, 512GB NVMe, and a near-new external battery for RM1,650. Trying to squeeze RM100 off felt petty when the machine checked every other box. I accepted the price and decided to source the internal battery separately.
The 01AV421 internal battery runs RM74-135 on Shopee and Lazada. A minor cost to complete the dual-battery system.
The Upgrades: Building All-Day Battery Life
After the purchase, I planned a series of upgrades to turn this into a genuine all-day mobile workstation:
- Internal battery (01AV421) — RM74-135 from Shopee/Lazada. Completes the Power Bridge system and adds ~2 hours of runtime
- Extended external battery (61+ 48Wh) — RM112 from Shopee. This is a higher-capacity replacement for the standard external battery. Combined with the original external, I will have three batteries total
- Arctic MX-4 thermal paste replacement — the machine is seven years old and the original thermal paste has dried out. Fresh paste means lower CPU temperatures, less thermal throttling, and a quieter fan under sustained load
- Isopropyl alcohol — for cleaning the old paste before applying MX-4
Total investment:
- Laptop: RM1,650
- Internal battery: ~RM120
- Extended external battery: ~RM112
- Thermal paste + IPA: ~RM40
- Total: ~RM1,922 (roughly USD 440)
For that investment, I have a machine with 32GB RAM, 512GB NVMe SSD, a quad-core i7, and an estimated 8-10 hours of battery life with the three-battery setup. A new laptop at this price point would give me 8-16GB RAM, a plastic chassis, and a warranty that exists primarily to upsell extended coverage plans. Instead, I have a legendary business machine with parts available at every IT mall in Malaysia, that I can repair myself or at any local shop for a fraction of manufacturer service costs.
Advice for Buying Refurbished in Malaysia
Having gone through this process, here is what I would tell anyone looking at refurbished laptops in Malaysia:
- Always stress test before paying. Bring a live USB with Ubuntu or Fedora. Boot it, check specs with
lscpu,free -h,lsblk, andupower -d. Verify everything matches the listing - Check battery health specifically. Sellers often replace external batteries with cheap aftermarket cells. Use
upower -i /org/freedesktop/UPower/devices/battery_BAT0to check design capacity, current capacity, and cycle count - Buy local if you can. Online refurbishers like Revibe offer competitive prices, but warranty claims through a courier pipeline to another country add real risk. A local shop where you can walk in gives you accountability
- Target the ThinkPad T480 specifically. It is the sweet spot of the refurbished market in 2026 — powerful enough for modern dev work, repairable, well-supported on Linux, and priced between RM1,000-1,700 depending on configuration
- Budget for upgrades. Internal batteries, thermal paste, and extended batteries are cheap and dramatically improve the daily experience. Factor RM200-300 on top of the purchase price
The Harder Problem: Syncing My Dev Environment
Buying the laptop was the easy part. The harder question was: how do I replicate my entire development environment — including the AI-assisted tooling I depend on — from my PC to this new machine without manually copying config files and hoping nothing breaks?
My PC has a deeply layered configuration. I use Claude Code as my primary AI coding tool, but the behavioural rules, agent definitions, MCP server configs, and project-specific settings are spread across multiple directories with symlinks connecting them. I also have configs for other AI providers — OpenCode, Codex, Kimi — all reading from the same shared behavioural rules via a canonical AGENTS.md file. Manually replicating this on a second machine would take hours, and keeping them in sync afterward would be a maintenance nightmare.
The Solution: Everything Flows Through Git
The answer turned out to be straightforward once I committed to one principle: if it is not in git, it does not exist on the other machine. No peer-to-peer sync. No Syncthing. No rsync cron jobs. The PC pushes to GitHub, the laptop pulls. That is the entire topology.
┌─────────┐ ┌──────────┐ ┌──────────┐
│ PC │ ──push──▶ GitHub │ ──pull──▶ Laptop │
│ (canon) │ │ (remote) │ │ (mirror) │
└─────────┘ └──────────┘ └──────────┘If a config conflict ever arises, the PC wins. The laptop discards its local version and re-pulls. No negotiation, no merge conflicts to resolve manually. One machine is canonical, the other is a mirror.
The Layered Config Architecture
My AI development config is organised into four layers, each with a different scope:
- Layer 1 — Global Claude Code config (
~/.claude/): agents, hooks, rules, settings. Symlinked to~/Projects/AI/claude/in the shared AI repo - Layer 1b — Universal
AGENTS.mdand behavioural layers: coding style, testing, git workflow, security rules. These apply to every AI provider, not just Claude - Layer 2 — All-projects scope (
~/Projects/.claude/): settings that apply to every project on the machine, regardless of which agency or personal project it belongs to - Layer 3 — Webfluentia agency scope (
~/Projects/Webfluentia/.claude/): agency-specific rules like analytics priority, SEO CLI compatibility, and client-specific conventions - Layer 4 — Per-project scope: each repo carries its own
.claude/directory andAGENTS.md, committed directly in the project
Layers 1 through 3 all live in a single git repository (my-ai-tools). Layer 4 is committed inside each project repo. This means two git pulls — one for the AI tools repo, one for each project — give the laptop the complete config state.
The Migration: From Local Directories to Symlinks
Before the laptop, Layers 2 and 3 were just local directories on my PC. They worked fine for a single machine, but they were not version-controlled and could not be synced. I moved them into the shared AI repo under ~/Projects/AI/claude-layers/ and replaced the originals with symlinks:
# Layer 2: all-projects scope
ln -sfn ~/Projects/AI/claude-layers/all-projects ~/Projects/.claude
# Layer 3: Webfluentia agency scope
ln -sfn ~/Projects/AI/claude-layers/webfluentia ~/Projects/Webfluentia/.claudeOn the PC, nothing changed functionally — the symlinks point to the same content. But now that content is tracked in git and pushed to GitHub, which means the laptop can pull it and create the same symlinks.
Machine-Local Overrides
Not everything should sync. Tool paths differ between machines. Hardware-specific tweaks (like display scaling) are irrelevant on the other device. MCP server authentication tokens must never enter a git repository.
Each layer supports a settings.local.json file that is gitignored. This is the escape hatch for machine-specific config. The laptop has its own settings.local.json at each scope level, and these files never leave the machine.
What This Means in Practice
When I sit down at the laptop after making changes on the PC, the routine is:
# Pull the AI config repo
cd ~/Projects/AI && git pull
# Pull the knowledge vault
cd ~/Secrets/KnowledgeVault && git pull
# Pull all project repos
for dir in ~/Projects/Webfluentia/*/; do
[ -d "$dir/.git" ] && (cd "$dir" && git pull)
doneAfter that, every agent definition, every behavioural rule, every hook, and every project-specific config is identical to the PC. The symlinks resolve to the freshly pulled content. I open Claude Code and it loads exactly the same layered config stack. The same applies to OpenCode, Codex, or any other AI tool that reads AGENTS.md — they all share the same canonical behavioural rules file.
The only manual step on initial setup was transferring secrets. The /home/cjvdeg/Secrets/ directory — API keys, .env files, deploy credentials — was copied over an encrypted USB drive. These never touch git. Project .env files are symlinks to paths inside /Secrets/, and those symlinks are committed in each repo, so they resolve correctly on both machines as long as the secrets directory structure matches.
The Full Stack: Hardware Meets Software
This is what I was really building toward: a mobile development setup where the hardware disappears and the environment is identical regardless of which machine I am sitting at. The ThinkPad T480 handles the physical side — enough compute for containers and dev servers, enough battery for a full day of coffee shop work. The git-based sync strategy handles the software side — a single pull brings the laptop up to date with every config change I have made on the PC.
I no longer think of the laptop as a separate environment that needs its own maintenance. It is a window into the same development environment, just with a different screen and keyboard. When I finish working at a coffee shop and switch back to my desk PC, nothing changes except the display resolution. That is exactly what I wanted.
Frequently Asked Questions
Is the ThinkPad T480 still good for development in 2026?
Yes. The 8th gen quad-core i5/i7 handles modern dev workloads well — Nuxt dev servers, Docker/Podman containers, Node.js builds, and multiple browser tabs all run comfortably with 32GB RAM. The limiting factor is single-threaded performance for very heavy builds, but for day-to-day web development it is more than sufficient.
Where can I buy a refurbished ThinkPad T480 in Malaysia?
Options include Revibe Malaysia (my.revibe.me), ithub.com.my in Cheras KL, Shopee, Lazada, and local computer shops in areas like Shah Alam, Lowyat Plaza, and Digital Mall PJ. Local shops let you inspect and test the machine before paying, which I strongly recommend for refurbished hardware.
How do I check battery health on a refurbished ThinkPad?
Boot a Linux live USB and run <code>upower -i /org/freedesktop/UPower/devices/battery_BAT0</code> (and BAT1 for the internal battery). Check design capacity vs current capacity, cycle count, and manufacture date. A battery below 80% design capacity or with 500+ cycles will need replacing soon.
Does the ThinkPad T480 work with Ubuntu out of the box?
Yes, the T480 has excellent Ubuntu and Fedora compatibility. WiFi (Intel 8265), Bluetooth, suspend/resume, the trackpad, and the TrackPoint all work without additional drivers on Ubuntu 22.04 and later. The fingerprint reader requires fprintd but is also supported.
How do I sync my development environment between two Linux machines?
Version control everything. Store your AI config, agent definitions, behavioural rules, and dotfiles in a git repository. Use symlinks from their expected locations to the git-tracked files. One machine is canonical (pushes), the other mirrors (pulls). Machine-specific settings go in gitignored local override files.
What is the ThinkPad T480 Power Bridge battery system?
Power Bridge uses two batteries: a small internal 24Wh cell and a larger hot-swappable external battery. You can remove and replace the external battery while the laptop runs on the internal one, which means you can carry spare batteries for all-day use without ever shutting down.
Is it worth replacing thermal paste on a refurbished laptop?
For a 7-year-old laptop, absolutely. The original thermal compound dries out and loses conductivity over time, causing higher CPU temperatures, more thermal throttling, and louder fan noise. Arctic MX-4 costs about RM25 and the T480 is straightforward to disassemble — the improvement in thermals is immediately noticeable.