Work on software development in Android Linux and Embedded Linux environments.
Implement innovative technologies and features in new products.
Collaborate with hardware engineering teams and overseas factories to ensure seamless product integration.
Utilize software version control and process tools such as GIT, Jira, and Confluence.
Perform testing, debugging, and troubleshooting of embedded software.
Senior engineers will participate in design processes and provide guidance to junior team members.Bachelor's degree in Information Technology, Computer Engineering, or a related field.
3-5 years of experience in C programming on Linux platforms.
Proficiency in multi-threading, socket programming, and inter-process communication (IPC).
Ability to work independently with a proactive and positive attitude.Work on cutting-edge technologies and innovative products that make a global impact.
Collaborate with a talented team of engineers in a dynamic and supportive environment.
Opportunities for professional growth and development.
Competitive salary and benefits package.
CMC P&T là đơn vị thành viên của Tập đoàn Công nghệ CMC, được thành lập vào tháng 10 năm 2007. CMC P&T có 10 năm kinh nghiệm trong lĩnh vực cung cấp các sản phẩm và dịch vụ CNTT, mang lại những giá trị thiết thực cho khách hàng. Tầm nhìn hướng đến 2020, CMC P&T phấn đấu trở thành nhà cung cấp dịch vụ IT uy tín, chuyên nghiệp hàng đầu tại Việt Nam. CMC P&T sở hữu đội ngũ kỹ thuật viên là những kỹ sư CNTT chuyên ngành, dày dạn kinh nghiệm, có trình độ kỹ thuật cao, thường xuyên được đào tạo về chuyên môn và kỹ năng chăm sóc khách hàng, tác phong cung cấp dịch vụ chuyên nghiệp, luôn tận tâm, sáng tạo, nỗ lực hết mình vì khách hàng.
Mọi người cũng đã tìm kiếm
Công việc của Kỹ sư Lập trình nhúng là gì?
Kỹ sư lập trình nhúng là một chuyên viên có kiến thức sâu về việc phát triển và thiết kế các hệ thống điều khiển hoặc các thiết bị nhúng. Các thiết bị nhúng thường được tích hợp trong các sản phẩm và hệ thống khác nhau như điện tử tiêu dùng, ôtô, thiết bị y tế, và nhiều ứng dụng khác.
Mô tả công việc của Kỹ sư lập trình nhúng
Kỹ sư lập trình nhúng (Embedded Software Engineer) là người chịu trách nhiệm phát triển và duy trì phần mềm được tích hợp sâu vào các thiết bị điện tử như vi điều khiển (microcontroller) hoặc vi xử lý (microprocessor). Công việc của Kỹ sư lập trình nhúng bao gồm các công đoạn sau:
- Phân tích yêu cầu: Kỹ sư lập trình nhúng cần hiểu rõ yêu cầu của dự án, bao gồm cả tính năng, hiệu năng và yêu cầu hệ thống.
- Thiết kế hệ thống: Định nghĩa kiến trúc của hệ thống nhúng, bao gồm cả phần cứng và phần mềm. Điều này bao gồm việc lựa chọn các linh kiện phần cứng, vi điều khiển, giao tiếp và các chuẩn kết nối.
- Lập trình nhúng: Phát triển mã nguồn cho hệ thống nhúng, sử dụng các ngôn ngữ lập trình như C, C++, Assembly hoặc Python tùy thuộc vào nền tảng phần cứng và yêu cầu cụ thể của dự án.
- Phát triển giao diện điều khiển: Xây dựng giao diện người dùng hoặc các giao tiếp điều khiển khác để tương tác với thiết bị nhúng, ví dụ như giao diện người dùng đồ họa (GUI) hoặc giao diện dòng lệnh (CLI).
- Kiểm thử và gỡ lỗi: Tiến hành kiểm thử phần mềm nhúng để đảm bảo tính ổn định, hiệu năng và tuân thủ các yêu cầu. Gỡ lỗi và sửa các lỗi phát sinh trong quá trình phát triển.
- Tối ưu hóa hiệu năng: Tối ưu hóa mã nguồn và các thuật toán để đảm bảo rằng phần mềm hoạt động với hiệu năng tốt nhất có thể trên nền tảng phần cứng cụ thể.
- Tương tác với phần cứng: Kỹ sư lập trình nhúng cần làm việc chặt chẽ với các nhóm phát triển phần cứng để đảm bảo tích hợp hoàn hảo giữa phần mềm và phần cứng.
- Tài liệu hóa: Viết tài liệu hướng dẫn sử dụng, tài liệu kỹ thuật và các hướng dẫn cài đặt cho phần mềm nhúng.
- Hỗ trợ triển khai và duy trì: Hỗ trợ quá trình triển khai sản phẩm, cung cấp hỗ trợ kỹ thuật và duy trì phần mềm sau khi sản phẩm đã ra mắt.
- Những kỹ năng quan trọng cho một Kỹ sư lập trình nhúng bao gồm kiến thức về ngôn ngữ lập trình C/C++, kiến thức về hệ điều hành nhúng, kiến thức về vi điều khiển và vi xử lý, kỹ năng gỡ lỗi và kiểm thử, khả năng làm việc với các công cụ phát triển nhúng (ví dụ: IDEs, trình biên dịch, các công cụ gỡ lỗi), và kiến thức về giao tiếp nhúng (ví dụ: UART, I2C, SPI).
Thêm vào đó, Kỹ sư lập trình nhúng cũng nên có khả năng làm việc nhóm tốt, kỹ năng giải quyết vấn đề, và kiên nhẫn trong việc tìm hiểu và giải quyết các vấn đề kỹ thuật phức tạp.
Kỹ sư Lập trình nhúng có mức lương bao nhiêu?
Lương cơ bản
Lương bổ sung
130 - 260 triệu
/nămLộ trình sự nghiệp Kỹ sư Lập trình nhúng
Tìm hiểu cách trở thành Kỹ sư Lập trình nhúng, bạn cần có những kỹ năng và trình độ học vấn nào để thành công cũng như đạt được mức lương mong đợi ở mỗi bước trên con đường sự nghiệp của bạn.
Số năm kinh nghiệm
Điều kiện và Lộ trình trở thành một Kỹ sư Lập trình nhúng?
Yêu cầu tuyển dụng của Kỹ sư lập trình nhúng
Yêu cầu tuyển dụng cho một vị trí Kỹ sư lập trình nhúng thường tập trung vào hai tiêu chí chính sau:
Kiến thức chuyên môn
- Ngôn ngữ lập trình nhúng: Kỹ sư lập trình nhúng cần có kiến thức sâu về ít nhất một ngôn ngữ lập trình nhúng phổ biến như C, C++, Python (thông qua các thư viện nhúng như MicroPython hoặc CircuitPython) hoặc một ngôn ngữ lập trình nhúng khác tùy thuộc vào yêu cầu cụ thể của dự án.
- Kiến thức về phần cứng: Kiến thức về vi điều khiển (microcontroller), vi xử lý (microprocessor), vi mạch (integrated circuits), và các thành phần điện tử cơ bản là cần thiết. Điều này bao gồm các giao tiếp như I2C, SPI, UART.
- Kỹ thuật lập trình nhúng: Kiến thức về việc phát triển và triển khai firmware (phần mềm dành cho thiết bị nhúng) trên nền tảng phần cứng cụ thể.
- Hệ điều hành nhúng (nếu cần thiết): Kiến thức về các hệ điều hành nhúng như FreeRTOS, RT-Thread, hay một hệ điều hành nhúng tùy chỉnh.
- Kiến thức về giao tiếp và mạng (tuỳ vào dự án): Có thể bao gồm giao tiếp không dây (Wi-Fi, Bluetooth, LoRa), giao tiếp mạng (TCP/IP, UDP), hoặc các giao thức tùy chỉnh.
Kỹ năng cơ bản
- Kỹ năng lập trình: Ngoài kiến thức về ngôn ngữ lập trình nhúng, Kỹ sư lập trình nhúng cũng cần có kỹ năng lập trình tổng quát, bao gồm debugging (gỡ lỗi), code optimization (tối ưu hóa mã nguồn), và quản lý mã nguồn (version control).
- Sáng tạo và giải quyết vấn đề: Khả năng tư duy sáng tạo để tạo ra các giải pháp nhúng độc đáo và khả năng giải quyết các vấn đề kỹ thuật là rất quan trọng.
- Kỹ năng giao tiếp: Khả năng giao tiếp hiệu quả với đồng nghiệp, khách hàng và các thành viên trong dự án là một yếu tố quan trọng trong việc làm việc nhóm và đạt được mục tiêu dự án.
- Tư duy hệ thống và phân tích: Khả năng hiểu rõ các hệ thống lớn và có khả năng phân tích các vấn đề kỹ thuật phức tạp.
- Tinh thần học hỏi: Lĩnh vực Kỹ sư lập trình nhúng thường phát triển nhanh chóng với nhiều công nghệ mới, do đó, khả năng học hỏi liên tục và cập nhật kiến thức mới là một điểm cần xem xét.
Nhưng lưu ý rằng yêu cầu cụ thể có thể thay đổi tùy thuộc vào dự án và công ty tuyển dụng. Đôi khi, các yêu cầu về ngôn ngữ lập trình cụ thể hoặc các công nghệ liên quan cũng có thể được nêu rõ trong thông báo tuyển dụng.
Lộ trình thăng tiến của Kỹ sư lập trình nhúng
Lộ trình thăng tiến của một Kỹ sư lập trình nhúng từ thực tập sinh có thể bao gồm các cấp bậc sau đây:
Thực tập sinh (Intern)
Mục tiêu: Tiếp cận và làm quen với công việc thực tế trong lĩnh vực lập trình nhúng.
Nhiệm vụ: Tham gia vào các dự án, học hỏi từ các nhân viên giàu kinh nghiệm, rèn luyện kỹ năng cơ bản.
Thời gian: Tùy theo chính sách của công ty, thường từ vài tháng đến một năm.
Nhân viên lập trình nhúng
Mục tiêu: Phát triển kỹ năng lập trình nhúng cơ bản, hiểu rõ về các nền tảng phần cứng và phần mềm liên quan.
Nhiệm vụ: Tham gia vào các dự án với vai trò nhỏ, đóng góp vào việc phát triển và kiểm thử phần mềm nhúng.
Kỹ sư lập trình nhúng
Mục tiêu: Trở thành một chuyên gia trong lĩnh vực lập trình nhúng, có khả năng giải quyết các vấn đề phức tạp và thúc đẩy sự phát triển của công ty.
Nhiệm vụ: Đảm nhận vai trò lãnh đạo trong các dự án, thiết kế các hệ thống nhúng phức tạp, tối ưu hóa hiệu suất và bảo mật.
Chuyên gia lập trình nhúng (Embedded Software Expert)
Mục tiêu: Đóng góp lớn vào sự phát triển công nghệ trong lĩnh vực lập trình nhúng, có thể giảng dạy hoặc đào tạo nhóm.
Lưu ý rằng lộ trình này có thể thay đổi tùy theo công ty, ngành công nghiệp và quốc gia. Đối với mỗi cấp bậc, việc học hỏi liên tục và cập nhật kiến thức mới là rất quan trọng.