Omer Bartal, Developer in Tel Aviv-Yafo, Israel
Omer is available for hire
Hire Omer

Omer Bartal

Verified Expert  in Engineering

Microcontroller Programming Developer

Location
Tel Aviv-Yafo, Israel
Toptal Member Since
May 16, 2016

An autodidact software developer and architect, Omer started gaining experience at a very young age. He's a consummate professional in the fields of Linux kernel, embedded systems, embedded Linux, network related software, and distributed software with experience supporting hardware schematics planning and board bringup. He also has LAN and WAN experience in all layers and in network structure. Omer is a fast learner and is very ambitious.

Portfolio

Undisclosed
v4l2loopback, Cellular, Image Sensors, WiFi, GPS, Atmel, Embedded Linux
Undisclosed
Linux, SELinux, CentOS, RHEL, Debian, Ubuntu
Undisclosed
Management Data Input/Output (MDIO), Serial Peripheral Interface (SPI), STM32...

Experience

Availability

Part-time

Preferred Environment

Emacs

The most amazing...

...project I've worked on was a zero-copy TCP/IP stack in the Linux kernel. It worked alongside the kernel's stack. Data was reassembled into userspace memory.

Work Experience

Embedded Software Engineer

2016 - PRESENT
Undisclosed
  • 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.
Technologies: v4l2loopback, Cellular, Image Sensors, WiFi, GPS, Atmel, Embedded Linux

Low-level Linux Engineer

2015 - PRESENT
Undisclosed
  • 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.
Technologies: Linux, SELinux, CentOS, RHEL, Debian, Ubuntu

Low-level Embedded Software Engineer

2009 - 2016
Undisclosed
  • 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.
Technologies: Management Data Input/Output (MDIO), Serial Peripheral Interface (SPI), STM32, ARM, Python, Device Drivers, I2C, Embedded Linux, Linux Kernel

Founder and Technical Leader

2011 - 2015
Zircobit
  • 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.
Technologies: Amazon Web Services (AWS), Linux Administration, MATLAB, Python, Amazon EC2, REST APIs, Bitcoin, Algorithmic Trading

Embedded Linux Professional

2008 - 2011
Freelance
  • 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.
Technologies: Linux Kernel, PowerPC, Assembler x86, Assembly, ARM, U-Boot, Embedded Linux

Linux Kernel Engineer

2008 - 2008
Undisclosed
  • 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.
Technologies: TCP/IP, Linux Kernel

Embedded Linux Bringup Team Leader

2007 - 2008
IDF
  • 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.
Technologies: Linux Kernel, Embedded Linux

Linux Administration

2002 - 2008
IDF
  • Administered a Linux server.
  • Supported build systems.
  • Built Asterisk PBX.
Technologies: Linux

System Architect

2007 - 2007
IDF
  • 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.
Technologies: Embedded Systems

Embedded Software Engineer

2006 - 2007
IDF
  • Implemented a USB Mass Storage Class device.
  • Emulated FAT FS to provide an easy method to provide data to the embedded system.
Technologies: USB

Embedded Software Engineer

2005 - 2006
IDF
  • Provided network-related application layer processing for high-availability systems.
Technologies: Embedded Systems, C++, C

Software Engineer

2005 - 2005
IDF
  • Implemented a high bandwidth, application layer, traffic generator. Using Epoll, the event driven application managed thousands of TCP sessions.
Technologies: TCP/IP, C, Linux

Network Test Lab Administration and QA Automation Engineer

2002 - 2005
IDF
  • 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.
Technologies: WAN, Linux Network Stack, LAN, Python, Tcl

Windows API Professional

1997 - 2001
Freelance
  • Implemented mouse event hooking and OCR from on-screen text using VB6.
  • Built website scraping and crawling scripts.
  • Developed mouse and keyboard emulators.
Technologies: Visual Basic, Windows API

ARM MCU Kernel

Implemented a small and flexible kernel for an ARM based STM32 MCU. Used 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.
The main communication method was I2C based and it supported communication between a Linux based CPU as well as for the STM32 instances to communicate between them.

The I2C master side code library compiled both on the Linux CPU as a shared library and statically on the STM32 kernel. On the Linux side the library had Python boost binding which allowed for scripts to be written to control the STM32 functionality.

The kernel had run-time registration mechanisms for registering drivers and attaching to resources, a cooperative scheduler and advanced debugging capabilities. A I2C slave based bootloader was implemented to manage firmware upgrades.

Languages

Embedded C, C, Python, C++, Visual Basic, Tcl, Assembly, Assembler x86

Paradigms

Cross-platform

Platforms

Kernel Programming, Embedded Linux, Debian Linux, Linux, STM32, Amazon EC2, Ubuntu, Debian, CentOS, Amazon Web Services (AWS)

Other

Embedded Systems, Microcontroller Programming, I2C, Operating Systems, Large Scale Distributed Systems, Linux Kernel Drivers, Linux Kernel Programming, Boost.Python, TCP/IP, Linux Kernel, Device Drivers, ARM, Serial Peripheral Interface (SPI), Management Data Input/Output (MDIO), LAN, Linux Network Stack, WAN, USB, Algorithmic Trading, Bitcoin, Linux Administration, RHEL, SELinux, Atmel, GPS, WiFi, Image Sensors, Cellular, v4l2loopback

Tools

U-Boot, MATLAB, Emacs

Frameworks

PowerPC

Libraries/APIs

REST APIs, Windows API

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring