Skip to contentSkip to footer
  • Community
  • Jobs
  • Companies
  • Salaries
  • For employers
      Notifications

      Loading...

      Elevate your career

      Discover your earning potential, land dream jobs, and share work-life insights anonymously.

      employer cover photo
      employer logo
      employer logo

      Tesla

      Is this your company?

      About
      Reviews
      Pay and benefits
      Jobs
      Interviews
      Interviews
      Related searches: Tesla reviews | Tesla jobs | Tesla salaries | Tesla benefits
      Tesla interviewsTesla Software Engineer interviewsTesla interview


      Glassdoor

      • About / Press
      • Awards
      • Blog
      • Research
      • Contact Us
      • Guides

      Employers

      • Free Employer Account
      • Employer Centre
      • Employers Blog

      Information

      • Help
      • Guidelines
      • Terms of Use
      • Privacy and Ad Choices
      • Do Not Sell Or Share My Information
      • Cookie Consent Tool
      • Security

      Work With Us

      • Advertisers
      • Careers
      Download the App

      • Browse by:
      • Companies
      • Jobs
      • Locations
      • Communities
      • Recent posts

      Copyright © 2008-2026. Glassdoor LLC. "Glassdoor," "Worklife Pro," "Bowls" and logo are proprietary trademarks of Glassdoor LLC.

      Company Bowl sample

      Want the inside scoop on your own company?

      Check out your Company Bowl for anonymous work chats.

      Bowls

      Get actionable career advice tailored to you by joining more bowls.

      Followed companies

      Stay ahead in opportunities and insider tips by following your dream companies.

      Job searches

      Get personalised job recommendations and updates by starting your searches.

      Software Engineer Interview

      17 Jun 2020
      Anonymous interview candidate
      No offer
      Negative experience
      Difficult interview

      Application

      I applied online. The process took 2 weeks. I interviewed at Tesla in Jun 2020

      Interview

      The process started with a standard recruiter screening call, to narrow down the specific position I’d be a fit for. I was then sent a “Python Coding Challenge” to complete in 90 minutes, within 2 days of receiving. The challenge was a link to a website which doesn’t even run your code, which is extremely annoying. Also, the questions were convoluted and frankly too difficult for a new grad position. I had to reread each question and the examples several times because they were so confusing. A few days afterwards I was told my “solutions were not performant enough to move forward”. Ok then lol. Honestly this process felt disrespectful of my time, even if I had moved forward.

      Interview questions [5]

      Question 1

      Log Processor Outline: You are developing a log processing system, which is made up of many different "steps" that process the logs in different ways. Each step is declared in advance, and the system is built up by feeding the output of one step into the inputs of other steps. Each step has a python function (stored in the "action" attribute) that gets evaluated to produce the output for that step. The user interacts with the system by telling the system they want the output of a particular step, and the system will call the action for that step (and any other actions that the desired step depends on) to return the processed log. Each step is given an "output_name" attribute, which the user can use to get the output of that step. The "input_names" attribute stores a list of strings that match the output_name from other steps, so that the output value from one step can be used as an input parameter to other steps. Read further to see examples of the system in action, and begin with Questions 1-4.
      Answer question

      Question 2

      QUESTION 1: In example_system_1, the step for "output3" takes inputs from the steps for "output1" and "output2". Thus, if the user requests "output3", we must first evaluate the actions for "output2" and "output1" to get the values of these outputs, so the values can be used as inputs to the action of "output3". To determine the correct ordering of step dependencies, complete the action_evaluation_order() function below, so that it will return a list of "output_name"s needed for the "order_for_output_name" parameter. Each "output_name" item in the list should appear *after* any of its dependencies. The ordering should not contain any duplicates. You may assume every list of "StepDeclarations" is valid and solvable, eg: - each "StepDeclaration" will only have one output - each "StepDeclaration" can have any number of dependencies (including 0) - a list of StepDeclarations will not contain duplicate "output_name"s - a "StepDeclaration" cannot depend on its own output (directly or indirectly) For this and the following questions, assume in real life the system is running at a large scale, so efficiency is important. That said, correct slow solutions will get more marks than incorrect fast ones. You may also leave notes explaining where you further optimize if you had the time.
      Answer question

      Question 3

      QUESTION 2: Now that we know the order in which the actions have to be evaluated, complete the get_output_value() function below so that it calls each "action" in the correct order with the right input(s), and returns the output value of the "action" function for the StepDeclaration where the output_name attribute matches the "output_name" parameter. You can use your previous working if desired. for example_system_1, the get_output_value(example_system_1, "output3") function will do the following 1) call action_get_logs1(), and store the output 2) call action_get_logs2(), and store the output 3) call action_combine_logs(), with the output from 1) and 2) as the input 4) return the result of 3), as the "value_for_output_name" parameter matches the StepDeclaration.output_name for that step. # note that as in Q1, step 1) and 2) could happen in the reverser order.
      Answer question

      Question 4

      QUESTION 3: We expect the "get_output_value()" function to be called multiple times with varying "step_declarations" and "value_for_output_name"s. As some of the "actions" might be expensive to call, we should cache the output of "action" calls. That way, if an "action" is called multiple times with the same input values, the output value can be reused without recomputing. An "action" function may be re-used multiple in many "StepDeclarations" within one system, or within different systems sharing a cache. Implement get_output_value_with_caching() below to use the global "cache" variable. "actions" are pure functions, where the output value of each function only depends on the values of the inputs. In a real system, some inputs are accessing external data (eg, reading logs off a filesystem) rather than just fixed strings like the examples given. We can simulate this by having one of the steps that takes no inputs return a variable result.
      Answer question

      Question 5

      QUESTION 4: Another performance upgrade would be to add concurrency/parallelism where possible to increase the performance of the system. One example of this, in example_system_1, is that a single-threaded system will wait for the result of action_get_logs1() before calling action_get_logs2() (or vice versa). However these functions are independent of eachother and could be executed in parallel, speeding up the system. Complete the "get_output_value_with_caching_and_parallelism" below, using concurrency/parallelism anywhere possible to increase the performance of the system. Your selection of parallelization primitive or library does not affect your score (eg, you may use multithreading, multiprocessing, asyncio, etc) You can assume that there is no performance overhead for additional workers (eg, you have unlimited CPUs), and that all action functions are IO-bound. Extra for experts: limit the number of CPU cores you have to N, and assume each action can utilize a fixed number of CPUs from 1 to N. Then schedule parallel actions such that CPU cores are optimally utilized (but not oversaturated).
      1 Answer
      72

      Other Software Engineer interview reviews for Tesla

      Software Engineer Interview

      3 May 2026
      Anonymous employee
      Accepted offer
      Positive experience
      Easy interview

      Application

      I interviewed at Tesla

      Interview

      Remembering the coding question about finding a peak element gives me a sense of relief. It was nearly the same as one I had practiced on PracHub a few days prior. The interview process began with a recruiter screening my resume, followed by a technical phone interview where we discussed data structures and algorithms. The onsite included two additional rounds focusing on coding and behavioral questions. Overall, the experience was straightforward, and I felt well-prepared, ultimately leading to an offer that I happily accepted.
      1

      Software Engineer Interview

      6 May 2026
      Anonymous interview candidate
      No offer
      Positive experience
      Average interview

      Application

      I interviewed at Tesla

      Interview

      2 Technical Coding Screen, followed by onsite. Interesting problems and role related. Friendly recruiting coordinator. On site - in person, several rounds, includes presentation and question & answers. Highly role related and based on past experiences.

      Software Engineer Interview

      14 Apr 2026
      Anonymous interview candidate
      Palo Alto, CA
      No offer
      Neutral experience
      Average interview

      Application

      I interviewed at Tesla (Palo Alto, CA)

      Interview

      pretty chill. asked about evaluation metrics, calculate 2 metrics given a data log. has_collided, radial TTC. A few questions from my resume. How did you determine xyz, what are the factors, and what could be some other factors?