Tên gọi khác: Kỹ sư thiết kế hệ thống nhúng, Kỹ sư hệ thống nhúng
Là người phát triển các sản phẩm phần mềm cho các sản phẩm nhúng phục vụ trong các lĩnh vực công nghiệp, tự động hóa…
Yêu cầu nghề nghiệp
Nhiệm vụ
- Thực hiện nhiệm vụ thiết kế, phát triển hệ thống trên các nền tảng vi xử lý (ARM, DSP, FPGA…) để đảm bảo các chức năng cũng như các yếu tố kỹ thuật của sản phẩm.
- Nghiên cứu, phát triển, ứng dụng, tùy biến các thuật toán khác nhau cho phù hợp với nền tảng phần cứng và yêu cầu tính năng kỹ chiến thuật của sản phẩm.
- Đọc hiểu thiết kế chi tiết và ý nghĩa của các chỉ số trong thiết kế.
- Xây dựng bài đo, phương pháp đánh giá, phương pháp debug lỗi trong quá trình lập trình, kiểm thử sản phẩm.
- Lập trình, kiểm thử chức năng theo yêu cầu thiết kế quản lý chất lượng đảm bảo chất lượng hệ thống…
Khả năng cần có
- Có khả năng tập trung cao độ.
- Có khả năng kiên nhẫn, cẩn thận, tỉ mỉ.
- Có khả năng chịu được áp lực công việc.
- Có niềm đam mê trong lĩnh vực công nghệ thông tin.
- Có trách nhiệm, đảm bảo thời hạn công việc được giao.
- Có khả năng ổn định cảm xúc và khả năng hành động trong các tình huống quan trọng.
Kiến thức chuyên ngành
- Kiến thức về máy tính và công nghệ thông tin.
- Kiến thức về các ngôn ngữ lập trình phổ biến: C/C++, C#/.Net, Java, Python, PHP…
- Kiến thức về cơ sở dữ liệu MySQL, các công nghệ SQL và ORM.
- Kiến thức cơ bản về hệ thống, mạng, kỹ thuật máy tính, yếu tố an toàn thông tin và bảo mật thông tin.
- Kiến thức về nền tảng xây dựng phần mềm.
- Kiến thức tiếng Anh chuyên ngành.
- Kiến thức Toán học và các thuật Toán để phục vụ cho công việc.
- Kiến thức chuyên môn về lập trình C++, Java.
- Kiến thức về Script: Perl, Python, đặt biệt là Shell script trên Linux.
- Kiến thức về xây dựng môi trường (build environments): Makefile, Cmake.
- Kiến thức về điện tử: các kiến thức về mạch logic, vi điều khiển, vi xử lý, ADC, TIMER, INTERRUPT…
- Kiến thức về các loại giao tiếp (protocol): UART, I2C, SPI, RS232, JTAG,… (nâng cao: SATA, PCIE, USB, CAN, MOST).
- Kiến thức về cấu trúc của hệ điều hành, kiến trúc chính xác của máy tính và hệ điều hành Linux.
- Kiến thức về cấu trúc của dữ liệu và giải thuật.
- Kiến thức về Memory: NOR, NAND, SRAM, DRAM…
- Kiến thức về các hệ điều hành thời gian thực – Real time OS.
- Kiến thức về một trong các công cụ lập trình nhúng cho MCU: STM32Cube IDE, Keil C, MPLAB, Code Composer Studio IDE.
- Kiến thức về các quy định của pháp luật liên quan tới an ninh mạng.
- Kiến thức về máy tính và công nghệ thông tin.
- Kiến thức về các ngôn ngữ lập trình phổ biến: C/C++, C#/.Net, Java, Python, PHP…
- Kiến thức về cơ sở dữ liệu MySQL, các công nghệ SQL và ORM.
- Kiến thức cơ bản về hệ thống, mạng, kỹ thuật máy tính, yếu tố an toàn thông tin và bảo mật thông tin.
- Kiến thức về nền tảng xây dựng phần mềm.
- Kiến thức tiếng Anh chuyên ngành.
- Kiến thức Toán học và các thuật Toán để phục vụ cho công việc.
- Kiến thức chuyên môn về lập trình C++, Java.
- Kiến thức về Script: Perl, Python, đặt biệt là Shell script trên Linux.
- Kiến thức về xây dựng môi trường (build environments): Makefile, Cmake.
- Kiến thức về điện tử: Mạch logic, vi điều khiển, vi xử lý, ADC, TIMER, INTERRUPT…
- Kiến thức về các loại giao tiếp (protocol): UART, I2C, SPI, RS232, JTAG… (nâng cao: SATA, PCIE, USB, CAN, MOST).
- Kiến thức về cấu trúc của hệ điều hành, kiến trúc chính xác của máy tính và hệ điều hành Linux.
- Kiến thức về cấu trúc của dữ liệu và giải thuật.
- Kiến thức về Memory: NOR, NAND, SRAM, DRAM…
- Kiến thức về các hệ điều hành thời gian thực – Real time OS.
- Kiến thức về một trong các công cụ lập trình nhúng cho MCU: STM32Cube IDE, Keil C, MPLAB, Code Composer Studio IDE.
- Kiến thức về các quy định của pháp luật liên quan tới an ninh mạng.
Kỹ năng (nghiệp vụ, kỹ năng mềm,…)
Kỹ năng cơ bản
- Kỹ năng tư duy logic.
- Kỹ năng tìm kiếm thông tin.
- Kỹ năng giao tiếp.
- Kỹ năng thuyết trình.
- Kỹ năng làm việc độc lập và làm việc nhóm.
- Kỹ năng lập kế hoạch và tổ chức công việc.
- Kỹ năng xử lý vấn đề.
- Kỹ năng quản lý.
- Kỹ năng sử dụng thành thạo các phần mềm tin học văn phòng.
- Kỹ năng tự học và ứng dụng vào công việc.
- Kỹ năng quản lý thời gian.
Kỹ năng nghiệp vụ
- Kỹ năng lập trình.
- Kỹ năng thiết kế và phát triển phần mềm ứng dụng.
- Kỹ năng sử dụng, đọc hiểu tiếng Anh chuyên ngành.
- Kỹ năng cập nhật kiến thức, xu hướng về công nghệ, ngành và lĩnh vực hoạt động.
- Kỹ năng kiểm thử, vận hành và bảo trì phần mềm.
- Kỹ năng quản lý hệ thống cơ sở dữ liệu.
- Kỹ năng xác định các yêu cầu tài nguyên dự án công nghệ thông tin.
- Kỹ năng phân tích thuật toán.
- Kỹ năng tích hợp các giải pháp phần mềm riêng lẻ vào các hệ thống cấp cao hơn.
- Kỹ năng phân tích dữ liệu.
- Kỹ năng thiết kế PCB: Allegro hay Altium.
- Kỹ năng sử dụng các loại dụng cụ máy đo.
- Kỹ năng nghiên cứu, phát triển ứng dụng, tùy biến các thuật toán khác nhau phù hợp với từng nền tảng phần cứng và yêu cầu tính năng kỹ chiến thuật của sản phẩm.
- Kỹ năng đọc hiểu thiết kế chi tiết và ý nghĩa của các chỉ số trong thiết kế.
- Kỹ năng xây dựng bài đo, phương pháp đánh giá; phương pháp debug lỗi trong quá trình lập trình, kiểm thử sản phẩm.
- Kỹ năng sử dụng các ngôn ngữ lập trình, kiểm thử chức năng theo yêu cầu thiết kế quản lý chất lượng đảm bảo chất lượng hệ thống…
Công cụ nghề nghiệp
Máy móc, thiết bị
- Máy tính.
- Điện thoại.
- Máy tính bảng.
Công cụ phần mềm
- Phần mềm CAD.
- Các phần mềm tin học văn phòng: Word, Excel, Powerpoint…
- Các phần mềm truy cập và chia sẻ dữ liệu như: Dropbox, Google Drive, Microsoft SharePoint.
- Trình biên dịch Cross ToolChains hỗ trợ cho AT91SAM, hoạt động chính trên Linux.
- Công cụ Putty.exe hỗ trợ cho lập trình truy cập Secure Shell thông qua Ethernet hay 2 chuẩn RS232.
- Công cụ Keil phục vụ việc lập trình cho các dòng ARM, hoạt động chủ yếu trên Windows.