Element Green, Developer in Montrose, CO, United States
Element is available for hire
Hire Element

Element Green

Verified Expert  in Engineering

Embedded Systems Developer

Montrose, CO, United States

Toptal member since April 21, 2021

Bio

Element has over 18 years of software development experience, including Linux and embedded systems, as well as a wide range of other technical and creative skills: SQL, VHDL on FPGAs, schematic capture, PCB layout, website development, Django, 3D CAD, GUI development, Android development, and more. Element's particular strengths are with C and Python. Element is highly self-motivated, enjoys learning new tech, has exemplary communications skills, and prides himself on delivering quality work.

Portfolio

Matrix Switch
C, Linux, Python, GCC, GNU Make, KiCad, Odoo, Django, FreeCAD, Git, JavaScript...
SoftwareFlair, Inc.
C, Linux, ARM Embedded, Networking, SQL, Python, GCC, GNU Debugger (GDB)...
Horizon Instructional Systems
Linux, Networking, Qmail, PHP, Apache, SQL

Experience

  • Linux - 18 years
  • C - 18 years
  • SQL - 18 years
  • ARM Embedded - 16 years
  • Python - 12 years
  • JSON - 8 years
  • VHDL - 6 years
  • Django - 6 years

Availability

Part-time

Preferred Environment

Linux, CMake, GCC, gedit, GNU Debugger (GDB), Python

The most amazing...

...project I've developed is a 1024 input by 128 output analog video router that is currently deployed by Los Angeles DOT.

Work Experience

Chief Technology Officer

2011 - 2020
Matrix Switch
  • Developed 100% of the company software for a manufacturer of professional broadcast video and audio routing products. Engineered hardware on several products for schematic capture and PCB layout using KiCad.
  • Created embedded systems firmware for video/audio routing products using Linux, FreeRTOS, and C main() (no operating system). Firmware was written in C and primarily on ARM-based microcontrollers. Ported FreeRTOS to custom STM32-based ARM controllers.
  • Engineered PCB hardware and developed VHDL logic on a Xilinx FPGA for a 48x48 digital audio router utilized in sports stadiums throughout the USA.
  • Engineered hardware for video crosspoint/controller and developed embedded FreeRTOS firmware for a 64x64 SDI digital video/audio router using a dense BGA component footprint.
  • Developed and maintained the company Django website, including the Python logic and templates, graphics with Inkscape and Gimp, 3D product illustrations with Blender 3D, product manuals from a template system, and an advanced product search interface.
  • Built an Android app for controlling video and audio routers over a TCP/IP port.
  • Developed an SDI video/audio test application with a Black Magic Decklink card and a C++ API. A test 12G-SDI video signal was generated and looped back through the device under test that was then displayed on a monitor with data error detection.
  • Engineered several 3D CAD chassis components for metal fabrication for product enclosures.
  • Constructed all firmware, engineered most PCB hardware, and several mechanical components of a large 1024 input by 128 output composite analog video router, deployed by Los Angeles DOT to monitor traffic cameras throughout the city.
  • Implemented an MRP/ERP system using Python-based Odoo (previously OpenERP) and customized for the company's manufacturing, purchasing, and sales operations.
Technologies: C, Linux, Python, GCC, GNU Make, KiCad, Odoo, Django, FreeCAD, Git, JavaScript, MySQL, PostgreSQL, VHDL, ARM Linux, ARM Embedded, XML, JSON, SQL, Apache, TCP/IP, Blender, jQuery, GNU Debugger (GDB), Networking, Inkscape, FreeRTOS, C++, Device Drivers, Linux Device Driver, APIs, REST APIs

Software Developer

2003 - 2010
SoftwareFlair, Inc.
  • Developed an embedded Linux GUI for an award-winning HD Radio Exciter product, a central control daemon with custom protocol, and a Linux kernel driver interfacing with an FPGA in a Linux-based HD Radio Encoder companion product.
  • Built a serial to an ethernet bridge product on an embedded system for bridging IP networks over a long-distance serial link.
  • Created embedded firmware for a USB-controlled gambling machine button interface with RGB spectrum LEDs on an ARM-based microcontroller.
  • Constructed a Linux daemon for a network gateway product for collecting gambling machine statistics wirelessly over Zigbee interfaces.
  • Developed an embedded systems control interface for a medical laser and defined a text-based command protocol for it.
  • Built the application firmware and Linux distribution for a 2-rack unit control panel with LCD for controlling video and audio routers.
Technologies: C, Linux, ARM Embedded, Networking, SQL, Python, GCC, GNU Debugger (GDB), ARM Linux, TCP/IP, GTK+, MySQL, GNU Make, XML, Device Drivers, Linux Device Driver, APIs

Computer Programmer | Systems Analyst

1998 - 2001
Horizon Instructional Systems
  • Deployed Internet and network services on Linux servers, including web, email, file sharing, and databases for this charter school, which was, at that time, the largest charter school in California.
  • Implemented and maintained a Gmail email list server for organization-wide administrative communications.
  • Developed interactive PHP web interfaces connected to SQL databases.
  • Handled technical support calls from administration concerning Internet services.
Technologies: Linux, Networking, Qmail, PHP, Apache, SQL

Software Developer

1997 - 1998
Sophrosyne Systems
  • Developed 2D graphics routines in C for a medical patient-monitoring device.
  • Optimized C graphics routines by directly accessing graphic card memory.
  • Cleaned up and simplified C code written by other team members.
Technologies: C, 2D Graphics

Alkimiya

A software synthesizer and instrument designer for computer music composition. It utilizes an advanced Bézier curve vector synthesis architecture for defining instrument sounds with the ability to morph between waveforms by animating curve control points in response to other waveforms or input controllers. It also utilizes the GTK toolkit for the cross-platform GUI (Linux, Windows, and Mac). It was programmed in C with highly optimized multi-threaded design.

I am the creator and currently sole developer of this application and the Kymorphia Vector Instrument format.

Kymorphia Website

A Django and Wagtail-based website with accounts, signup, forums, profiles, and PayPal product payments.

I implemented custom Wagtail content types and a file download app that protects paid file downloads and tracks file download statistics. I am the sole developer of this website and deployed it on an Ubuntu Linux VPS using an Nginx web server and MySQL.

Swami

http://www.swamiproject.org
A SoundFont instrument editor for computer MIDI music composition. It utilizes the GTK toolkit to provide a cross-platform GUI interface. It is a highly object-oriented open-source project using the GObject library in C with supporting shared libraries.

I am the creator of this project and the primary developer.

Matrix Switch Corporation Website

http://www.matrixswitchcorp.com
A website for Matrix Switch Corporation, a manufacturer of professional video and audio broadcast routers. This website is based on Django and has a flexible product search interface using the Datatables jQuery plug-in. It is not a showcase of a responsive website, however.

I was the sole creator of this website, graphics content, and product manuals. 3D product illustrations were created with Blender and Inkscape. This website also has a custom product-information import/export Python script to maintain the information on hundreds of products and export it for synchronization with third-party resellers.

FluidSynth

http://www.fluidsynth.org
FluidSynth is a real-time software synthesizer based on the SoundFont 2 specifications and has reached widespread distribution. FluidSynth itself does not have a graphical user interface. Still, due to its powerful API, several applications utilize it, and it has even found its way onto embedded systems and is used in some mobile apps. This library is even found in Tesla's electric vehicle entertainment system and is utilized by the Beatz app.

I was one of the early developers and maintainers of this audio synthesis library. I contributed C code for loading SoundFont files that I had created for Swami and helped the original author create an API for utilizing this library in other applications.

Blitzer File Search

A file indexer and advanced search engine. It utilizes SQLite to recursively index file information in one or more directories on a computer file system. The core indexer was written in C with SQLite API. I then created a web interface with Python for quick interactive searching by file name with boolean logic operators and sorting by file name, date, or size.

I am the sole creator and developer of this project.

KVMR Audio Archiver

I developed an application for the KVMR community radio station to record, archive, and stream audio. The application was written in C and recorded high-quality 24-bit audio of the live radio station feed, archived it in multiple compressed formats, and streamed it over the Shoutcast protocol at several bitrates to an Icecast server also running on Linux.

Libraries/APIs

jQuery, Pthreads, REST APIs

Tools

GCC, GNU Debugger (GDB), KiCad, Odoo, GTK+, Apache, Inkscape, PCB Layout, CMake, GNU Make, Git, GNU Autoconf, Blender, FreeCAD, NGINX, SHOUTcast

Languages

Python, C, XML, SQL, Embedded C, JavaScript, VHDL, C++, PHP

Frameworks

Django

Platforms

Linux, ARM Linux, NVIDIA CUDA

Storage

MySQL, PostgreSQL, JSON, SQLite

Other

gedit, ARM Embedded, Networking, TCP/IP, FreeRTOS, APIs, PCB Design, Real-time Operating System (RTOS), Embedded Systems, MCU, Embedded Hardware, Algorithms, Wagtail CMS, 2D Graphics, Device Drivers, Linux Device Driver, Icecast, Audio Streaming, Schematics, OpenCL/GPU, Qmail, GPU Computing

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