Embedded Software Engineer2016 - PRESENTUndisclosed
Technologies: Embedded Linux, Atmel SAMD, Omnivision Image Sensor, Freescale iMX6, Cellular Modem, GPS, Wifi, V4L2
- Built freescale iMX6 embedded Linux bringup.
- Developed an Omnivision image sensor driver.
- Created Atmel SAMD microcontroller bringup.
- Built Atmel SAMD drivers for cellular modem, wifi, and GPS.
- Programmed a bootloader for the Atmel SAMD.
- Implemented a protocol between the Atmel SAMD and the iMX6 processor.
- Designed the complete solution system.
Low-level Linux Engineer2015 - PRESENTUndisclosed
Technologies: Low-level Linux, Linux auditing, auditd, Ubuntu, Debian, Redhat, Centos, SELinux
- Implemented the Auditd plugin (audispd plugin). The audit events are parsed and presented in a more usable structure.
- Consulted the Linux kernel code needed in order to fully understand what to expect in the auditing information. The application needs to support multiple kernel versions and distributions and SELinux configuration is needed in order to avoid the SELinux subsystem from blocking the operation of the plugin.
Low-level Embedded Software Engineer2009 - 2016Undisclosed
Technologies: Linux Kernel, Embedded Linux, STM32 family microcontrollers, I2C, SPI, MDIO, Device drivers, Python, ARM
- Created a Linux-kernel-like compilation model where the same code compiles with different features for different boards with different hardware and hardware revisions - altogether 14 different setups were supported.
- Designed an I2C based communication protocol between the main board, running a Linux based system, and the STM32 device.
- Built a Linux library around the I2C protocol with Python boost bindings. The library ran on multiple hardware platforms - x86 and ARM based.
- Created Python scripts controlling the hardware and responding to hotplug events to configure the hardware.
- Implemented a small and flexible kernel on the ARM based STM32 chip. Modules register themselves and request kernel resources from the kernel at run time. A cooperative scheduler manages the system and provides debugging capabilities.
- Implemented an I2C slave based bootloader for the STM32 chip.
Founder and Technical Leader2011 - 2015Zircobit
Technologies: Algorithmic trading, Bitcoin, REST API, Distributed processing, High availability, Amazon EC2, Python, Matlab, Linux administration
- Designed and implemented a distributed processing system to cope with the masses of computations and back-testing needed for the research.
- Designed a storage paradigm for the data, calculation results, and the state of ongoing calculations.
- Designed advanced and flexible code structures that can handle complex econometric research.
- Calculated the improbability between Python and Malab.
- Implemented economic models that integrate with each other.
- Implemented a multi-process, high availability system.
- Built complex IPC mechanisms.
Embedded Linux Professional2008 - 2011Freelance
Technologies: Embedded Linux, U-Boot, ARM, x86, PowerPC, Linux Kernel, Character device drivers, Block device drivers
- Embedded Linux bringup.
- Adapted U-Boot.
- Built Linux kernel device drivers.
- Created cross-compiling root file systems and custom packages.
- Provided Linux-related troubleshooting.
- Built root filesystems.
Linux Kernel Engineer2008 - 2008Undisclosed
Technologies: Linux Kernel, TCP/IP
- Implemented a zero-copy TCP/IP stack. The stack worked side-by-side with the Linux kernel. It attached to the Ethernet driver and reassembled the TCP session into the userspace application's memory.
- Implemented a memory mapped double-buffer IPC between the kernel and the userspace application.
Embedded Linux Bringup Team Leader2007 - 2008IDF
Technologies: Embedded Linux, Linux kernel, Char device drivers, Block device drivers, Super Hitachy
- Led a team of embedded engineers. The team implemented Linux drivers for a proprietary embedded platform with a Super Hitachy CPU.
- Developed character device drivers.
- Developed interrupt driven block device drivers.
- Ported an existing software to the embedded Linux framework.
- Built environment planning and bringup.
- Cross-compiled the environment and cross-built the root filesystem.
Linux Administration2002 - 2008IDF
- Administered a Linux server.
- Supported build systems.
- Built Asterisk PBX.
System Architect2007 - 2007IDF
Technologies: Distributed embedded systems, network processing systems
- Designed a network processing embedded system.
- Solved theoretical networking issues.
- Designed a communication scheme between the software and a network processor.
- Implemented proof of concept.
Embedded Software Engineer2006 - 2007IDF
Technologies: USB, Cypress FX2, FAT FS
- Implemented a USB Mass Storage Class device.
- Emulated FAT FS to provide an easy method to provide data to the embedded system.
Embedded Software Engineer2005 - 2006IDF
Technologies: C, C++, Embedded, Proprietary/No Operating System, Distributed Processing
- Provided network-related application layer processing for high-availability systems.
Software Engineer2005 - 2005IDF
Technologies: Linux, C, TCP/IP
- Implemented a high bandwidth, application layer, traffic generator. Using Epoll, the event driven application managed thousands of TCP sessions.
Network Test Lab Administration and QA Automation Engineer2002 - 2005IDF
Technologies: TCL, Python, Linux networking tools, WAN technologies (SDH, PDH, etc), LAN
- Configured traffic generators.
- Configured network equipment, especially Cisco switches, routers and ADMs.
- Planned complex WANs to carry the traffic created by testing equipment.
- Automated control of network traffic generators using TCP, Python or Windows API when there was no standard API.
Windows API Professional1997 - 2001Freelance
Technologies: Windows API, VB6
- Implemented mouse event hooking and OCR from on-screen text using VB6.
- Built website scraping and crawling scripts.
- Developed mouse and keyboard emulators.