I am a C# software developer, having written a few libraries/snaps/applications from the projects I'm experimenting on.
My name is Ruhan, curious on how things work (software wise) and a person with deep knowledge on
industrial control protocols, embedded computer hardware and a insiatable itch for diagnosing and fixing problems.
Currently residing in Pretoria, Gauteng, South Africa.
- Have a congenital hearing impairment and wear hearing aids
- Electronics tinkerer
- Leveraging my experience in Linux systems and hardware–software integration, frequently consulted with to advise on custom hardware design and Linux support considerations.
- Highly practical with a strong inclination for DIY problem-solving.
🔭 I’m currently working on:
- CirclePiDeskClock -> CirclePiDeskClock
- Porting Ubuntu-Rockchip for Radxa CM3 -> Links to be added soon
- OpenWRT build for Cambium Force200L-SM unit picked up from previous ISP's installation -> Cambium Force 200L-SM branch
- Experimental patches for the ONVIF protocol on go2rtc for Hikvision DVR/NVR -> My go2rtc fork
- A weekend project doing WiFi packet injection/receiving codec2 compressed audio -> WiFiPacketRadio
🌱 I’m currently learning:
- C/C++
- Some golang
- C# and interfacing between Linux and .NET (Marshaling, P/Invoke)
- Some HTML and JS for basic front-end development
- Bash scripting
- Learning how to use and build custom Linux OS images from kernel sources and using Buildroot or a rootfs, and using RAUC for immutable, recoverable OS updates.
💬 What I achieved/built so far:
- Contributed to SharpSNMPLib -> Added SHA384 and SHA512
- Building a basic kernel module for "boardinfo" -> Boardinfo driver
- Custom, minimal Ubuntu Linux distro called AAR-OS -> AAR-OS
- Ubuntu RootFS bootstrapper for arm64 using chroot -> Bootstrap ARM64 rootfs
- Custom RTC tool using raw i2c transactions to interact with RTC's -> RTCSyncTool
- Customised flashing OS image tool/script (flashOS) -> FlashOS
- RAUC Update bundler script (internal development) -> RAUC Bundler
- Embstar MP05 router module infodump for new OpenWRT builds -> Embstar MP05
- Custom support for Fortinet FAP321C Access point -> OpenWRT for Fortinet FAP321C
- Arduino code for WS2812 LED bow-tie code on ATTiny85 -> StarTie
- Ubuntu Core kernel patch-sets for mainlined 5.10.y and 5.15.y kernels
- 5.10.y -> Ubuntu Core Apparmor patch 5.10.y
- 5.15.y -> Ubuntu Core Apparmor patch 5.15.y
- Various Canonical Snap packages
- minicom snap -> Minicom snap
- pci-utils and usb-utils snap -> PCIe and USB
- Linux 'stress' tool snap -> Linux stress
- Linux 'screen' snap -> Screen snap
- Old, deprecated raspi-gpio snap (Used for internal testing) -> Raspi-GPIO-snap
✨ What I wish to achieve:
- Contribute more to open-source projects and support the communities with knowledge I have gained from the years, from doing all sorts of work-related projects and personal projects.
