Michael Harvey, Developer in Beaverton, OR, United States
Michael is available for hire
Hire Michael

Michael Harvey

Verified Expert  in Engineering

Embedded Systems Developer

Location
Beaverton, OR, United States
Toptal Member Since
May 11, 2023

Mike is a senior developer with three decades of experience building software for embedded systems and cloud platforms, including more than 15 years at Intel. He has substantial experience with Linux, C, C++, Python, and Java and has worked with media technologies, networking, eCommerce, and payments. Mike is an experienced technical lead.

Portfolio

Mirion Technologies - Main
Python, Embedded Linux, Azure DevOps, Linux, MQTT, REST APIs, Git...
Ripple Two LLC
Embedded Systems, Linux, C++, C++17, Embedded Software, Git, GitHub...
Apto Payments
Agile, PostgreSQL, AWS Lambda, PyCharm, APIs, SQL...

Experience

Availability

Full-time

Preferred Environment

Linux, C, C++, Python 3, Java, Git, Startups, Embedded Software, Back-end, SDK Development

The most amazing...

...project I've worked on is Shockwave 3D that was shipped to 40 million desktops.

Work Experience

Software Engineer

2023 - 2023
Mirion Technologies - Main
  • Analyzed Python codebase and prepared it for phase 1 production. Fixed bugs in REST API functions.
  • Provided support during the integration of phase 1 software and hardware for environmental sensors. Resolved GPS and networking problems. Shipped units to a customer, fulfilling an existing contract.
  • Completed phase 2 implementation of the codebase, communicating with a Docker service via MQTT.
Technologies: Python, Embedded Linux, Azure DevOps, Linux, MQTT, REST APIs, Git, Azure DevOps Services, Networking, GPS, Debugging, Requests, WiFi, WiFi Integration, Python Asyncio, DevOps, Python 3, Mentorship, Continuous Integration (CI), TCP/IP, OOP Designs, PyCharm, Object-oriented Programming (OOP), Software Design, Data Structures, Firmware, Concurrency, REST, Bash, Bash Script, CI/CD Pipelines, RESTful Services, RESTful Web Services, Web Platforms, API Integration, Integration, Object-oriented Design (OOD), Software Development

Linux/Embedded Systems Developer

2023 - 2023
Ripple Two LLC
  • Developed WiFi configuration features for an embedded communications device, communicating with Android over USB.
  • Developed a persistent configuration mechanism for the embedded device.
  • Isolated and fixed a bug in a USB-based command parser. Helped with integration and testing between an Android app and the embedded device.
Technologies: Embedded Systems, Linux, C++, C++17, Embedded Software, Git, GitHub, Embedded Linux, ARM Embedded, GNU Toolchain, Slack, WiFi, SSH, Firmware, Cross-compilation, OOP Designs, Makefile, BusyBox, Yocto, Startups, Software Design, Data Structures, Algorithms, WiFi Integration, Raspberry Pi, Debugging, TCP/IP, Object-oriented Programming (OOP), Networking, Bash, Bash Script, Embedded C++, Embedded Hardware, Software Development

Senior Back-end Engineer

2022 - 2022
Apto Payments
  • Developed microservice fintech components for ISO 8583 payment processing using Python, PostgreSQL, and Kafka on AWS Lambda.
  • Created a framework for abstracting ISO 4217 currencies and cryptocurrencies.
  • Built a scalable microservice for authorization hold expiration, scheduled by Amazon EventBridge.
  • Built a low-latency distributed transaction authorization framework using a modified two-phase commit pattern.
  • Used threads for concurrent Lambda processing to achieve 120 millisecond time overhead, resolving a performance bottleneck and meeting the time budget.
Technologies: Agile, PostgreSQL, AWS Lambda, PyCharm, APIs, SQL, Object-oriented Programming (OOP), Design, Git, GitHub, Back-end Development, Performance Testing, Performance Tuning, Python, Remote Work, Multithreading, Microservices, Boto 3, Test-driven Development (TDD), Fintech, Card Payments, Databases, Amazon Web Services (AWS), Software Design, Cloud, Startups, Requirements Analysis, Processing & Threading, Architecture, Validation, OOP Designs, Distributed Software, Apache Kafka, Cloud Native, Python 3, Amazon EventBridge, Data Structures, Optimization, Credit Cards, Slack, Algorithms, Google Sheets, Back-end, Software Architecture, DevOps, Debugging, Code Review, Concurrency, Distributed Systems, Unit Testing, Microservices Architecture, Serverless, Relational Databases, Web Platforms, Communication, Documentation, Scalability, Event-driven Programming, Event-driven Architecture, Integration, Object-oriented Design (OOD), Software Development, Pytest, pylint

Senior Software Engineer

2019 - 2022
Digimarc
  • Developed features for an embedded image processing SDK running on 40+ platforms and architectures, including Linux, Windows, macOS, 32-bit, 64-bit, Intel, AMD, and RISC.
  • Built a GS1 barcode codec library in C. Designed a GS1 abstraction layer using C++17.
  • Redesigned an image processor (IPA) using C++17 and threads, increasing throughput tenfold.
  • Optimized C++ algorithms using ARM SIMD assembly and intrinsics.
  • Created native API wrappers for C, Python (CPython, ctypes), and .NET (C#, SWIG, PInvoke).
  • Developed a RESTful web app and server using JavaScript, Emscripten, WebAssembly, C#, and .NET.
  • Maintained a continuous integration system based on Docker and CMake.
Technologies: Agile, C, C++, Continuous Integration (CI), Docker, Git, Jira, Test-driven Development (TDD), Mentorship, Linux, Embedded Linux, Embedded C++, Performance Testing, Performance Tuning, Multithreading, REST APIs, Libraries, Shell, CLion, SDK Development, Object-oriented Programming (OOP), Design, APIs, Cross-platform Libraries, C#, Emscripten, Embedded C, Embedded Systems, Software Development Toolkits (SDK), Python, JTAG, Software Design, Cloud, Requirements Analysis, Processing & Threading, Databases, Microsoft Visual C++, Bug Discovery & Tracking, Artifactory, Remote Work, Back-end Development, Makefile, JavaScript, Validation, OOP Designs, NoSQL, HTML, Windows, Python 3, SDKs, Cross-compilation, Algorithms, Memory Management, Data Structures, Optimization, C++ Memory Model, Front-end Development, Embedded Software, ARM Embedded, Firmware, GNU Toolchain, SSH, C++17, Back-end, Full-stack, DevOps, Code Review, POS, Raspberry Pi, Debugging, Concurrency, Design Patterns, REST, Bash, Bash Script, API Development, CI/CD Pipelines, Unit Testing, RESTful Services, RESTful Web Services, GDB, CMake, Web Platforms, Communication, Documentation, Embedded Hardware, C++98, Refactoring, User Interface (UI), Front-end, XML, Integration, Object-oriented Design (OOD), Automation, Beautiful Soup, Software Development, Abstract Syntax Trees (AST)

Software Engineer IV

2018 - 2019
Vetsource
  • Developed features for cloud-native eCommerce, web services, and process automation systems. The company was in the pharmaceutical healthcare domain, and the work involved order management, wallets, payments, inventory, and automation.
  • Created REST web services for back-end partner integrations.
  • Developed front-end features using Apache Flex (ActionScript/JavaScript) and REST.
  • Maintained microservices in a Google Cloud cluster. The team performed its own DevOps.
  • Built a dependency graph generator and Mule/Swing XML config analyzer in Python.
  • Refactored classes, microservices, and SQL schemas.
  • Tracked and resolved defects and performance issues. The team performed its own validation.
  • Instrumented the codebase for cloud-based logging using New Relic.
  • Supported the call center and participated in rotating on-call handling of emergent issues.
Technologies: Groovy, Docker, Spring, Mule ESB, Kubernetes, Apache Kafka, Apache ZooKeeper, Windows, Linux, MySQL, Google Cloud Platform (GCP), Apache Tomcat, Google BigQuery, Memcached, Loggly, JRebel, Apache Maven, Adobe Flex, Agile, GitLab, IntelliJ IDEA, New Relic, REST APIs, Java, Back-end Development, Continuous Integration (CI), Git, JavaScript, Object-oriented Programming (OOP), Python, SQL, eCommerce, Inventory Management, SaaS, Databases, Cloud, Requirements Analysis, Processing & Threading, Bug Discovery & Tracking, HTML, Card Payments, Microservices, Shell, Validation, APIs, OOP Designs, Distributed Software, NoSQL, Test-driven Development (TDD), Cloud Native, Python 3, Multithreading, Data Structures, Front-end Development, Credit Cards, Slack, SSH, Full-stack, Back-end, Google Sheets, DevOps, Code Review, Debugging, Concurrency, REST, Distributed Systems, API Development, CI/CD Pipelines, Unit Testing, Spring Boot, Spring Microservice, Microservices Architecture, RESTful Microservices, Relational Databases, RESTful Services, RESTful Web Services, Web Platforms, Scalability, API Integration, Refactoring, User Interface (UI), Front-end, XML, Integration, Microsoft SQL Server, Object-oriented Design (OOD), Beautiful Soup, Software Development

Senior Software Engineer

2017 - 2018
Comscore
  • Developed the customer-facing command-line query interface in Python for a NoSQL data warehouse product.
  • Implemented and maintained customer integration REST APIs.
  • Created an SQLite3 extension in C, providing a custom view supporting business needs.
  • Managed Amazon EC2 servers using Ansible and developed monitoring scripts using boto3.
Technologies: Amazon S3 (AWS S3), Amazon EC2, NoSQL, SQLAlchemy, Requests, SQLite, Python, Agile, REST APIs, Back-end Development, Ansible, Boto 3, Git, Java, Linux, Object-oriented Programming (OOP), Databases, Amazon Web Services (AWS), Cloud, SaaS, Shell, APIs, OOP Designs, HTML, PostgreSQL, Cloud Native, Python 3, SQL, C, Memory Management, GNU Toolchain, SSH, Data Structures, Back-end, DevOps, Debugging, REST, API Development, Relational Databases, RESTful Services, RESTful Web Services, Web Platforms, API Integration, Refactoring, User Interface (UI), XML, Object-oriented Design (OOD), Software Development, pylint

Senior Software Engineer

2015 - 2017
Lightfleet
  • Developed an SDK and library for an FPGA networking product targeted at high-speed trading. Achieved 13 million packets per second in C, with three-microsecond latency.
  • Implemented client-server and peer-to-peer patterns utilizing multithreaded and distributed patterns.
  • Analyzed functionality, latency, throughput, and congestion between servers on a 24-way optical interconnect.
  • Created a network stack emulating Ethernet, UDP and TCP/IP, with a socket API on top. Performed benchmark comparison with competitors using SockPerf. Results were used directly in marketing materials.
  • Developed a native Java transport driver for Netty, achieving five million packets per second.
  • Tuned CentOS Linux for real-time performance on multi-core Xeon servers.
  • Built an OOP abstraction layer for C++ and native wrappers for Java and Python.
  • Developed testing and maintenance scripts in Python and shell script. Redesigned the Makefiles for the library and drivers. Created man pages and other documentation for the SDK.
Technologies: Linux, C, C++, Java, Distributed Software, Sockets, TCP/IP, Netty, Java Native Interface (JNI), OOP Designs, Performance Testing, Performance Tuning, Multithreading, Peer-to-peer Networking, APIs, Libraries, SDKs, Linux Device Driver, Direct Memory Access (DMA), Design, Git, Object-oriented Programming (OOP), Makefile, Mentorship, Network Programming, Network Protocols, Python, Shell, Software Development Toolkits (SDK), SDK Development, Software Design, Startups, Requirements Analysis, Processing & Threading, Bug Discovery & Tracking, Validation, IntelliJ IDEA, Apache Maven, Algorithms, Memory Management, Data Structures, Optimization, C++ Memory Model, Networking, JNI, Linux Kernel, Linux Kernel Drivers, Linux Kernel Modules, GNU Toolchain, SSH, Debugging, Concurrency, Low-level Programming, Bash, Bash Script, Distributed Systems, CI/CD Pipelines, Unit Testing, GDB, Documentation, Scalability, C++98, Object-oriented Design (OOD), Automation, Software Development

Senior Software Engineer

1997 - 2015
Intel
  • Acted as a technical lead for SDK 2.0 team. Migrated embedded Linux SDK from Buildroot to the Yocto Project, to Git, and continuous integration. Drove SDL through requirements, planning, architecture, and development on a shortened schedule.
  • Served as a product owner and release manager for an embedded Linux SDK. Drove a 47% reduction in priority defects, managed 20 releases per year, and automated license manifests. Received department award for high-quality releases.
  • Developed automation scripts for SDK release using Python, SQL, and Microsoft Excel. Automated BOM generation and open-source license attribution. Led a project to extract license information from source code during the build automatically.
  • Proposed and delivered concurrent initialization for embedded Linux in C, reducing the boot time to five seconds. The lightweight solution eliminated the need to integrate systems or upstart.
  • Maintained embedded Linux drivers for OpenGL ES, OpenVG, and DirectFB. Optimized embedded Java Blu-ray stack for customers, delivering a threefold performance improvement.
  • Developed an OpenGL ES video-as-texture demo with shader-based color conversion for presentation at CES, earning an award for quick delivery and a flawless demo.
  • Ported GLQuake to OpenGL ES on an embedded SoC platform. Created a GL ES compatibility layer and supplied keyboard and mouse input via a socket over SSH. Wrote three whitepapers about the project.
  • Spearheaded an embedded validation and tools team to create a multithreaded 802.16 client MAC simulator in C on a tight schedule. Created the Wireshark WiMAX plugin that was praised for clean code and excellent quality.
  • Led the simulation team for Shockwave 3D that was delivered to 50 million desktops and earned the prestigious Intel Achievement Award. I also developed a simulation scheduler and co-wrote an article in Game Programming Gems 3.
  • Maintained the 3D RSX audio library using C++ and Java. Migrated technology to DirectSound Retained-Mode framework. Facilitated the sale of Rad Game Tools and provided training and integration onsite. Now integrated into the Miles Sound System.
Technologies: C, C++, Linux, Windows, Git, Continuous Integration (CI), Yocto, Buildroot, Embedded Systems, Embedded Java, Embedded Linux, 3D Graphics, Simulations, Multithreading, Sockets, Validation, Team Leadership, Job Schedulers, Linux Device Driver, Shell, OpenGL ES, 3D, Java Native Interface (JNI), Subversion (SVN), SQL, BusyBox, Win32 API, JavaScript, WiMAX, Agile, Makefile, System-on-a-Chip (SoC), Cross-compilation, Release Management, Defect Management, Python, Gerrit, TeamCity, Artifactory, APIs, SDKs, SDK Development, Software Development Toolkits (SDK), Performance Testing, Performance Tuning, Object-oriented Programming (OOP), Network Programming, Network Protocols, Mentorship, Embedded C, Design, Cross-platform Libraries, X11, Swing, GUI Development, Java GUI, Product Owner, Databases, Software Design, Requirements Analysis, Leadership, Processing & Threading, Microsoft Visual C++, Architecture, Project Planning, Bug Discovery & Tracking, Bug Triage, Win32, JTAG, Graphical User Interface (GUI), Libraries, OOP Designs, TCP/IP, Simulators, Java, Memory Management, Algorithms, Data Structures, Optimization, C++ Memory Model, Networking, JNI, Spatial Audio, Distributed Team Management, Embedded Software, ARM Embedded, Firmware, Linux Kernel Drivers, GNU Toolchain, SSH, Graphics Processing Unit (GPU), Technical Leadership, Software Architecture, DevOps, Code Review, Debugging, Concurrency, Low-level Programming, Game Development, Bash, Bash Script, Unit Testing, Technical Project Management, Relational Databases, GDB, Communication, Documentation, Scalability, Embedded Hardware, Event-driven Programming, Event-driven Architecture, C++98, Refactoring, User Interface (UI), XML, Integration, Object-oriented Design (OOD), Automation, Software Development

Software Engineer

1994 - 1997
Viridian Systems
  • Ported an industrial process controller from OS/2 to Windows using C++ and integrated onsite with the client.
  • Developed software to display Windows NT GUI on X terminals using C++ and X protocol.
  • Researched networked collaboration software using Java and sockets.
  • Built a web calendar app for a client's web page using C and CGI.
Technologies: C++, Java, X11, Win32, Windows, Network Programming, Sockets, CGI, Makefile, HTML, Object-oriented Programming (OOP), GUI Development, Java GUI, Startups, Processing & Threading, Microsoft Visual C++, Swing, Graphical User Interface (GUI), Win32 API, OOP Designs, TCP/IP, Multithreading, C, Memory Management, Data Structures, C++ Memory Model, Networking, Front-end Development, GNU Toolchain, Debugging, Event-driven Programming, C++98, Refactoring, User Interface (UI), Front-end, Object-oriented Design (OOD), Software Development

Intel SoC SDK

Intel's CE4100 Sodaville, CE4200 Groveland, and dual-core Berryville were system-on-a-chip media platforms targeted at set-top boxes, VCRs, and smart TVs. The SDK was used by partners such as Logitech Revue with Google TV and Boxee Box.

I started on the team as an OpenGL driver developer and moved to SDK lead, initially focused on packaging and release but then taking technical leadership for the SDK 2.0 initiative. I managed around 20 SDK releases per year. I also led bug scrubs, performed initial triage of issues, and interfaced with customers. For the SDK 2.0 project, we built a new CI infrastructure. I co-architected the design, led the planning, and supervised the development team during implementation.

Native Netty Driver for Java

Lightfleet makes a high-speed DMA-based optical interconnect and targets the high-frequency trading industry. The drivers and library were in C, but prospective enterprise customers used high-level languages like Java. To more effectively reach this market, the company wanted to make its products usable with the Java ecosystem. As the C library and SDK owner, I was given this project.

I identified the Netty project as suitable for our purposes. I developed a JNI wrapper for our C library and built a Netty datagram transport on the native layer. A multi-threaded Java client/server demo achieved five million packets per second, fully half the speed of optimized C.

Wireshark 802.16 Protocol Analyzer

https://gitlab.com/wireshark
Developed an 802.16 client MAC simulator to validate a server project, including protocol analysis at the bit level. I then led a team to further develop the code into an open-source Wireshark (formerly Ethereal) plugin. The code was contributed to the Wireshark project and can be found in the plugins/epan/wimax directory of the project website.

Shockwave 3D

Shockwave 3D is a web media platform. I worked in a team to develop game technologies for the platform in C++ and led the scheduling and physics subsystem. Shockwave 3D shipped to more than 40 million desktops.

Languages

C, C++, Java, Python, Embedded C, Bash, Bash Script, C++98, SQL, Python 3, Embedded C++, XML, Groovy, JavaScript, C#, HTML, C++17

Tools

Shell, Makefile, GNU Toolchain, Git, IntelliJ IDEA, BusyBox, PyCharm, CLion, Java GUI, GDB, Jira, Apache ZooKeeper, Apache Tomcat, JRebel, Apache Maven, GitLab, Buildroot, Subversion (SVN), GitHub, Emscripten, Ansible, Boto 3, Gerrit, TeamCity, Artifactory, Microsoft Visual C++, Slack, Google Sheets, MQTT, Azure DevOps Services, CMake, Pytest, pylint

Paradigms

Object-oriented Programming (OOP), Unit Testing, Event-driven Programming, Refactoring, Object-oriented Design (OOD), Agile, Continuous Integration (CI), Test-driven Development (TDD), Requirements Analysis, DevOps, REST, Event-driven Architecture, Automation, Compiler Design, Microservices, Azure DevOps, Design Patterns, Microservices Architecture

Platforms

Linux, Embedded Linux, Docker, Cloud Native, AWS Lambda, Mule ESB, Kubernetes, Apache Kafka, Windows, Google Cloud Platform (GCP), New Relic, Amazon EC2, Win32, Amazon Web Services (AWS), Raspberry Pi

Other

Multithreading, Embedded Systems, Cross-compilation, Team Leadership, Design, SDKs, OOP Designs, SDK Development, Software Development Toolkits (SDK), Processing & Threading, Software Design, Data Structures, Optimization, Memory Management, C++ Memory Model, Embedded Software, Firmware, Debugging, Concurrency, Software Development, Network Programming, GUI Development, Simulators, Network Protocols, Mentorship, Java Native Interface (JNI), Performance Testing, Performance Tuning, APIs, Libraries, Simulations, Validation, Remote Work, Cross-platform Libraries, Graphical User Interface (GUI), Release Management, Defect Management, Product Owner, Bug Discovery & Tracking, Project Planning, Architecture, Task Scheduling, Leadership, Startups, Algorithms, Networking, SSH, Technical Leadership, Software Architecture, Code Review, Low-level Programming, Game Development, CI/CD Pipelines, RESTful Services, RESTful Web Services, Communication, Documentation, Scalability, Embedded Hardware, User Interface (UI), Integration, 3D Graphics, Natural Language Processing (NLP), Google BigQuery, Loggly, Distributed Software, TCP/IP, Peer-to-peer Networking, Linux Device Driver, Yocto, Embedded Java, Job Schedulers, 3D, WiMAX, System-on-a-Chip (SoC), Back-end Development, Fintech, Card Payments, eCommerce, Inventory Management, SaaS, Direct Memory Access (DMA), X11, JTAG, CGI, Bug Triage, Cloud, Amazon EventBridge, Spatial Audio, Distributed Team Management, Front-end Development, Credit Cards, ARM Embedded, WiFi, Linux Kernel, Linux Kernel Drivers, Linux Kernel Modules, Graphics Processing Unit (GPU), Back-end, Full-stack, WiFi Integration, POS, GPS, Distributed Systems, Technical Project Management, RESTful Microservices, Serverless, Web Platforms, API Integration, Front-end, Abstract Syntax Trees (AST)

Frameworks

Swing, Spring, Adobe Flex, Netty, JNI, Spring Boot, Spring Microservice

Libraries/APIs

Sockets, REST APIs, SQLAlchemy, Requests, OpenGL ES, Win32 API, Python Asyncio, API Development, Beautiful Soup

Storage

Databases, Relational Databases, PostgreSQL, MySQL, Memcached, Amazon S3 (AWS S3), NoSQL, SQLite, Microsoft SQL Server

1993 - 1995

Bachelor's Degree in Computer Science

Portland State University - Portland, Oregon, USA

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