I am applying for this role – help me identify what skills, knowledge and experience they are looking for:
(I copy and paste the text into the prompt. You can also attach the file with the +)
This job description points to someone who is a Linux systems administrator with strong hardware support experience, combined with a customer-focused support mindset. The role sits somewhere between Linux Systems Administrator, Infrastructure Engineer, and Hardware Lab Engineer.
Here’s a breakdown of what Graphcore appears to value most.
| Priority | Skill/Knowledge | What they’re looking for |
|---|---|---|
| ⭐⭐⭐⭐⭐ | Linux Administration | Confident administering Debian/Ubuntu and RedHat-based systems, troubleshooting services, users, permissions, packages, networking, storage, system logs and performance. |
| ⭐⭐⭐⭐⭐ | Troubleshooting | Systematic diagnosis of hardware, OS and networking issues. Ability to isolate root causes rather than just applying fixes. |
| ⭐⭐⭐⭐⭐ | Customer Support | Supporting engineers in a fast-paced environment, communicating clearly, prioritising tickets, and providing good customer service. |
| ⭐⭐⭐⭐☆ | Server Hardware | Installing, maintaining and repairing physical servers, firmware updates, BIOS, rack equipment and lab infrastructure. |
| ⭐⭐⭐⭐☆ | Networking | Practical networking knowledge including VLANs, VPNs, routing, subnetting and Wi-Fi. |
| ⭐⭐⭐⭐☆ | Infrastructure Automation | Managing systems using Ansible, Puppet or similar Infrastructure-as-Code tools. |
| ⭐⭐⭐⭐☆ | Documentation | Writing clear technical documentation and maintaining knowledge bases. |
| ⭐⭐⭐☆☆ | Performance Analysis | Diagnosing CPU, RAM, storage and network bottlenecks. |
| ⭐⭐⭐☆☆ | Monitoring | Using tools like Prometheus, Grafana, Zabbix or OpenTelemetry. |
| ⭐⭐⭐☆☆ | Containers | Docker and Kubernetes basics. |
| ⭐⭐⭐☆☆ | Python | Automating tasks, interacting with APIs and writing small utilities. |
Technical skills they’re assessing
Linux Administration (probably the biggest area)
They’ll likely expect experience with:
- Ubuntu/Debian
- RHEL/Rocky/Alma/CentOS
- Bash scripting
- SSH
- systemd
- Package management (apt/yum/dnf)
- User/group management
- Permissions
- Storage and filesystems
- Log analysis
- Service troubleshooting
- Kernel updates
- Remote administration
Interview questions may include:
“A server won’t boot after an update. What do you check?”
or
“A service won’t start. How would you troubleshoot it?”
Hardware & Lab Support
Unlike a typical IT support role, this involves physical hardware.
Knowledge areas include:
- Rack mounting servers
- BIOS configuration
- Firmware updates
- Replacing disks
- Memory troubleshooting
- Cabling
- Power Distribution Units (PDUs)
- BMCs (iLO, iDRAC, IPMI)
- Out-of-band management
They want someone comfortable working around hardware as well as Linux.
Networking
Not a network engineer, but they expect solid fundamentals.
Know:
- TCP/IP
- DNS
- DHCP
- VLANs
- VPNs
- Routing
- NAT
- Subnetting
- Firewalls
- Switch ports
- SSH connectivity
Expect troubleshooting questions like:
“A server cannot reach another VLAN.”
Infrastructure as Code
This is a significant clue that they don’t want manual administration.
They mention:
- Puppet
- Ansible
So they’d value experience with:
- Configuration management
- Automated deployments
- Playbooks
- Idempotency
- Managing large numbers of servers
Monitoring
Nice to have rather than essential.
Experience with:
- Prometheus
- Grafana
- Zabbix
- Alerting
- Metrics
- Logs
- OpenTelemetry
Containers
Again desirable rather than essential.
Knowledge of:
- Docker
- containerd
- Kubernetes basics
- Images
- Containers
- Volumes
- Networking
Python
Not software engineering.
They specifically mention:
- interacting with APIs
- processing data
- small applications
So examples like:
- automation scripts
- REST API calls
- log parsing
- report generation
would be ideal.
Soft skills they repeatedly emphasise
These are mentioned several times, suggesting they matter.
Customer service
You’ll be supporting engineers.
They want someone who:
- communicates clearly
- keeps users informed
- explains technical issues
- prioritises requests
Methodical troubleshooting
Notice the wording:
“methodical problem-solving”
They care about process.
Examples:
- Gather information
- Reproduce issue
- Form hypotheses
- Test
- Verify
- Document
Documentation
They specifically mention:
maintaining a clear, up-to-date internal knowledge base
This means they value someone who leaves systems easier to support after resolving issues.
Teamwork
The description repeatedly talks about:
- sharing knowledge
- multidisciplinary team
- collaborating
- supporting colleagues
The ideal candidate probably has experience like:
- Linux Systems Administrator
- Infrastructure Engineer
- Data Centre Technician
- Hardware Support Engineer
- DevOps Engineer (junior)
- Research Computing Support
- HPC Support Engineer
- Technical Support Engineer (Linux)
Keywords worth including in your CV
Many applicant tracking systems (ATS) look for relevant terms. Based on the description, these include:
- Linux Administration
- Debian
- Ubuntu
- Red Hat
- RHEL
- Bash
- Shell Scripting
- Troubleshooting
- Root Cause Analysis
- Server Hardware
- BIOS
- Firmware
- BMC
- IPMI
- iDRAC
- Rack Mounting
- Infrastructure as Code
- Ansible
- Puppet
- Networking
- VLAN
- VPN
- TCP/IP
- DNS
- DHCP
- Routing
- Subnetting
- Docker
- Kubernetes
- Python
- Prometheus
- Grafana
- Zabbix
- Documentation
- Customer Support
- Ticket Management
- Linux Server Support
What I’d infer they’re really hiring for
Beyond the checklist, this role appears to be looking for someone who can act as the “go-to” Linux infrastructure engineer for a hardware lab. You’ll likely spend your time:
- Supporting engineers who depend on Linux systems for AI hardware development.
- Keeping servers, lab equipment, and infrastructure available and reliable.
- Diagnosing issues across hardware, operating systems, and networks.
- Automating repetitive administration tasks where possible.
- Working comfortably with both physical equipment in the lab and remote Linux administration.
- Providing responsive, professional support while documenting solutions for the wider team.
For your application, I’d emphasise examples that demonstrate hands-on Linux administration, structured troubleshooting, automation (especially with Ansible, Puppet, or scripting), networking fundamentals, and experience supporting technical users in a collaborative environment. These align closely with the role’s essential requirements.
Questions
formulate 30 technical interview questions – 5 basic, 15 medium, and 10 advanced – for me to be able to strongly demonstrate my suitability for this role
For this role, I’d expect the interview to focus less on textbook knowledge and more on how you troubleshoot, explain your reasoning, and balance Linux, networking, and hardware support. Below are 30 questions arranged by difficulty that closely reflect what a Graphcore Lab Support Engineer is likely to encounter.
Basic (5)
These establish that you have solid Linux administration fundamentals.
1. What happens during the Linux boot process?
They want to hear about:
- BIOS/UEFI
- Bootloader (GRUB)
- Kernel loading
- initramfs
- systemd
- Starting services
2. How would you find why a Linux service won’t start?
Mention:
systemctl statusjournalctl- logs
- dependencies
- configuration files
- permissions
- ports already in use
3. Explain the difference between a process and a service.
Should cover:
- Process = running program
- Service = managed by systemd
- Background execution
- Restart policies
4. What is SSH and how would you troubleshoot an SSH connection failure?
Expected discussion:
- Network connectivity
- DNS
- Firewall
- SSH daemon
- Authentication
- Permissions
- Logs
5. Explain the difference between DHCP and DNS.
A classic support question.
Medium (15)
These are the kinds of questions I’d genuinely expect.
Linux Administration
6. A server suddenly runs very slowly. How would you investigate?
Discuss:
- CPU
- RAM
- Disk I/O
- Network
- Load averages
- Processes
Commands like:
top
htop
vmstat
iostat
iotop
free
sar
7. A filesystem is full. What steps would you take?
Include:
dfdu- logs
- deleted-but-open files
- inodes
- cleanup
8. Explain file permissions, ownership and ACLs.
9. How would you diagnose high CPU usage?
10. What is systemd and why is it important?
Networking
11. A server cannot communicate with another server. How do you troubleshoot?
A good structure:
- Ping
- IP configuration
- Routes
- DNS
- Firewall
- Switch
- VLAN
- Application
12. Explain VLANs.
Not just the definition.
Explain why they’re useful.
13. What is subnetting?
You should be able to calculate one.
14. Explain the difference between TCP and UDP.
15. What happens when you type a website address into a browser?
A favourite interview question.
Hardware
16. A server won’t power on. What checks do you perform?
Expected:
- PSU
- Power
- PDU
- LEDs
- BMC
- Motherboard
- Memory
- POST
17. Explain what a BMC is.
Mention:
- IPMI
- iLO
- iDRAC
- Remote console
- Power cycling
18. Why are firmware and BIOS updates important?
Automation
19. What is Infrastructure as Code?
Explain:
- Repeatability
- Version control
- Automation
- Consistency
20. Have you used Ansible? Describe a playbook you’ve written.
Even a small one.
Advanced (10)
These assess whether you can operate independently.
Linux
21. A Linux server randomly freezes every few days. How would you investigate?
Discuss:
- Logs
- Hardware
- Memory
- Disk
- Kernel panic
- Drivers
- Monitoring
- SMART
- Crash dumps
22. A process is consuming memory continuously. How would you determine whether it’s a memory leak?
23. Explain Linux namespaces and cgroups.
Useful for containers.
Performance
24. How would you identify whether poor application performance is caused by:
- CPU
- RAM
- Storage
- Network
They want structured diagnosis.
25. A build farm becomes much slower after adding new servers. How would you investigate?
Excellent systems thinking question.
Networking
26. Explain the complete journey of a packet across different VLANs.
Include:
- ARP
- Gateway
- Routing
- MAC tables
- Switches
27. A server can ping another host but cannot access a web service. What might be wrong?
Potential causes:
- Firewall
- Ports
- Reverse proxy
- TLS
- Application
- SELinux
Infrastructure
28. Describe how you would provision 100 Linux servers from scratch.
Should include:
- PXE
- Imaging
- Kickstart
- Cloud-init
- Ansible
- Puppet
- Monitoring
- Documentation
Python
29. Write a Python script that:
- reads server names
- pings each one
- writes the results to a CSV
They may ask you to write or explain code on a whiteboard.
Scenario
30. It’s 10:00am.
Three engineers report:
- one server won’t boot
- another has lost network connectivity
- a Kubernetes cluster is unhealthy
- your ticket queue has 25 open incidents
How do you prioritise your work?
This is really testing:
- communication
- incident management
- triage
- escalation
- customer support
Questions I’d expect to be the highest value
If I had to bet on what Graphcore is most likely to ask, these would be near the top of the list:
- Walk me through your Linux troubleshooting methodology.
- A server is slow. What do you check first?
- Explain VLANs and subnetting.
- Describe a difficult Linux problem you’ve solved.
- How do you troubleshoot an SSH failure?
- Tell us about your experience with server hardware.
- Explain Ansible and how you’ve used it.
- How do you diagnose CPU, RAM, storage, or network bottlenecks?
- What monitoring tools have you used and what metrics do you watch?
- How do you balance multiple support requests while keeping users informed?
These questions align closely with the role’s emphasis on Linux administration, hardware labs, networking, automation, troubleshooting, and customer support, and preparing strong, structured answers to them would put you in a good position for the interview.
Answers
Give me strong answers along with keywords for these 30 questions
For this role, I’d answer using a consistent structure that interviewers appreciate:
Understand the problem → Gather evidence → Form hypotheses → Test systematically → Resolve → Verify → Document → Prevent recurrence
That demonstrates methodical troubleshooting, which Graphcore explicitly lists as an essential skill.
1. What happens during the Linux boot process?
Strong answer
“When a Linux machine powers on, the BIOS or UEFI performs POST to initialise hardware. It then looks for a boot device and loads the bootloader, usually GRUB. GRUB loads the Linux kernel and the initramfs into memory. The kernel detects hardware, mounts the initial root filesystem, and starts PID 1, which on modern systems is systemd. Systemd then starts services according to dependencies until the machine reaches its target state, such as multi-user or graphical mode.”
Keywords
- BIOS
- UEFI
- POST
- GRUB
- Kernel
- initramfs
- systemd
- PID 1
- Targets
2. A Linux service won’t start.
Strong answer
“I would first check systemctl status to understand the failure. Then I’d examine logs using journalctl. I’d verify the service configuration, permissions, dependencies, available ports, disk space, and SELinux or AppArmor if applicable. Once I’ve identified the root cause, I’d correct it, restart the service, confirm functionality, and document the resolution.”
Keywords
- systemctl
- journalctl
- Logs
- Dependencies
- Configuration
- Permissions
- Root cause
- Verification
3. Difference between a process and a service
Strong answer
“A process is simply a running program with its own PID. A service is a long-running background process managed by systemd, which provides automatic startup, restart policies, logging integration, and dependency management.”
Keywords
- PID
- Daemon
- systemd
- Background
- Restart policy
4. SSH won’t connect.
Strong answer
“I start by confirming basic network connectivity with ping or traceroute. I verify DNS resolution, check the SSH daemon is running, ensure port 22 is listening using ss or netstat, review firewall rules, confirm authentication settings, inspect permissions on ~/.ssh, and finally review /var/log/auth.log or the journal for authentication failures.”
Keywords
- SSH
- Firewall
- DNS
- Port 22
- sshd
- Authentication
- Authorized keys
- Logs
5. DHCP vs DNS
Strong answer
“DHCP dynamically assigns IP configuration such as IP address, gateway and DNS servers. DNS translates human-readable names into IP addresses so systems can locate services.”
Keywords
- IP assignment
- Hostnames
- Name resolution
- Gateway
6. Server is slow
Strong answer
“I determine whether the bottleneck is CPU, memory, storage or networking. I’d use top or htop for CPU, free and vmstat for memory, iostat and iotop for storage, and sar or iftop for networking. I’d compare current utilisation with historical monitoring data before identifying the root cause.”
Keywords
- Load average
- CPU
- RAM
- I/O wait
- Bottleneck
- Monitoring
- Baseline
7. Filesystem full
Strong answer
“I’d use df to identify which filesystem is full, then du to locate large directories. I’d check log files, temporary files, deleted-but-open files with lsof, inode usage, archive unnecessary data, and confirm enough free space exists afterwards.”
Keywords
- df
- du
- lsof
- Inodes
- Cleanup
8. Explain permissions
Strong answer
“Linux permissions are based on owner, group and others, with read, write and execute bits. Ownership is controlled using chown and permissions with chmod. ACLs provide finer-grained access control where traditional permissions aren’t sufficient.”
Keywords
- chmod
- chown
- ACL
- Owner
- Group
9. High CPU usage
Strong answer
“I’d identify the process using top or ps, determine whether it’s expected behaviour, investigate whether it’s CPU-bound or waiting on I/O, check logs, and correlate findings with recent changes before deciding whether optimisation, scaling or restarting is appropriate.”
Keywords
- top
- ps
- Load
- Profiling
- Optimisation
10. What is systemd?
Strong answer
“Systemd is Linux’s init system responsible for booting the operating system, managing services, handling dependencies, logging through journald and controlling system targets.”
Keywords
- Init
- Services
- Targets
- Journald
11. Servers can’t communicate
Strong answer
“My troubleshooting follows the OSI model. First I verify physical connectivity, then IP addressing, routing tables, VLAN membership, DNS resolution, firewall rules and finally application-layer services.”
Keywords
- OSI
- Routing
- Firewall
- VLAN
- DNS
12. Explain VLANs
Strong answer
“VLANs logically separate networks on the same physical switch. They improve security, reduce broadcast traffic and simplify network management.”
Keywords
- Layer 2
- Broadcast domain
- Segmentation
- Security
13. Explain subnetting
Strong answer
“Subnetting divides networks into smaller segments, improving routing efficiency and reducing broadcast traffic. I understand CIDR notation and can calculate usable host ranges.”
Keywords
- CIDR
- Mask
- Broadcast
- Gateway
14. TCP vs UDP
Strong answer
“TCP is reliable, connection-oriented and guarantees ordered delivery. UDP is connectionless, faster and used where low latency matters more than guaranteed delivery.”
Keywords
- Reliable
- Connection-oriented
- Datagram
- Low latency
15. Browser request
Strong answer
Discuss:
DNS
ARP
TCP handshake
TLS
HTTP request
Response
Rendering
16. Server won’t power on
Strong answer
“I’d verify power sources, PSU LEDs, PDU status, cabling, BMC access, POST messages, memory seating and hardware faults before replacing components.”
Keywords
- POST
- PSU
- BMC
- PDU
17. BMC
Strong answer
“A Baseboard Management Controller provides out-of-band management allowing remote power control, console access and hardware monitoring even when the operating system is unavailable.”
Keywords
- IPMI
- iLO
- iDRAC
- Remote console
18. Firmware updates
Strong answer
“They improve security, fix hardware bugs, improve compatibility and reliability. Updates should be tested, documented and scheduled to minimise downtime.”
Keywords
- Compatibility
- Security
- Maintenance window
19. Infrastructure as Code
Strong answer
“Infrastructure as Code automates server configuration through version-controlled definitions, providing consistency, repeatability and easier disaster recovery.”
Keywords
- Automation
- Version control
- Idempotent
- Repeatable
20. Ansible
Strong answer
“I’ve used Ansible to automate package installation, configure services, deploy configuration files and enforce consistent server configurations across multiple hosts.”
Keywords
- Playbook
- Inventory
- YAML
- Modules
- SSH
21. Server freezes
Strong answer
“I’d review logs, kernel messages, hardware monitoring, SMART disk status, memory tests, kernel panic reports, recent changes and monitoring history to isolate whether the issue is hardware or software.”
Keywords
- dmesg
- SMART
- memtest
- Kernel panic
22. Memory leak
Strong answer
“I’d monitor memory growth over time, compare RSS and VSZ values, analyse application metrics, inspect heap usage where possible, and determine whether restarting temporarily resolves the issue while investigating the underlying cause.”
Keywords
- RSS
- VSZ
- Heap
- Leak
23. Namespaces and cgroups
Strong answer
“Namespaces isolate resources such as processes, networking and filesystems, while cgroups control resource allocation such as CPU and memory. Together they underpin Linux containers.”
Keywords
- Isolation
- Resource limits
- Containers
24. Performance bottlenecks
Strong answer
“I isolate each resource individually. CPU with top and mpstat, memory with vmstat and free, storage using iostat, network using sar and iftop. I correlate metrics rather than assuming the first symptom is the cause.”
Keywords
- Correlation
- Metrics
- Bottleneck
25. Build farm slows after expansion
Strong answer
“I’d compare before-and-after performance, investigate network changes, storage contention, scheduling algorithms, configuration drift, DNS, load balancing and monitoring data before forming conclusions.”
Keywords
- Baseline
- Regression
- Configuration drift
26. Packet across VLANs
Strong answer
“A host first resolves the gateway MAC using ARP. The packet reaches the default gateway, which routes between VLANs, rewrites the Layer 2 headers and forwards it to the destination VLAN.”
Keywords
- ARP
- Routing
- Gateway
- MAC
27. Ping works but website doesn’t
Strong answer
“This indicates basic connectivity exists. I’d investigate firewall rules, web server status, reverse proxy configuration, TLS certificates, DNS resolution, SELinux, and application logs.”
Keywords
- nginx
- HAProxy
- TLS
- HTTP
- Port 80
- Port 443
28. Provision 100 servers
Strong answer
“I’d use PXE boot with Kickstart or cloud-init, automate configuration with Ansible, integrate monitoring and logging, validate builds through testing, and document the deployment process.”
Keywords
- PXE
- Kickstart
- Cloud-init
- Ansible
- CI/CD
29. Python automation
Strong answer
“I’d write modular Python code using subprocess or libraries like paramiko or requests, implement exception handling, log results, and export data in CSV or JSON format.”
Keywords
- requests
- subprocess
- CSV
- JSON
- Exception handling
30. Prioritisation scenario
Strong answer
“I’d assess business impact and urgency first. A server that won’t boot or a Kubernetes outage affecting multiple engineers would typically take precedence over lower-impact incidents. I’d acknowledge all tickets promptly, communicate expected timelines, escalate where necessary, document progress, and keep stakeholders updated throughout. Once critical services are restored, I’d return to the remaining incidents in priority order and identify any preventive actions.”
Keywords
- Impact
- Urgency
- Triage
- Communication
- Escalation
- Stakeholder management
- Incident management
- Documentation
Interview tip
Across all of these answers, emphasize not just what you would do, but why. Interviewers at Graphcore are likely to value a structured approach to diagnosis over memorizing commands. A good pattern to follow is:
- Clarify the symptoms.
- Gather evidence before making changes.
- Form and test hypotheses methodically.
- Resolve the issue with minimal disruption.
- Verify the fix.
- Document the solution and consider how to prevent similar issues.
This approach aligns closely with the role’s focus on Linux administration, hardware support, customer service, and methodical problem-solving.