Senior software engineer technical interview questions and answers

Are you a candidate?

Crush your interview with our guide

Senior software engineer technical interview questions and answers

Show


Senior Software Engineer Interview Questions

Senior Software Engineers participate in the full software development lifecycle to provide technological solutions and maintain effective operating systems. They’re also responsible for managing a team of Software Engineers.

As with all technical roles, a written assignment can give you insight into candidates’ coding skills. These assignments will provide good talking points during your interviews and will help you understand how candidates approach and solve problems. Include questions that reveal candidates’ knowledge of software and specific frameworks you use.

Beyond a technical background, this role requires team management skills. Keep an eye out for candidates who are comfortable making difficult decisions and can effectively delegate tasks to their team members. Past experience will show you how candidates manage technical projects end-to-end on tight deadlines and budgets, while keeping their teams motivated.

Operational and Situational questions

  • If a very talented Software Engineer on your team kept questioning your decisions, what would you do? How would you address the individual?
  • What techniques would you choose to motivate disengaged employees?
  • How would you deal with disagreements related to system requirements between senior managers?
  • What advice would you give to a new team member? What’s the best way to onboard a new hire?
  • How would you negotiate a bigger budget for your team?

Role-specific questions

  • How regularly do you schedule meetings with your team members?
  • What metrics do you use to monitor your team’s performance?
  • What are the first things you would check in a legacy system that has frequent downtime?
  • What are some alternate ways to store data other than a relational database and when would you choose to use them?
  • What are the pros and cons of cloud systems?
  • What tests do you perform before deployment of a new system or feature?
  • What software configuration management tools are you familiar working with?
  • What tools and techniques do you use when reviewing someone else’s code? Where do you put most of your focus?

Behavioral questions

  • Have you ever identified a potential problem and proactively implemented a software solution?
  • How do you stay up-to-date with changes in technology? For example, do you ever attend seminars or contribute to open source software projects?
  • What’s your biggest professional success so far? Why?
  • Do you prefer giving team-wide or individual feedback? In which cases do you choose either method?
  • What would you help you become a better manager?

{ "search-interviews_300x250_right": {"name": "search-interviews_300x250_right","id": "div-AdSlot-l98bl2fw","width": "300","height": "250"}, "search-interviews_300x250_right_bf": {"name": "search-interviews_300x250_right_bf","id": "div-AdSlot-l98bl2fx","width": "300","height": "250"} }

{ "name": "search-interviews_300x250_right_bf", "id": "div-AdSlot-l98bl2fx", "fluid": true }

{ "name": "search-interviews_728x90_bottom","id": "div-AdSlot-BL","width": "728","height": "90", "formFactors": "desktop,tablet" }

Senior software engineer technical interview questions and answers

Senior software engineer Interview Questions

"Senior software engineers are the most experienced member of a software team and usually carry the most responsibility and authority of that team. Because of this, interviews will be designed to find candidates who have expert knowledge of the field and years of experience as a software engineer. Expect to be asked tough technical questions and to give examples of previous projects that you have worked on."

60,513 Senior Software Engineer interview questions shared by candidates

Top Interview Questions

Senior software engineer technical interview questions and answers

Write some pseudo code to raise a number to a power.

11 Answers

int raise(num, power){ if(power==0) return 1; if(power==1) return num; return(raise(num, power-1)*num); } Less

small mistake function power(x, n) { if n == 1 return x; // Even numbers else if (n%2 == 0) return square( power (x, n/2)); // Odd numbers else return power(x, n-1) * x; } Less

double Power(int x, int y) { double ret = 1; double power = x; while (y > 0) { if (y & 1) { ret *= power; } power *= power; y >>= 1; } return ret; } Less

Show More Responses

Senior software engineer technical interview questions and answers

Given an array of numbers, replace each number with the product of all the numbers in the array except the number itself *without* using division.

7 Answers

O(size of array) time & space: First, realize that saying the element should be the product of all other numbers is like saying it is the product of all the numbers to the left, times the product of all the numbers to the right. This is the main idea. Call the original array A, with n elements. Index it with C notation, i.e. from A[0] to A[n - 1]. Create a new array B, also with n elements (can be uninitialized). Then, do this: Accumulator = 1 For i = 0 to n - 2: Accumulator *= A[i] B[i + 1] = Accumulator Accumulator = 1 For i = n - 1 down to 1: Accumulator *= A[i] B[i - 1] *= Accumulator Replace A with B It traverses A twice and executes 2n multiplicates, hence O(n) time It creates an array B with the same size as A, hence O(n) temporary space Less

Create two more arrays. One array contains the products of the elements going upward. That is, B[0] = A[0], B[1] = A[0] * A[1], B[2] = B[1] * A[2], and so on. The other array contains the products of the elements going down. That is, C[n] = A[n], C[n-1] = A[n] * A[n-1], and so on. Now A[i] is simply B[i-1] * C[i+1]. Less

Here are my 2 cents to do this in memory without creating temporary arrays. The simple solution , if division was allowed, was multiple all the elements of the array i.e. tolal = A[0]*A[1]]*....*A[n-1] now take a loop of array and update element i with A[i] = toal/A[i] Since division is not allowed we have to simulate it. If we say X*Y = Z, it means if X is added Y times it is equal to Z e.g. 2*3 = 6, which also means 2+2+2 = 6. This can be used in reverse to find how mach times X is added to get Z. Here is my C solution, which take pointer to array head A[0] and size of array as input void ArrayMult(int *A, int size) { int total= 1; for(int i=0; i< size; ++i) total *= A[i]; for(int i=0; i< size; ++i) { int temp = total; int cnt = 0; while(temp) { temp -=A[i]; cnt++; } A[i] = cnt; } } Speed in O(n) and space is O(1) Less

Show More Responses

Senior software engineer technical interview questions and answers

What sort would you use if you required tight max time bounds and wanted highly regular performance.

6 Answers

Merge sort and heapsort are always guaranteed to be n*log(n). Quicksort is usually faster on the average but can be as bad as O(n^2), although with very low probability. Heapsort also does it sorting in-place, without needing an extra buffer, like mergesort. Lastly, heapsort is much easier to implement and understand than balancing trees mentioned by earlier posts. Less

That is so say, a "Balanced Tree Sort" is guaranteed to be O(n log n) always.

for something like this you generally want bubble sort or insertion sort. It's not about being fast it's about being consistent. Make it do exactly the same thing every time. Less

Show More Responses

How would you scale access to a system like Twitter

3 Answers

I was thinking geographically distributed servers.

There's probably no real correct answer, though the solutions go from common to esoteric in a pretty normal progression: caching, shared-cache like memcache, optimize usage, prefetch, then get creative. This is more about testing reasoning and how far you'll go to solve a problem. Less

Senior software engineer technical interview questions and answers

For the years 1901 to 2000, count the total number of Sundays that fell on the first of a month.

3 Answers

import datetime c = 0 for y in range(1901,2001): for m in range(1,13): d = datetime.datetime(y,m,1) if d.weekday() == 6: c += 1 print('Number of Sundays: ',c) Less

import datetime count=0 for i in range(1901,2001): for j in range(1, 13): if datetime.date(i,j,1).weekday() == 6: count+=1 print(count) Less

Two lines of code in matlab: Answer is 171 sundays fall on the first day of the month from 1 Jan 1901 to 31 Dec 2000 dt = datenum(1901,1,1):datenum(2001,1,1)-1; sum(day(dt(weekday(dt) == 1)) == 1) Less

Senior software engineer technical interview questions and answers

Write a function to return the nth fibonacci number. The first two can be assumed to be 1 and 1. The third and fourth are then calculated to be 2 and 3.

3 Answers

fib = {1:1, 2:1} def calc_fib(n): if n in fib.keys(): return fib[n] else: fib[n]=calc_fib(n-1)+calc_fib(n-2) return fib[n] print(calc_fib(9)) Less

remember how to approximate as N is large

The matlab example sets N = 12 (the 12th fab. number) which happens to be 144. N = 12; f = ones(N,1); for i = 3:N; f(i) = f(i-1) + f(i-2); end; f(end) Less

Senior software engineer technical interview questions and answers

How would you troubleshoot slow loading web pages and poorly performing stored procedures?

2 Answers

Obviously, it is an easy answer though. First you want to check the network connection. If that seems to be working fine with other websites, check the code of the website. If the code is too cluttered then it will have problems loading. Make sure to organize the HTML so you can easily find clutter or useless text. Next, use a website validator - http://validator.w3.org/ . This website helps you find any errors on your page that may be causing a slow down. Hope this helps any, I use this for any problem I have. Less

This is a very good question to ask anyone who is interested in web development. it gets them thinking and start working on problem solving. Less

Senior software engineer technical interview questions and answers

How would you write a program to move inside a square spiral? Start at the upper left corner of the square and walk its edges clockwise. Just before re-approaching the upper left corner, spiral into the square instead, ultimately arriving at the center of the square.

2 Answers

def spiral(mat): mat = np.array(mat) arr = [] if mat.shape == (1, 1): arr.append(mat[0][0]) return arr else: arr.extend(mat[0, :]) arr.extend(spiral(np.rot90(mat[1:, :]))) return arr Less

def print_spiral(matrix): print_spiral_help(matrix, 0, 0, 0, len(matrix[0]) - 1, len(matrix) - 1) def print_spiral_help(matrix, dir, top, left, right, bot): if left > right or top > bot: return # top if dir == 0: for i in range(left, right + 1): print matrix[top][i], print_spiral_help(matrix, 1, top + 1, left, right, bot) # Right elif dir == 1: for i in range(top, bot + 1): print matrix[i][right], print_spiral_help(matrix, 3, top, left, right - 1, bot) # Left elif dir == 2: for i in range(bot, top - 1, -1): print matrix[i][left], print_spiral_help(matrix, 0, top, left + 1, right, bot) # Bottom elif dir == 3: for i in range(right, left - 1, -1): print matrix[bot][i], print_spiral_help(matrix, 2, top, left, right, bot - 1) Less

Senior software engineer technical interview questions and answers

How would you build a BART train system.

2 Answers

Various infrastructure, logic, and fail safe issues. Caching, redundancy, customer experience handling in case of failures. Less

I would identify and address all of the various infrastructure, logic, and fail safe issues as well as design systems to handle caching, redundancy, and customer experience handling in case of failures. Less

Senior software engineer technical interview questions and answers

Q: Why multiple inheritances are not supported in Java?

1 Answers

Because of diamond pattern, diamond pattern creates ambiguity and make problem for compiler. Anyway java supports multiple inheritances via interfaces. I think more convincing reason for not supporting multiple inheritance is complexity involved in constructor chaining, casting etc rather than diamond. Less

See Interview Questions for Similar Jobs

What questions should I ask a senior software engineer?

General questions.
Tell me about your interests in current development trends..
Do you enjoy contributing to open-source projects?.
What do you know about our firm's technology services?.
How do you approach setting professional goals?.
How do your qualifications support your success as a senior developer?.

How can I pass technical interview in software engineering?

How to prepare for a technical interview.
Prepare a 30-second to 1-minute elevator pitch for the “tell me about yourself” question and examples/stories for other interview questions. ... .
Before you go, study up on the most important CS fundamentals. ... .
Pick one programming language and know it really well..

What are the technical questions asked in it interview?

Basic questions to ask in interviews.
Do you have any technical certifications?.
How many programming languages do you know?.
What are the different types of OS you are comfortable working with?.
What is the extent of your technical expertise?.
How many development tools have you used?.

How do I pass a senior developer interview?

How to structure senior developer interviews.
Do not ask senior developers to complete a test to explain a simple algorithm or data structure- most candidates for senior posts haven't dealt with such matters in years..
Stay away from whiteboard-testing..
Ask candidates to share a few work samples..