2025 - Present
Private client workReal Estate Marketplace
Building and launching a property viewing platform end to end, from SSR performance to the AI that assigns leads to agents.
Senior Full-Stack DevOps Engineer · sole engineer for 6 months
- infra cost reduction across Vercel, Render & APIs
- 80%
- unauthorized usage stopped after finding a leaked API key
- ¥100k/mo
- as the company's sole engineer, zero missed releases
- 6 months
- performance budget gating every deploy
- Lighthouse CI
The Problem
The company needed a real-estate viewing platform (built, launched, and operated) and for six months I was the only engineer to do it, running it in the same period I was sole engineer on an eSIM commerce platform for a sister company. Requirements came directly from the CEO, agents, photographers, and SEO specialists, not from tickets.
In this market the product is search traffic: if listing pages render slowly, rankings drop and the business simply doesn't get seen. The platform I inherited had server-side rendering bottlenecks that made performance a revenue problem, not a polish problem.
Behind the storefront, the operation ran on manual work: leads sat unassigned until someone noticed them, and property data arrived as unstructured listings and 図面 (floor-plan) files that staff re-typed by hand.
The Constraints
A team of one
No second engineer to review code, share on-call, or catch mistakes. Every process had to assume the reviewer, the deployer, and the person debugging at 11pm were the same person.
Non-technical operators
Agents and photographers use the platform daily. The admin console had to be safe for non-engineers, which is why every change is audit-logged and reversible rather than a raw database edit.
SEO is the business
Listing pages live or die by search ranking, so performance regressions are revenue regressions. Performance had to be enforced by machines (Lighthouse CI), not by memory.
Japanese real-estate data
Layouts like 2LDK, areas in ㎡ and tsubo, kanji addresses, and 図面 floor-plan files with no standard format. The data model and extraction pipeline had to handle domain conventions, not just text.
The Architecture
A server-rendered Next.js storefront tuned for search performance, an audit-logged admin console for the operations team, and a Python/PostgreSQL data layer fed by AI extraction, with automation handling the work that used to wait for a human.
- Resolving the SSR bottlenecks came first, then Lighthouse CI budgets went into the pipeline so the regression can never quietly return. Performance is enforced, not remembered.
- Lead assignment is automated: instead of inquiries sitting in a queue until someone notices, the workflow routes each lead to the right agent, the difference between responding in minutes and losing the customer (the triage system has its own case study).
- Property data flows in through scrapers and 図面 floor-plan files; OCR plus Claude extraction turns them into typed, validated records in PostgreSQL (the pipeline has its own case study).
- Everything an agent or admin does is audit-logged and attributable, automation and humans share one review model.
The Trade-offs
Every architecture is a set of bets. These are the ones I made, and what I gave up to make them.
Rendering strategy
Listing pages change a few times a day but are read constantly, and search engines are the most important reader. Cached server rendering gives crawlers fast, complete HTML while keeping infrastructure cost flat.
Admin operations
With non-technical operators touching production data daily, 'who changed what, when' is not bureaucracy, it's how a sole engineer sleeps. Every automated and human edit shares the same reversible trail.
Lead routing
Speed-to-first-response decides whether a lead converts. Automating the routing removed the queue entirely, while keeping assignments visible and overridable in the console rather than hidden inside a black box.
Infrastructure
I know AWS well, but managed platforms are the right call when the entire ops team is one person. I recovered the cost difference by right-sizing, caching, and auditing usage: 80% off the bill without taking on server ops.
The Outcome
The platform launched, got fast, got cheap, and stopped depending on manual work, while I remained final reviewer for every production release.
- Built and launched the platform working directly with the CEO, marketing, design, and UI/UX teams, then kept every release cycle on schedule as sole engineer.
- Resolved the SSR bottlenecks and wired Lighthouse CI into the pipeline, turning performance from a hope into a budget every deploy must pass.
- Shipped the audit-logged admin console and AI-automated lead assignment, replacing manual triage in collaboration with the CEO, agents, photographers, and SEO specialists.
- Cut infrastructure costs 80% across Vercel, Render, and API usage, and treating the bill as telemetry surfaced a leaked API key costing ¥100,000/month in unauthorized usage, which I revoked, rotated, and locked down (along with domains and DNS for all company web properties).
Lessons Learned
Cost is an observability problem
The leaked API key wasn't found by a security scan, it surfaced because I treated the bill as telemetry and investigated a line item that didn't match traffic. Monitor spend the way you monitor errors.
Performance is a business metric wearing a technical costume
For an SEO-driven marketplace, LCP isn't a vanity number, it's distribution. Putting Lighthouse in CI reframed performance from 'engineering pride' to 'a budget the business owns.'
Automate the queue, not the judgment
Lead assignment and data extraction removed waiting, not decision-making, agents still own the relationship and humans still review the uncertain cases. The best automation makes the team faster without making it blind.