🌸 NỮ HOÀNG HUNTER - NHẬN HƠN 2,000,000Đ MỖI NGÀY KHI GIỚI THIỆU ỨNG VIÊN 🌸

2+Cơ hội giới thiệu job của Danh mục Embedded Developer

Kỹ sư thiết kế mạch điện tử / Kỹ sư phần cứng

Design Enginering

650 $ to Negotiable | Ha Noi

Thưởng 6,000,000 VNĐ / ứng viên

Giới thiệu ngay

Automation System Engineer

Mechatronics Robotics Testing Electronics Leadership Skills Enginering

630 - 1,200 $ | Ho Chi Minh

Thưởng 10,000,000 VNĐ / ứng viên

Giới thiệu ngay

Tuyển dụng việc làm Embedded Developer lương cao | Recruitery

 

1. Phần mềm nhúng (Embedded software) là gì?

Phần mềm nhúng (Embedded software) là phần mềm máy tính, được viết để điều khiển các máy hoặc thiết bị thường không được coi là máy tính, thường được gọi là hệ thống nhúng. Nó thường chuyên dùng cho phần cứng cụ thể mà nó chạy và có các hạn chế về thời gian và bộ nhớ. Thuật ngữ này đôi khi được sử dụng thay thế cho firmware.

Phần mềm nhúng bao gồm tất cả các trình điều khiển thiết bị cần thiết tại thời điểm sản xuất và trình điều khiển thiết bị được viết cho phần cứng cụ thể. Phần mềm phụ thuộc nhiều vào CPU và các chip cụ thể được chọn. Hầu hết các kỹ sư phần mềm nhúng có ít nhất một kiến thức về sơ đồ đọc và đọc bảng dữ liệu cho các thành phần để xác định việc sử dụng các thanh ghi và hệ thống truyền thông. Chuyển đổi giữa thập phân, thập lục phân và nhị phân là hữu ích cũng như sử dụng thao tác bit.

Giao tiếp giữa các bộ xử lý và giữa một bộ xử lý với các thành phần khác là rất cần thiết. Bên cạnh việc đánh địa chỉ bộ nhớ trực tiếp, các giao thức phổ biến bao gồm I2C, SPI, serial ports và USB.

Các giao thức truyền thông được thiết kế để sử dụng trong các hệ thống nhúng có sẵn dưới dạng nguồn đóng từ các công ty bao gồm InterNiche Technologies và CMX Systems. Các giao thức nguồn mở xuất phát từ uIP, lwip và các giao thức khác.

 

2. Lập trình viên hệ thống nhúng (embedded developer) là ai?

Các nhà phát triển phần mềm nhúng chịu trách nhiệm thiết kế, phát triển, tối ưu hóa và triển khai phần mềm được lập trình thành các thiết bị được xây dựng xung quanh bộ vi xử lý.

Embedded developer viết code để giải quyết các vấn đề và triển khai các hệ thống làm cho một thiết bị phần cứng vật lý hoạt động thông qua phần mềm.

Nói chung, mục tiêu của Embedded developer là đảm bảo phần mềm nhúng hoàn thành các mục tiêu mong muốn, khai thác toàn bộ tiềm năng của phần cứng vì lợi ích của người dùng.

Lập trình nhúng là một niềm đam mê. Bạn cần một niềm đam mê và sự quan tâm thực sự đối với công nghệ và khắc phục các sự cố kỹ thuật.

Một văn bằng về kỹ thuật máy tính hoặc một lĩnh vực liên quan sẽ cung cấp một nền tảng lý thuyết vững chắc. Các kỹ năng phát triển kỹ thuật thiết yếu khác bao gồm:

- Chuyên môn về lập trình C / C ++
- Tối ưu hóa mức độ thấp trong ngôn ngữ lắp ráp
- Phát triển trình điều khiển thiết bị và giao diện phần cứng / phần mềm
- Quản lý cấu hình phần mềm (sử dụng các công cụ như Perforce, Git hoặc SVN)
- Kỹ thuật chuyên dụng cho lập trình nhúng
- Khả năng đọc sơ đồ điện tử và khắc phục sự cố
- Quản lý dự án và vòng đời phát triển phần mềm

Ngoài ra, các embedded developer cần có kiến thức về:

- Giao thức truyền thông
- Thời gian thực hoạt động Sytems (RTOS)
- Thuật toán
- Bộ nhớ
- Design patterns
- Nguyên tắc cơ bản của vi xử lý và vi điều khiển
- Điện tử cơ bản
- Xây dựng môi trường lập trình
- Lập trình đồng thời / song song

 

3. Các kĩ năng cần có đối với một lập trình viên nhúng (embedded developer)

Ngoài các kỹ năng kỹ thuật, để thực hiện công việc phát triển thương mại, có một số kỹ năng mềm bạn sẽ cần phải trau dồi.

Quản lý dự án ví dụ là rất quan trọng. Thời hạn và ngân sách của khách hàng thường không thể thương lượng. Bạn phải theo dõi về thời gian và chi tiêu, và thông báo cho các bên liên quan ở giai đoạn quan trọng.

Một kỹ năng khác là hợp tác. Làm việc với khách hàng có nghĩa là thực hiện và hiểu các giải pháp ngắn gọn, nghĩ ra và đề xuất, và thông báo cho họ khi dự án tiến triển.

Về mặt phân phối dự án, các nhà phát triển nhúng có thể làm việc riêng lẻ hoặc là một phần của nhóm. Dù bằng cách nào, bạn có thể bắt gặp một số yếu tố hợp tác khi bạn thực hiện các dự án, với các nhà phát triển hoặc kỹ sư đồng nghiệp từ các ngành khác.

Bạn cũng cần theo kịp các xu hướng mới nổi và sự phát triển công nghệ. Điều này có nghĩa là một cam kết liên tục để học và hiểu thực tiễn tốt nhất, để đảm bảo kiến ​​thức của bạn được cập nhật và có liên quan.

Dưới đây là danh sách các kĩ năng mà Recruitery tổng hợp dành cho bạn:

- Ngôn ngữ C
- OOP / C ++ - các lớp, đóng gói, đa hình, quá tải / ghi đè, các mẫu
- Thuật toán - tìm kiếm, sắp xếp, b-tree
- Các Design Patterns - factory, observer, singleton etc.
- Hệ điều hành thời gian thực - nguyên thủy (semaphore, mutex), kỹ thuật lập lịch, không gian người dùng / kernel
- Nguyên tắc cơ bản của Linux, viết trình điều khiển, trình bao
- Nguyên tắc cơ bản của bộ vi xử lý - xử lý ngắt, thanh ghi, mã lắp ráp, v.v.
- Nguyên tắc cơ bản của vi điều khiển - ADC, DAC, Timers, PWM, DMA, watchdog, v.v.
- Bộ nhớ - NOR, NAND, SRAM, DRAM, cân bằng hao mòn
- Các giao thức cơ bản - I2C, SPI, UART, LIN
- Giao thức nâng cao - SATA, PCIE, USB, CAN, MOST
- Lập trình đồng thời / song song - MPI cho SMP, v.v.
- UML - sơ đồ lớp, sơ đồ thành phần, sơ đồ trạng thái, sơ đồ tuần tự
- Perl hoặc Python để viết kịch bản, ví dụ: để sửa đổi các tập tin văn bản đơn giản.
- Java và Android
- Điện tử cơ bản - đọc sơ đồ, sử dụng dao động kế, vạn năng, hàn sắt
- Các kỹ thuật chuyên dụng cho lập trình nhúng, ví dụ: công bố công tắc, công tắc thang điện trở, bộ mã hóa quay, v.v.
- Kỹ thuật phần mềm - SDLC, CMMI, phương pháp nhanh, ví dụ: SCRUM, kiểm soát phiên bản (ClearCase, git, svn), theo dõi lỗi (JIRA?), Kiểm tra mã tĩnh, Lint, kiểm tra đơn vị, tích hợp liên tục
- Xây dựng môi trường - makefile, cmake
- Thiết kế cơ bản của FPGA / ASIC, DSP cơ bản

 

4. Một số yêu cầu của vị trí Embedded Developer mà khách hàng của Recruitery tuyển dụng

Recruitery tổng hợp cho bạn một số thông tin mà các nhà tuyển dụng thường yêu cầu đối với vị trí này, bạn có thể tham khảo tại đây:

- Tốt nghiệp đại học chuyên ngành Công nghệ thông tin/Điện tử viễn thông/Khoa học máy tính/Toán-Tin/Điều khiển và tự động hóa/ Cơ điện tử...
- Kinh nghiệm lập trình C/C++ 6 tháng trở lên
- Thành thạo lập trình RTOS, điều khiển tự động, test và debugger
- Kỹ năng đọc hiểu tiếng Anh (hoặc tiếng Nhật) tốt là một lợi thế
- Kinh nghiệm lập trình vững chắc trong C / C ++ / Python
- Tốt giỏi giao tiếp tiếng anh
- Có ít nhất 2 năm kinh nghiệm trong Phát triển phần mềm nhúng (cả cấp độ ứng dụng và nhân)
- Trải nghiệm trực tiếp với bo mạch dựa trên bộ xử lý ARM
- Có khả năng đọc và hiểu hướng dẫn sử dụng phần cứng
- Khả năng làm việc độc lập
- Kinh nghiệm với các giao thức truyền thông: TCP / IP, Bluetooth, Ethernet, Wifi
- Làm quen với các giao thức nhúng như SPI, I2C
- Ham học hỏi