HOME ABOUT PROJECTS CONTACT

Yuri Schaeffer

Freelance software development, Linux, C, Python, embedded.

logo

Yuri @ sigHUP!


I'll help your company with architecture and development of your in house software. Contributing features in Open Source software you need and use. Or swiftly reinforce your existing team for a limited period of time. My specialties are performance, low-level networking, Linux, kernel, and embedded development. Among all the programming languages I enjoy using C and Python the most.

Platform & Architecture


Language & Libraries


Tools & Processes


Protocols & Algorithms


System & Administration


Open Source & Contributions


Projects, for fun and for profit.


These are some of the projects I took on in the past years. It is just a small sample. But the take-away should be, even though at heart I'm a software guy, I don't shy away when things get physical!

icBind: I Can't Believe It's Not DNS

ESP running ICBIND.

With icBIND I took on the challenge to develop a limited but fully working authoritative DNS server running on a ESP8266 chip. It has no permanent storage so it will perform an AXFR of its zone on boot. The chip has insufficient memory to parse the zone (for dname decompression) and simultainiously store it. It will actually to the AXFR twice: First do an inplace parse and build the decompression tables, only then decompress and store the data.

Linux Kernel Debugging

Debugging hardware

A client was using an AI development board running an embedded Linux. They wanted to connect an advanced thermal camera with global shutter to its MIPI port. I was tasked with figuring out why it didn't work and then to make it work. I had whip out my oscilloscope and get elbow deep in Linux kernel code. One of my deliverables was a custom V4L2 kernel driver.

Smooth Camera Movement

Polynomial

At work we produced and processed large 3D point clouds. We used our favourite Open Source tool CloudCompare for recording cool fly-throughs for clients. The camera movement system was very linear and therefore quite choppy. I contributed a patch to make the camera path follow a smooth cubic polynomial.

Rapid Prototyping

3D printing

At a previous job I was in the lead for all things software. Our main focus was building physical prototypes as proof of concepts for new technologies or applications thereof. Being on a shoe-string budget and on short deadlines caused me to do a lot of rapid prototyping and creative problem solving. This includes CAD modelling, 3D printing, soldering, welding and electronics.

Counting sheets of toilet paper

Optical mouse guts

Sensors from discarded optical computer mice turn out to be relatively easy to interface with. By reusing the optics and connecting the chip to a microcontroller I've build a toilet paper roll holder that would keep track of and display the number of used sheets per 'session', totals, and all-time high. A fun learning project for which most photos are sadly lost due time.

CNCD: CNC Daemon safe for the Internet

CNCD user interface

It is very convenient to being able to administer and monitor CNC devices such as CNC routers or 3D printers remotely. Exposing physical devices that can potentially burn your house down to malicious actors is objectively a bad idea. CNCD is an efficient headless GCODE streamer that supports multiple devices operating simultaneously using Python 3's async capabilities extensively. It relies on the SSH protocol to achieve a level of security good enough for the Internet.

Reverse engineering Drone Transmitter

Calibration interface.

The HK-T6v2 is a cheap popular transmitter for the hobby drone/RC market. It comes with a buggy windows tool to configure and calibrate the device. I reversed engineered and documented the protocol. Next I made a TUI program so I could configure the device from a Linux environment.

R&D: Computer Vision Algorithm design

LiDAR pointcloud.

I've researched, designed and implemented SLAM algorithms for mobile laser scanners. Combining gigabytes of measurements acquired over a long time while on the move without positioning data or visible markers to a single high resolution 3D model. I'm proud of the quality of the result that steadily kept improving during the project and the stellar performance of the program giving the user a smooth experience.

Contact Me


Haarlem, The Netherlands

+31(0)630378830

yuri@sighuphup.nl