Skip to content
View maxxlife's full-sized avatar
👀
👀
  • Gdansk

Organizations

@edukawa

Block or report maxxlife

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
maxxlife/README.md

Hi, I'm Maksim Masalski (@maxxlife) 👋

🚀 My website showcasing my professional achievements

Embedded Systems, Zephyr RTOS, Physical AI & Robotics Architect
Former Zephyr RTOS Engineer at Intel (@maksimmasalski) · Top 5% Nordic Semiconductor Contributor on Hackster.io · Active open-source hardware performance hunter (@maxxlife).

Hackster.io LinkedIn

  • Core Focus: Real-Time Operating Systems (Zephyr RTOS), Arm Cortex-M / DSP & NPU low-level optimization (CMSIS-NN, bare-metal workloads), Physical AI, and Autonomous Mobile Robotics (ROS 2 / AMR).
  • Engineering Approach: Every optimization and bug report is backed by real silicon measurements (DWT->CYCCNT), objdump instruction/register analysis, and exhaustive bit-exact verification suites.

🚀 Highlighted Open-Source Optimizations & PRs

1. ARM-software/CMSIS-NN — 1.385×–1.408× INT4 (s4) Speedup on Cortex-M33

  • Upstream PR (Merged): ARM-software/CMSIS-NN#250 — Optimize read_and_pad_s4 unpacking on DSP targets · Merged Commit: 7b515b9
  • Benchmark & Reproducer Repo: maxxlife/cmsis-nn-s4-cortex-m33-benchmark
  • Technical Summary:
    • Identified that arm_nn_read_s8x2() copied 2 bytes into an uninitialized 32-bit int32_t, causing GCC 14 (-Ofast) to emit BFI instructions that locked callee-saved registers across loop iterations and forced stack spills in arm_nn_vec_mat_mult_t_s4().
    • Proved that the 0x00FF / 0xFF00 masks in read_and_pad_s4() are architecturally redundant before SXTB16, collapsing a 5-instruction sequence into a single orr.w Rd, Rn, Rn, lsl #8.
    • Result on Nordic nRF54LM20B (Cortex-M33 @ 128 MHz): Reduced hot-loop instructions from 78 to 51 (0 BFI, 0 stack accesses), achieving a 1.385× speedup (−27.8% CPU cycles) from a 3-line helper change and 1.408× (−28.9% cycles) with a spill-free 4-row loop, verified bit-exact across all 65,536 16-bit inputs and 1,152 matrix test cases.

⚡ Hardware & Edge AI Deep-Dives on Hackster.io/maxxlife

🏅 Recognitions: Top 5% Contributor in Nordic Semiconductor, Automotive, and Vehicles · Top 10% Contributor in Robotics and Arduino (63,000+ project views).

Featured Project Platform & Stack Highlights
nRF54LM20B Axon NPU Benchmark on Zephyr Nordic nRF54L, Axon NPU, Zephyr RTOS Bypassing TFLM to compile bare-metal NPU workloads and benchmark silicon limits on Zephyr.
Build a SoftSIM Architecture Prototype on nRF9151 Nordic nRF9151, Zephyr RTOS Shell Compact SoftSIM transport and provisioning prototype built on Zephyr RTOS.
Cellular HTTP Server LED Control with Protobuf nRF9151, Zephyr RTOS, LTE-M, Protobuf, Onomondo Turning the nRF9151 into a cellular HTTP server with compact Protobuf payloads (18.3k+ views).
Commercial-Grade Cellular IoT on nRF9151 nRF9151, Zephyr RTOS, Onomondo / Conexa SIM Enterprise cellular connectivity series on Zephyr RTOS (34.6k+ combined views).
Taming the micro:bit v2 Audio with Zephyr RTOS BBC micro:bit v2 (nRF52833), Zephyr ADC Custom low-level ADC sampling and real-time audio visualization on Zephyr RTOS.
CodeWheels & LEGO® Super Mario™ Robotics Autonomous Mobile Robots, BLE, Embedded Control Self-driving robot racing platform (CodeWheels) and interactive robotic vehicles.

🛠️ Merged Contributions in Zephyr RTOS (zephyrproject-rtos/zephyr)

(Authored during my time on the Zephyr RTOS team at Intel under @maksimmasalski / maksim.masalski@intel.com):

Commit Description Date
843ea97eac4 doc: add parasoft tool section to the coding guidelines page 2021-07-13
0343118abba thread: set mxcsr bit 6 DAZ to zero to disable denormals-are-zeros 2021-09-22
164029b0c5b testsuite: suppress usage of setjmp in a testcode (rule 21_4-a) 2021-07-07
fa97ed27719 docs: getting started guide 3rd party toolchains fixes 2021-06-25
e02c7bd4663 libc: types: suppress deviation 2021-07-07
8ed9cddbc57 lib: add explanation comment in "work->handler" case 2021-07-07
52a4ba26ced lib: os: cast to the same size composite expression 2021-06-10
89212a7fbf5 doc: fix image resolution of the ITE IT8XXX2 series board 2021-06-24
c68054c9e51 include: sys: cast to the same size composite expression 2021-06-10
8535a01d925 libc: types: add a comment to the "wrong definition" code 2021-06-21
466c5d9dea1 arch: x86: core: remove order eval of 'z_x86_check_stack_bounds' args 2021-05-12
ab3a207baf8 testsuite: suppress usage of setjmp in a testcode 2021-06-21
cbfd33f2ec2 arch: add comments to empty default case, add default LOG_ERR 2021-06-03
e96df400045 arch: x86: cast to the same size composite expression 2021-06-09
9eab89ff204 lib: replace one case switch with if operator 2021-05-18
a61edd480d3 lib: add default labels and comments to switch statements 2021-06-03
e9600a75fc1 kernel: thread: add default case, remove unused break 2021-06-02
3960d413db7 lib: os: add braces to 'if' statements 2021-06-02
78ba2ec8300 coding guidelines: add to function prototypes form named parameters 2021-06-01
366de7a8904 logging: z_vrfy_log_filter_set: remove extra check 2021-06-01
9867ac2a405 posix: pthread_exit: check for null before dereferencing 2021-05-26
7711435347b lib: remove redundant check for null 2021-05-26
970820e92d1 sched: create unique function name 2021-05-25
f18b728a4cd heap: create unique variable name 2021-05-25
d6c9d40ee06 userspace: remove dead code 2021-05-24
0f5aab11822 drivers: change suffix ull to ULL 2021-05-20
5a9e9e8fd15 logging: remove dead code enum 2021-05-20
929956df70d coding guidelines rule 14_3_j: add explicit case check 2021-05-17
dbfa5a04dec coding guidelines 11.9: fix literal zero as the null-ptr-constant 2021-05-08
136c9424c5e coding guidelines 10.4: casting operands to have same types 2021-04-30
0b6539c3458 doc: fix display of the ISR_DIRECT_DECLARE example usage 2021-05-07
2c138fb59fa tests: add new kernel objects tests 2020-10-21
555408d4e75 tests: access kernel object with private data using system call 2020-11-06
80123899c1e tests: add test to verify assertion cathes overlapped partitions 2020-11-13
c7a5c406b76 doc: timing docs fix misprint 2020-11-20
b2bd0a06080 samples: add capture output for the mec15xxevb_assy6853 pm sample 2020-11-06
56c02e535d1 samples: change name for the mec15xxevb_assy6853 pm sample 2020-10-21
da3e834d586 lib: posix: unchecked return value while taking semaphore 2020-09-18
a4f1a5f58f6 tests: add new kernel objects tests 2020-05-27
3ce7afdaaa0 tests: sched_api remove misprints and etc 2020-10-15
9eddc69029e tests: added new tests for memory partitions 2020-04-17
2cd556a689e tests: arch: x86 mem protection check CPU scrubs regs after syscall 2020-09-05
cd068c26dca doc: replace the latest sdk with 0.11.4 version 2020-09-18
f08f9d6410a samples: exclude mec15xxevb_assy6853 in espi sample when sanitycheck 2020-09-16
d7468bf836b samples: Add fixtures for samples interacting with keyboard and mouse 2020-09-08
fd155249124 tests: arch: arm mem protection check CPU scrubs regs after syscall 2020-08-29
124b55a73d5 doc: fix incorectness in multiple overlay files description 2020-08-14
435b9a1e4ba tests: memory protection thread stack exit uninit 2020-05-18
e9ffd9574da tests: copyright message add year to the existing 2020-07-02
d70ee1eda73 tests: copyright message add year to the existing 2020-07-02
d735e971f65 tests: mem protection tests updated tags 2020-05-15
39fe4ef51a2 tests: semaphore tests overhaul 2020-05-26
d18ffc9307c tests: add new threads permissions tests, modify existing 2020-05-28
4f35917d1bd tests: add check return value in futex_wake() 2020-07-28
9ccbfbd84e4 tests: code review changes 2020-07-14
32aa91d8034 tests: add new futex test 2020-05-26
c9a9aacb3f2 tests: update kernel objects tests 2020-07-15
a3621cecd54 tests: copyright message add year to the existing 2020-07-02
2893aa0bc11 tests: mem protection new test inherit resource pool 2020-05-15
819197fba05 tests: add new semaphore tests 2020-05-26
2053814d7cd tests: make code style changes according with review comments 2020-07-09
6eabee26810 tests: rebase with 2.3 release changes 2020-06-24
416feaab0c4 tests: resolve shippable errors 2020-05-12
7808a784176 tests: workqueue tests overhaul adding new tests 2020-02-21
223723e8a9b tests: mem protect syscalls update Doxygen tags, fix API, misprints 2020-05-14
f221dfec2fc tests: added new doxygen tags for memory protection tests 2020-05-21
f25406af99e tests: add new Doxygen tags to threads tests 2020-05-28
6a805dff9f3 tests: fix text output in timing_info test 2020-06-05
82855aa4e06 tests: update doxygen tags for syscalls tests 2020-05-28
c25262c8292 tests: remove duplicate names for tests 2020-02-13
e31199a3d42 docs: mec15xxevb assy6853 updated sequence events 2020-01-07
12e72953071 docs: error in mec15xxevb assy6853 in set up manual 2020-01-17
33336e78f62 drivers: spi: Support PM busy state where relevant in DW 2019-12-25
de345e2a63a docs: mec15xxevb assy6853 updated set up manual 2019-12-20
b7f07dcff78 docs: mec15xxevb assy6853 updated set up manual 2019-12-13
1b4b9ef5352 sanitycheck: hardware map added support of the microchip board 2019-12-18
e8beacdfad6 tests: remove duplicate name for the kernel arch.interrupt test 2019-11-12
fe1ff2f2150 include: kernel readme misprint fix 2019-10-29
21d866e3e99 tests: remove duplicate names for the peripheral tests 2019-10-24
464c795949f tests: remove duplicate names for the filesystem tests 2019-10-24
11d6385ebe8 tests: remove duplicate names for the net tests 2019-10-24
432bb69babb tests: remove duplicate names for the boards tests 2019-10-24
e9d7565d663 tests: remove duplicate names for the bluetooth tests 2019-10-24
b2bf7e76d04 tests: remove duplicate names for the libraries tests 2019-10-24
6882d975316 tests: new updated names for the kernel tests 2019-10-24
2c5be79e25c tests: remove duplicate names for the shell tests 2019-10-24
813ef68554a tests: updated names for the tests 2019-10-22
d85b45b072d tests: updated names for the arch interrupt tests 2019-10-22
11faaacd1e2 tests/posix/common: Fix miscalibrated timing test 2019-10-23
9f26f7d3d40 tests: updated names for the kernel tests 2019-10-22
03e6d3bb41d tests: updated names for the dns tests 2019-10-18
9901d8cf4bc samples: sample modified according to the changes in Zephyr macros 2019-05-30
a58a852e80d drivers: added break in function stm32_clock_control_get_subsys_rate 2019-05-02
f1f1a9f38af tests: fix unchecked return value in test_net_pkt_basics_of_rw 2019-05-07
888f4dd0963 samples: LSM6DSL accel fix unchecked return value sensor_trigger_set() 2019-04-29
d1f3bba7052 can: fix unchecked return from clock_control_get_rate 2019-03-04
eead071b184 bluetooth: fix unchecked return from lll_clk_off in ll_test_end 2019-03-03
b324f35e617 macros: deleted macros SECONDS(), MSEC(), USEC() 2019-02-27
039d8ecf6a8 drivers: Changed return statement in function get_timeout() 2019-02-21
9f8db3d7299 can: cast value 1U to type ULL in function can_stm32_set_filter 2019-02-28
f32b94c46ef can: cast value 1U to type u64_t in function can_stm32_set_filter 2019-02-28
a4c0810aa01 shell: changed dead code part in function buffer_trim() 2019-02-24

🤖 Robotics, Embedded & Verification Stack

  • RTOS & Firmware: Zephyr RTOS, nRF Connect SDK (nRF54L / nRF9151 / nRF52 / nRF53), FreeRTOS, Bare-Metal Armv7E-M / Armv8-M (Cortex-M4 / Cortex-M33)
  • Edge AI, NPU & DSP: Arm CMSIS-NN, Nordic Axon NPU, TensorFlow Lite Micro (TFLM), INT4/INT8 Quantization, SIMD/DSP Intrinsics (SXTB16, SMLAD), Automated LLM-Assisted Hardware Profiling
  • Robotics & Engineering: ROS / ROS 2 (slam_toolbox), AMR Navigation, C/C++, Python, 3D CAD (SolidWorks / Onshape), TRIZ

Pinned Loading

  1. a-star-pathfinding-visualizer a-star-pathfinding-visualizer Public

    A robust, interactive visualization tool for the A* pathfinding algorithm, built with React and TypeScript.

    TypeScript

  2. ann-logic-explorer ann-logic-explorer Public

    The following XML contains a complete, interactive React application for visualizing Approximate Nearest Neighbor (ANN) search logic, specifically using the IVF (Inverted File Index) algorithm, whi…

    TypeScript

  3. cnn-convolution-visualizer cnn-convolution-visualizer Public

    Interactive visualization of CNN convolution layers with Gemini AI explanations

    TypeScript

  4. cpu-npu-visualizer-3d cpu-npu-visualizer-3d Public

    An interactive 3D visualization comparing Intel Core Ultra CPU vs. NPU architectures for AI workloads. Built with React Three Fiber and powered by Google Gemini for real-time performance insights.

    TypeScript

  5. edukawa/interactive_microbit_mario_kart_toy edukawa/interactive_microbit_mario_kart_toy Public

    This project lets you control a toy kart from a 72043 set using Mario's toy figure built-in IMU, sending smooth analog throttle and steering commands to a BBC micro:bit over Bluetooth.

    Python 9