Technical Knowledge
- Knowledgeable with AOSP (Android 9, 10, 11, 12), Android porting, AIDL, HIDL, native Android application/service development and Android security concepts (TLS, HDCP, ARM TrustZone, SELinux).
- Knowledgeable with modular Linux OS/BSP platform development and porting using Yocto Project and several build systems (e.g. BitBake, GNU Make, CMake, qmake).
- Knowledgeable with Linux driver development. Previously have written drivers for e.g. Continental ARS-308 RADAR, Hirschmann Car Communication FM/AM Radio Tuner in commercial products. An example open source driver is given: TEA5767 FM Radio Tuner Module.
- Experienced with Linux driver porting using devicetrees.
- Excellent with several programming languages: C, C++, Bash, Python, and MATLAB. Familiar with VHDL, Java.
- Application experience regarding multimedia, computer vision, and robotics in Linux using Qt 5, Linux ecosystem (bluez, pulseaudio, ofono, network daemons, systemd, SystemV, and many more), OpenCV, and ROS.
- Able to model, describe and simulate robots, other systems, control systems and simulations (Robot Operating System, Gazebo, SDF, MATLAB, Simulink, Simscape)
- Familiar with low-level real-time embedded system development targeting XMOS, STM32, TDA2x SoCs and CPUs using SYS BIOS and FreeRTOS.
- Familiar with describing hardware on FPGAs using VHDL.
- Familiar with Android application programming with Java language.
- Knowledgeable with PCB design and realization (Altium Designer, KiCad).
- Able to work with 2D graphics and 3D modeling (Qt 3D Studio, Google SketchUp, Adobe Fireworks).
- Knowledgeable with system architecture design and modeling (SysML, UML, Enterprise Architect).
- Knowledgeable with project management workflows ASPICE, V-Model and Agile.
- Knowledgeable with project management tools Polarion, Jira, Confluence, Redmine, Gerrit/Git, Travis.
- Knowledgeable with documentation using LaTeX, Sphinx, Doxygen, MS Office.
- Hands-on platform porting and application development experience with industry-compliant well known SBCs and SoCs:
- NXP i.MX 8 QuadMax Multisensory Enablement Kit
- TI DRA7xx EVM (Jacinto 6) ES 1.0
- Qualcomm Snapdragon 8150 based custom boards (msmnile_au, sm8150)
- Qualcomm Snapdragon 820 based custom boards (msm8996)
- Qualcomm S820Am v2 Automotive Development Platform
- ASUS Tinker Board 2 (rk3399, AOSP)
- Nvidia Jetson Xavier NX
- Nvidia Jetson Nano
- Pandaboard ES
- Raspberry Pi 4, 3, 2, 1, and Zero Wireless
- Baremetal programming on industry-specific boards and multi-core microcontrollers:
- Hands-on experience with a couple of FPGAs:
- Embedded development on several operating systems:
- Yocto Project based Custom Linux (mainly)
- Linux Kernel (mainly)
- Android Open Source Project (mainly)
- FreeRTOS
- TI SYS-BIOS
Please note that in this know-how description, I have used some words to describe my level on certain topics. Here are what those words mean:
able to means that I have previously worked on the topic but it might take some time to regrasp it.
familiar means that I know the context and worked on a few projects regarding the topic.
experienced means that I have experience with the topic.
knowledgeable means that I am quite confident that I can tackle challanges regarding said topic.