CEVA logo

CEVA Software Engineer Interview Questions
& Process

Real candidates share what happened, how many rounds they had,
and how the experience turned out.

Based on 17 interview experiences · FREE TO READ

1.9 Rounds average
Average Typical difficulty
29.4% Positive experience

Candidate interview experiences

First-hand accounts from people who interviewed at CEVA.

Showing 3 of 17
CEVA logo
CEVA

Software Engineer

Engineering · more than a year ago

Entry Easy Positive experience Accept offer 1 round
Interview process
Technical screen
Interview formats
Technical Coding

So, the interview process was pretty much a technical screen. They threw some C code at me and asked me to figure out the running time based on specific cycle costs for operations and array access, and also to optimize it using some new operators they introduced. After that, there was this assembly question where I had to compute the absolute difference between two registers using a very limited set of instructions.

Confirmed questions3 questions
  • Calculate the overall running time of the C code provided as a function of the array's length (n=N), given the following assumptions: Arithmetic operations (+,-,*,=,+=) cost one machine cycle. Reading/Writing from an array element costs 5 machine cycles. Loops have zero overhead. The cost of a loop is 6*n machine cycles (5 for writing arr[j], 1 for calculating a+b). Loop overheads ('j = 0', 'j < n', 'j++') are not considered.
  • Assuming the addition of two new operators to the C language: 1) inc_mod(i, n); i++; if (i >= n) i = 0; 2) dec_mod(i, n); i--; if (i < 0) i = n - 1; How can the function func() be optimized SIGNIFICANTLY in terms of run time? Assume that the function func() will be called much more than N times (thus optimizing the first multiplications of zero array elements is not worthwhile).
  • Primitive Assembley Question: Assume your assembly language includes ONLY the following instructions: 'inc REG', 'dec REG', 'jnz LABEL', and 'HALT'. Registers A and B hold non-negative values. The program should calculate the value of |A-B| and locate the result in C. Registers C, D, ..., Z are initialized to zero.
CEVA logo
CEVA

Student Developer

Engineering · more than a year ago

Intern Difficult Negative experience No offer 1 round
Interview process
Recruiter call Technical screen Onsite Background check Offer
Interview formats
Technical Coding Behavioral

I was interviewing for a student developer role on the Compiler team. HR reached out and set up an online Zoom interview that was scheduled for 2 hours, but it went a bit over to 2.5 hours. The interviewer, who was a team lead, started by giving me an overview of the company, its products, and the compiler team's role. Then we dove into some really tough technical problems. The first one involved a C function: I had to figure out what it did, then optimize its efficiency using two other 'black-box' functions. The second problem was in a simplified Assembly language with only four commands: 'inc X', 'dec X', 'jnz LABEL', and 'BREAK'. The task was to calculate the absolute difference between two registers, A and B, which held non-negative numbers, using these commands. This technical part took up most of the two hours. After the coding challenges, we went through my resume. The interviewer asked if there was anything on my resume I wanted to discuss, and I brought up a big Android project. He wasn't interested, which was a bit unexpected. He then clarified that the position was for an automation developer, which contradicted the job description. A couple of days later, I got a standard rejection email. Honestly, I wasn't even upset about it; it didn't seem like a place I'd want to work anyway.

Confirmed questions2 questions
  • For the given C function, can you first explain its functionality? Second, assuming arithmetic operations are 1 clock cycle and array I/O is 5 clock cycles, estimate the function's total clock cycles. Third, how would you leverage two provided 1-clock-cycle black-box functions to enhance the original function's performance?
  • Given registers A and B with non-negative values, and registers C-Z starting at zero, calculate |A-B| using only the commands: increment X, decrement X, jump if not zero to LABEL, and break.
CEVA logo
CEVA

Senior Software Engineer

Engineering

Senior Average Negative experience No offer 1 round
Interview process
Recruiter call
Interview formats
Behavioral

Had a phone call. The manager introduced themself, went over the job description, but didn't ask anything about my background or what I was looking for. Instead, they asked questions about my current company. They wouldn't answer basic questions about the job.

Confirmed questions5 questions
  • Can you tell me about your current employer?
  • What is the daily routine for this role?
  • What is the salary range for this position?

CEVA Software Engineer Interview Questions

Quoted word for word from CEVA interview reports.

Write code to draw a circle on a 2D array, given its radius and center coordinates.

Read reports

What's the formula for the smallest circle that can enclose three points on a 2D plane that form a triangle?

Read reports

Given an assembly language with only 'inc REG', 'dec REG', 'jnz LABEL', and 'HALT' instructions, and registers A and B holding non-negative values, write a program to compute the absolute difference between A and B and store it in register C. Registers C through Z start at zero.

Read reports

What is the cheapest route from the top-left corner to the bottom row in a specific matrix where movement is restricted to down or down-left?

Read reports

Given registers A and B with non-negative values, and registers C-Z starting at zero, calculate |A-B| using only the commands: increment X, decrement X, jump if not zero to LABEL, and break.

Read report

Write a function in assembly to compute the absolute difference between two numbers (A-B), using only the add1, dec1, and jz instructions.

Read report

Assuming the addition of two new operators to the C language: 1) inc_mod(i, n); i++; if (i >= n) i = 0; 2) dec_mod(i, n); i--; if (i < 0) i = n - 1; How can the function func() be optimized SIGNIFICANTLY in terms of run time? Assume that the function func() will be called much more than N times (thus optimizing the first multiplications of zero array elements is not worthwhile).

Read report

How would you write a program to check if a given string matches a regular expression containing regular characters and the wildcard '*'?

Read report

Can you find all the paths in an NxN matrix from the bottom left to the top right moving only up or right?

Read report

Formats, difficulty and experience

Across all 17 CEVA interview reports.

Interview formats

Technical 40%
Coding 32.5%
Behavioral 25%
System Design 2.5%

Interview difficulty

Easy 5.9%
Average 58.8%
Difficult 35.3%

Candidate experience

Positive 29.4%
Negative 23.5%
Neutral 47.1%