interview prep · webhosting administrator

Get the offer, not just the interview.

Nguyen Hoang Lam — Cloud / DevOps Engineer. Tailored talking points for a customer interview with an international, US-based team.

2+ yrs infra ops AWS · Azure Linux · Nginx CI/CD · Terraform K8s · Docker

// 01

Self-Introduction  ~150 words

My name is Nguyen Hoang Lam, a Cloud/DevOps Engineer with over two years of hands-on experience operating high-availability infrastructure on AWS and Azure. I currently work at FPT Software supporting MyZoi, a fintech e-wallet platform, where I manage Linux servers, web application deployments, CI/CD pipelines, and 24/7 incident response. My daily work covers exactly the areas in this role — DNS, SSL/TLS certificates, SSH access, TCP/IP networking, and troubleshooting production issues through CloudWatch and Datadog. I automate operational tasks with Bash and Python, provision infrastructure with Terraform, and run containerized workloads on Kubernetes. I've also administered Azure Virtual Machines and Windows Server on an enterprise project. I enjoy the hosting and reliability side of engineering — keeping systems available, fast, and stable — and I'm comfortable working in English with international teams. I'm excited to bring this experience to your team and grow further in web hosting and cloud infrastructure.

deliverySpeak slowly. Land the first two sentences clearly (name + role + years), then let the JD-matching skills flow. Don't rush the ending.

// 02

Opening & Screening Questions

The interviewer usually opens with these. Answer with calm confidence — they set the tone for everything after.

Do you understand what this role is and what the work involves?

Yes. This is a web hosting administrator role — keeping hosting systems available, performant, and stable, and supporting the applications that run on them. Concretely, I understand it covers:

  • Web servers & hosting — IIS on Windows and Nginx/Apache on Linux, plus the Windows Services and Linux daemons that keep applications running.
  • Deploying & supporting apps — .NET, Java, and Python applications on server environments.
  • Hosting services — DNS, SSL/TLS, SSH, FTP/SFTP, and TCP/IP networking.
  • Cloud & orchestration — Azure cloud hosting and Kubernetes environments.
  • DevOps & automation — CI/CD pipelines, Infrastructure as Code with Terraform, and SSO / identity configuration.
  • Operations — monitoring, troubleshooting incidents, and collaborating with developers and the US-based team.
Most of this overlaps directly with what I do today on AWS and Azure, so I'm comfortable stepping into it — and keen to go deeper on the Windows/IIS and Azure DevOps side.
Do you understand the working hours / schedule?

Yes — I understand the work is shift-based and can include night shifts, and I'm fully comfortable with that. I already have 24/7 on-call and incident-response experience, so working in rotation and covering off-hours is normal for me, especially to give proper coverage across the US time zone.

Why are you leaving your current job for this one?

My main motivation is learning and growing. I've built a solid foundation in cloud operations, and I'm looking for a role where I can broaden my skills further — deeper hosting and Windows/IIS work, more Azure and Azure DevOps, and steady exposure to an international, English-speaking team. This role fits that direction well, and I see it as a place where I can keep developing while contributing from day one.

toneKeep it forward-looking — framed as moving toward growth, never as running away. Don't criticize your current or previous employer.

// 03

Technical Q&A — Hosting Fundamentals

Maps to “Manage hosting services: DNS, SSL, SSH, FTP, TCP/IP” and “Deploy & support web applications (.NET, Java, Python).”

Walk me through what happens when a user types your site's URL and hits Enter.
  • DNS resolution — browser cache → OS resolver → recursive resolver → root/TLD/authoritative servers → returns the A/AAAA record (IP).
  • TCP handshake — client opens a connection to the server on port 80/443.
  • TLS handshake (if HTTPS) — certificate is presented and validated, session keys negotiated.
  • HTTP request hits the web server (Nginx / Apache / IIS).
  • The web server either serves static content or reverse-proxies to the app (Kestrel for .NET, Tomcat/JVM for Java, gunicorn for Python).
  • Response returns to the browser.
I've configured this full path end-to-end on EC2 — Nginx on Amazon Linux, Route 53 for DNS, and ACM for the TLS certificate.
How do you set up SSL/TLS, and how does renewal work?
  • Managed: AWS ACM certificate attached to an ALB/CloudFront — auto-renewed, no manual work. Azure App Service Managed Certificates work similarly.
  • On the server: Let's Encrypt via certbot — obtains the cert through an HTTP-01 or DNS-01 challenge, installs it into Nginx, and a systemd timer / cron job auto-renews roughly every 60 days.
  • Force HTTP → HTTPS redirect, enforce TLS 1.2/1.3, disable weak ciphers.
  • Check expiry from the CLI:
bash
$ echo | openssl s_client -connect example.com:443 2>/dev/null \
    | openssl x509 -noout -dates
# notBefore / notAfter tell you the validity window
Difference between Nginx, Apache, and IIS? When do you use a reverse proxy?
  • Nginx — event-driven, excellent for static content, reverse proxy, load balancing, high concurrency.
  • Apache — process/thread-based, very flexible with modules and .htaccess.
  • IIS — Windows-native, tight integration with ASP.NET / .NET.
  • A reverse proxy sits in front of app servers to terminate TLS, load balance, cache, serve static assets, and hide the backend. I typically run Nginx as a reverse proxy in front of app processes/containers.
How would you deploy a .NET / Java / Python app on a Linux server?

General pattern — the principle is the same across stacks:

  1. Install the runtime — .NET runtime, JDK/Tomcat, or Python + virtualenv.
  2. Run the app as a systemd service so it restarts on failure and starts on boot.
  3. Put Nginx in front as a reverse proxy handling TLS and routing to the app's port.
  4. Lock down the firewall / security group — expose only 80/443, keep the app port internal.
  • .NET on Linux → Kestrel behind Nginx.
  • Java → jar/war under Tomcat, or a fat jar as a systemd service.
  • Python → gunicorn/uWSGI behind Nginx.
I recently set up systemd services with Nginx on Amazon Linux for exactly this reverse-proxy pattern.

// 04

Technical Q&A — Networking

Common DNS record types?
  • A (name → IPv4), AAAA (IPv6), CNAME (alias), MX (mail), TXT (SPF/DKIM/verification), NS, SOA.
In Route 53 I use A/ALIAS records pointing to an ALB or CloudFront, CNAMEs for certificate validation, and TXT records for domain verification.
A developer says they can't reach the server. How do you troubleshoot connectivity?

Work layer by layer:

connectivity check
$ dig app.example.com        # does DNS resolve to the right IP?
$ ping app.example.com       # reachable? (ICMP may be blocked)
$ nc -zv app.example.com 443 # is that port actually open?
$ ss -tlnp                   # is the service listening? (on server)
# then check: security group / firewall rules, app running, logs

Key skill: isolating whether it's DNS vs network vs firewall vs app-down.

SSH vs FTP — how do you handle secure file transfer and access?
  • Prefer SSH / SFTP (encrypted, port 22) over plain FTP (port 21, cleartext credentials).
  • Harden SSH: key-based auth, disable root login, disable password auth, restrict source IPs via security groups, use a bastion host.
  • If FTP is required for a legacy system, use FTPS or SFTP instead of plain FTP.

// 05

Real-Case Troubleshooting — your strongest section

Tell me about a production incident you diagnosed and resolved. (STAR)
  • Situation: A MyZoi service was intermittently returning 502 errors from the ALB, affecting availability.
  • Task: Find the root cause and restore stability without a risky broad rollback.
  • Action: I checked the ALB target group health and saw targets flapping unhealthy. I correlated this with pod restarts and traced it to a misconfigured readiness probe — the probe path/timing was wrong, so Kubernetes marked healthy pods as not-ready. The ALB pulled them out and routed requests to terminating pods → 502s. I corrected the readiness probe (path, timeout, and thresholds) and verified targets stayed healthy.
  • Result: The 502s were eliminated and deployments became stable.
  • Lesson: Health-check and probe configuration is critical for availability behind any load balancer.
anchorThis one answer covers monitoring, troubleshooting, load balancing, and RCA. Lead with it whenever they ask about incidents.
A website is slow or returning 5xx errors. Walk me through your approach.
  1. Scope it — all users or some? Which endpoint? When did it start?
  2. Check monitoring — CloudWatch/Datadog dashboards for CPU, memory, latency, error rate.
  3. Check logs — web server + application logs.
  4. Check upstream — database (I've tuned slow queries via Performance Insights + indexing), external dependencies, connection-pool exhaustion.
  5. Check infra — one node vs all, disk full, memory pressure.
  6. Correlate with recent deploys — roll back if needed.
  7. Communicate status and follow the runbook.
A server is at high CPU / low disk. How do you diagnose?
  • CPU: top / htop, identify the process, check for a runaway thread or traffic spike.
  • Disk: df -h for usage, du -sh * to find large dirs, check log growth → set up log rotation.
  • Memory: free -m, check for leaks / OOM in dmesg.

// 06

CI/CD, Automation & Cloud

Maps to “Contribute to CI/CD, automation” and “Support Azure/Kubernetes.”

Describe a CI/CD pipeline you've worked with.
  • GitHub Actions builds and tests, then pushes a container image to a registry.
  • GitOps with ArgoCD syncs manifests to the cluster (ArgoCD runs helm template and applies the result — declarative, auditable).
  • Terraform provisions the infrastructure.
  • Benefits: consistency, full audit trail, and fast rollbacks via git revert.
  • For simpler hosting I can also do build → artifact → deploy over SSH/rsync → restart the systemd service.
if askedAzure DevOps or Jenkins? “The concepts are identical — build, test, artifact, deploy stages. I'd ramp up on the specific tool quickly.”
How do you automate repetitive operational tasks?
  • Bash/Python for backups, health checks, log rotation, and alerting.
  • Example: CloudWatch alarm → SNS → Lambda → Slack notification.
  • Scheduling via cron / systemd timers, or EventBridge Scheduler + Lambda for cloud-native jobs.
What's your Azure experience?
On the Royale project I administered Azure Virtual Machines and Windows Server 2016/2019 — provisioning, patching, health monitoring, and networking (NICs, DNS, firewall rules). I also supported Microsoft 365 admin, VDI, Exchange Online, and Citrix, following ITIL and meeting SLA targets. I'm comfortable in the Azure portal and can pick up Azure DevOps pipelines quickly.
Explain containers and Kubernetes in simple terms.
  • A container packages an app + its dependencies so it runs the same everywhere — lighter than a VM because it shares the host kernel.
  • Kubernetes orchestrates containers: Pods, Deployments, Services, Ingress — handling scaling, self-healing, and rolling updates.
I operate around 40 microservices on EKS with ArgoCD, so I work with these concepts daily.

// 07

Behavioral & Fit

How do you handle collaboration with US-based teams and night/off-hours work?
I have 24/7 on-call and incident experience, so off-hours response is normal for me. For time-zone gaps I rely on clear written communication — tickets, runbooks, and status updates — plus async handoffs and overlap windows. I'm willing to work night shifts when required.
noteThis directly answers the “Willing to work night shift” nice-to-have — say it confidently.
How do you keep systems reliable and prevent repeat incidents?
  • Proactive monitoring + alerting to catch issues early.
  • Root-cause analysis on recurring incidents.
  • Runbooks so anyone on the team can respond consistently.
  • Preventive automation for the fixes.
On MyZoi, RCA plus runbooks measurably reduced repeat incidents.

// 08

Handling the Gaps — be honest, then pivot

This role deploys .NET and Java apps — how comfortable are you?
My hands-on work has been mostly Python and containerized apps, but the deployment principles are identical — runtime setup, reverse proxy config, systemd services, and firewall rules. I understand Kestrel for .NET, Tomcat/JVM for Java, and gunicorn for Python, and I ramp up on new stacks quickly.
Do you have FTP / Ansible experience?
I work daily with SSH and SFTP and understand FTP concepts, including active/passive modes and why FTPS/SFTP are preferred for security. I haven't used Ansible hands-on, but I have strong IaC experience with Terraform and understand configuration management well — I'd pick it up fast.

// 09

Smart Questions to Ask Them

Asking good questions signals seniority and genuine interest.

  1. What web servers and OS mix are most common in your hosting environment (Nginx/Apache/IIS, Linux vs Windows)?
  2. How is the on-call / night-shift rotation structured across time zones?
  3. What does the CI/CD stack look like today — Azure DevOps, GitHub Actions, or Jenkins?
  4. What are the biggest reliability or hosting challenges the team is trying to solve right now?
  5. What does success in this role look like in the first 3–6 months?

// 10

Pre-Interview Checklist