特斯拉嵌入式软件开发工程师,Linux操作系统
社招全职信息娱乐系统地点:上海状态:招聘
任职要求
Must Have • 4+ years embedded software and/or firmware development experience • 2+ years experience with Embedded Linux and/or Android development • Strong Linux kernel fundamentals, Linux internals • Experience developing device drivers • Systems Software experience • Excellent C/C++ coding skills • Experience with board /chip bringup • Strong build, debug and test skills • Android Container, Hypervisor, or virtualization experience • Comfortable using hardware debug tools (DMM, oscilloscopes, logic analyzers) and software debug tools (GDB, KGDB, JTAG) • Excellent problem solving, critical thinking, and communication skills Prefer To Have • Upstream contributions to Linux Kernel is a plus • Contributions to involvement with open source projects is a plus • Experience with bootloaders and recovery OS development is a plus • Experience with RTOS or bare-metal embedded development is a plus • Experience with Linux graphics technologies (X, wayland, mesa3d, dri/drm drivers) is a plus This job application may involve an interview with an interviewer outside of Tesla China. If you complete your application, you agree Tesla provides your application information to overseas interviewers in Tesla, Inc. for recruitment purposes. More details and contact information please seehere. (here hyperlink: https://app.mokahr.com/social-recruitment/tesla/46129#/)
工作职责
THE ROLE Tesla's Software Platforms team provides the foundation on which the in-vehicle user experience is built. We build the software platform (kernel, bootchain, drivers, and lower level userspace platform services) for our innovative Infotainment hardware. This includes high resolution touch displays, high definition audio, bluetooth/wifi/cellular connectivity, USB, cameras, all connected to high performance multi-core processors and GPUs. Our software is based on Linux, GNU toolchain, buildroot, and other open source projects, delivering the security, capability, and performance demanded by our user experience RESPONSIBILITIES • Write well structured, testable, efficient, and maintainable code • Integrate software components into a fully functional software system • Tailor and deploy software tools, processes and metrics • Use existing available hardware in innovative ways to solve problems • Board bringup and hardware design validation • Deploy software incrementally to meet very fast paced development • Develop software tests and continuous integration for your code • Support factory provisioning, test, and improvements • Assess and document new product feasibility
包括英文材料
Linux+
https://ryanstutorials.net/linuxtutorial/
Ok, so you want to learn how to use the Bash command line interface (terminal) on Unix/Linux.
https://ubuntu.com/tutorials/command-line-for-beginners
The Linux command line is a text interface to your computer.
https://www.youtube.com/watch?v=6WatcfENsOU
In this Linux crash course, you will learn the fundamental skills and tools you need to become a proficient Linux system administrator.
https://www.youtube.com/watch?v=v392lEyM29A
Never fear the command line again, make it fear you.
https://www.youtube.com/watch?v=ZtqBQ68cfJc
Android+
https://roadmap.sh/android
Step by step guide to becoming an Android developer .
https://www.youtube.com/playlist?list=PLQkwcJG4YTCSVDhww92llY3CAnc_vUhsm
内核+
https://www.youtube.com/watch?v=C43VxGZ_ugU
I rummage around the Linux kernel source and try to understand what makes computers do what they do.
https://www.youtube.com/watch?v=HNIg3TXfdX8&list=PLrGN1Qi7t67V-9uXzj4VSQCffntfvn42v
Learn how to develop your very own kernel from scratch in this programming series!
https://www.youtube.com/watch?v=JDfo2Lc7iLU
Denshi goes over a simple explanation of what computer kernels are and how they work, alonside what makes the Linux kernel any special.
C+
https://www.freecodecamp.org/chinese/news/the-c-beginners-handbook/
本手册遵循二八定律。你将在 20% 的时间内学习 80% 的 C 编程语言。
https://www.youtube.com/watch?v=87SH2Cn0s9A
https://www.youtube.com/watch?v=KJgsSFOSQv0
This course will give you a full introduction into all of the core concepts in the C programming language.
https://www.youtube.com/watch?v=PaPN51Mm5qQ
In this complete C programming course, Dr. Charles Severance (aka Dr. Chuck) will help you understand computer architecture and low-level programming with the help of the classic C Programming language book written by Brian Kernighan and Dennis Ritchie.
C+++
https://www.learncpp.com/
LearnCpp.com is a free website devoted to teaching you how to program in modern C++.
https://www.youtube.com/watch?v=ZzaPdXTrSb8
GDB+
[英文] Debugging with GDB
https://betterexplained.com/articles/debugging-with-gdb/
A debugger lets you pause a program, examine and change variables, and step through code.
https://code.visualstudio.com/docs/cpp/cpp-debug
After you have set up the basics of your debugging environment as specified in the configuration tutorials for each target compiler/platform, you can learn more details about debugging C/C++ in this section.
https://opensource.com/article/21/3/debug-code-gdb
Troubleshoot your code with the GNU Debugger.
https://www.brendangregg.com/blog/2016-08-09/gdb-example-ncurses.html
gdb is the GNU Debugger, the standard debugger on Linux.
RTOS+
[英文] RTOS Fundamentals
https://www.freertos.org/Documentation/01-FreeRTOS-quick-start/01-Beginners-guide/01-RTOS-fundamentals
A Real-Time Operating System (RTOS) is a type of computer operating system designed to be small and deterministic.
Metal+
[英文] Metal
https://developer.apple.com/metal/
Whether you want to build a graphics-intensive app, a cutting-edge game with beautiful visuals, or target demanding compute workloads like machine learning, Metal puts the advanced capabilities of Apple-designed GPUs at your fingertips.
[英文] Metal Tutorial
https://metaltutorial.com/
This tutorial will teach you the basics of Apple's Metal Graphics and Compute API, and help you understand how to program with it in C++ via the metal-cpp library.
https://www.kodeco.com/7475-metal-tutorial-getting-started
In this Metal tutorial, you will learn how to get started with Apple’s 3D graphics API by rendering a simple triangle to the screen.
[英文] learnmetal.com: Home
https://www.learnmetal.com/
Welcome to Learn Metal — an open-source tutorial site focused on learning and mastering Apple’s Metal graphics API.
相关职位
社招2年以上A27931
1. 负责车联网应用软件的功能需求对接、技术方案制定; 2. 负责跨团队方案拉齐和接口定义; 3. 负责车载Linux/Android系统应用软件开发; 4. 负责车联网应用软件的代码集成和版本发布; 5. 负责车联网应用软件的调试、问题分析及解决;
更新于 2025-06-24