Zoox Software Engineer Interview Experience — Go Trivia Output Prediction and Roller Coaster Coding on Onsite Day One

Zoox·Software Engineer·Oct 2026
OnsiteIn progressmedium

My onsite is split over two days, and the first day was only trivia + coding. I had been practicing in Python, but when I heard there would be a trivia round, I asked to switch to Go, since I use Go more in my day-to-day work and Go has fewer things they can ask trivia about. The interviewer did not ask any conceptual questions. He just gave me code and had me predict the output.

Question 1:

package main
import "fmt"
func foo(a []int) []int {
    a = append(a, len(a))
    return a
}
func main() {
    x := []int{1, 2, 3, 0, 0, 0, 0}
    y := x[:3]
    z := foo(y)
    fmt.Println(x)
    fmt.Println(y)
    fmt.Println(z)
}

Question 2:

package main
import "fmt"
func main() {
    var a []*int
    for i := 0; i < 3; i++ {
        a = append(a, &i)
    }
    for _, b := range a {
        fmt.Println(*b)
    }
}

I got the first one right and the second one wrong. I knew the loop variable semantics changed around Go 1.21, but I thought it only applied to loops like for a := range something, so I didn't bring it up. I told the interviewer that i is a local variable that is no longer available once the loop ends, so using a pointer to it would panic. The interviewer himself said the second question was not very fair, because the behavior depends on the Go version. I don't know if he really meant to cut me some slack or was just being polite.

The coding question was the classic roller coaster. I had practiced it once, but I still didn't finish. I only implemented one kind of roller coaster, and told the interviewer I would implement the rest of the program first and come back to the other roller coasters if there was time. Sure enough I ran out of time, but the interviewer said the remaining roller coasters were basically copy-paste, so it was fine.

During the implementation there were a lot of places that needed error handling, and the interviewer said I could skip it for now. At the end he asked what else I would improve if I had more time, besides error handling. I mentioned two things:

  • If the input has a lot of lines, I should process it line by line instead of reading the whole thing into a slice.
  • I should write a Register() function to register the roller coasters instead of using a switch case. I actually thought of this while writing, but I forgot how to set up the Factory.

I don't know whether this round counts as a fail. I continue with the other onsite rounds next Tuesday.

Published

Curated and edited by PracHub

Practice the questions from this interview

Discussion

Sign in to join the discussion. The author is notified of every comment.

Loading comments…

Interview at a glance

Company
Zoox
Role
Software Engineer
Rounds
Onsite
Outcome
In progress
Difficulty
medium
Interview date
Oct 2026
Questions from this interview
2 questions

Real Zoox interview experiences

First-hand reports from Zoox candidates — the rounds, the questions they were asked, and how it went.

All 7 Zoox interview experiences