Michael L Mehr, Developer in Mountain View, CA, United States
Michael is available for hire
Hire Michael

Michael L Mehr

Verified Expert  in Engineering

Embedded Systems Developer

Mountain View, CA, United States

Toptal member since February 8, 2016

Bio

Forty years after receiving his Stanford MSc and Carnegie-Mellon BSc degrees, Michael still gets up in the morning with the same excitement to lead and create. His solid grounding in the fundamentals, experience in both front- and back-end, and familiarity with best practices in use around the industry will enhance your development team. He looks forward to contributing valuable skills to your next project.

Portfolio

AzuResults, LLC
JavaScript, Swift, Xcode, OS X, iOS, Dojo, PhpStorm, Apache, MySQL, PHP...
ECS Video Systems
PubNub, Windows, Microsoft Visual C++
KLA-Tencor Corporation
Matrox Video, Cognex CVL, Windows, Microsoft Visual C++

Experience

  • Microsoft Visual C++ - 20 years
  • Embedded Systems - 20 years
  • Design Patterns - 20 years
  • C - 20 years
  • Object-oriented Programming (OOP) - 20 years
  • Embedded C++ - 15 years
  • iOS - 5 years
  • Swift - 4 years

Availability

Part-time

Preferred Environment

MacOS, Xcode, Windows, Visual Studio

The most amazing...

...project I've worked on is a set of apps that adapted principles of astronomy to market data analysis.

Work Experience

General Manager, Lead Software Engineer

2006 - PRESENT
AzuResults, LLC
  • Created a business to support my efforts at finding work as an independent software developer.
  • Completed two projects for TauMetrix, a startup in the semiconductor test equipment industry.
  • Replaced TauMetrix' custom computer vision system for wafer alignment with a more industry-standard one using Cognex technologies.
  • Created a simple oscilloscope-like front-end for a custom testing tool for TauMetrix.
  • Worked with TauMetrix to assure proper bug-free operation and prompt fixes to any discovered issues. The client showed their satisfaction by hiring me back for the second project after the first was properly completed.
  • Completed three projects for a private software contract with an individual in London working on market trading software using unique concepts and algorithms involving applications of astronomy to modern market trading.
  • Developed custom tooling for a private WAMP stack server for London client, including some unusual security features.
  • Won an award co-coding a project at the iOS Dev Camp 2015 hackathon. (See project in the portfolio section.).
Technologies: JavaScript, Swift, Xcode, OS X, iOS, Dojo, PhpStorm, Apache, MySQL, PHP, Visual Studio, Microsoft Foundation Class (MFC) Library, Microsoft Foundation Classes (MFC), C++

Software Developer

2018 - 2018
ECS Video Systems
  • Developed a remote-control feature using PubNub IoT platform to replace the obsolete GoogleTalk implementation while maintaining minimum latency.
  • Researched various alternatives to provide real-time text/graphics scrolling performance across the internet.
  • Developed a basic file transfer protocol for the PubNub platform (none currently provided). Latency issues were particularly challenging. Legacy code (2010-level) required certain compromises, which I was able to code around, to varying success.
  • Worked with client to get code on a Git repo and better build system.
  • Added runtime features to system, including event logging to Windows Event Tracing subsystem.
Technologies: PubNub, Windows, Microsoft Visual C++

Senior Sofrware Engineer

1997 - 2005
KLA-Tencor Corporation
  • Continued work from Prometrix and Tencor (as the company continued growth and mergers).
  • Developed wafer alignment software subsystems for the Summit software platform, evolving it to adapt to new product lines.
  • Programmed primarily on the wafer alignment vision systems, based on Cognex vision technology.
  • Helped lead the team to adopt CMM level 3 quality standards, passing audit successfully.
  • Set up systems for regular integration (CI) using best technologies available at the time.
Technologies: Matrox Video, Cognex CVL, Windows, Microsoft Visual C++

Software Engineer

1987 - 1997
Tencor Instruments, Prometrix Corp.
  • Developed a Windows-based embedded machine control system (hardware and software).
  • Built the application for the Cognex vision system technologies to a camera-based fully automated user-trainable wafer alignment mechanism on several tools.
  • Evolved all developed technologies through their product life cycles from inception through production and maintenance.
  • Set up automated build systems for continuous integration under Windows SCCS and related VCS systems.
  • Worked with Tech Support, QA, and Sales teams to directly support customers in solving issues that came up. This included trips to customer clean rooms to observe and analyze tools in their production environment.
  • Awarded several appreciation awards by the company for extra efforts to keep customers satisfied.
Technologies: Matrox Video, Embedded Systems, Cognex CVL, Windows, C, C++

Founder, Software Technical Lead

1984 - 1986
VoiceWare
  • Co-founded the company with some friends to provide innovative solutions to business and consumer problems using voice technologies.
  • Led the technical team (initially three engineers, up to six at the largest) to set up software as a toolkit for writing different products.
  • Implemented the first of five planned products (the voice mail system) using the developed SDK. Two systems were eventually sold.
  • Learned a lot about startups and voice technology, perhaps many years ahead of its time.
Technologies: Speech Recognition, Embedded Systems, Windows, C

Electrical Engineer and Software Engineer

1978 - 1984
Tencor Instruments
  • Hired as the first software engineer at Tencor (employee #25). Initial work was hardware-based (Alpha-Step Digital Interface project, SonoGage sorting system).
  • Developed the first computer-based embedded system around a Z80 processor on 8-bit STD bus computer cards. Programmed the machine control system to move the wafers from cassettes to the measurement subsystem and back.
  • Evolved the system to use Forth language (for more compact memory footprint). Included language training at Forth, Inc.
  • Moved system design onto embedded computer platform using IBM-compatible PC from Victor Corp.
  • Moved software design to a team-based approach with the hiring of another software engineer in 1982. Switched the language to C for better team communication, design standard practices, and better alignment with corporate goals.
  • Performed as a key member of the team, the only person on staff who knew how to write firmware to control the embedded test systems for the company.
Technologies: Assembler, C, Forth

X42 Weather Station

https://github.com/mmehr2/X42WeatherStation
For UC IoT class, with Big Data feature to generate data for Apache Kafka. I designed a Raspberry Pi-based device that would take regular samples of several sensors and report them to a website. I designed the hardware, wrote the code for the website and wrote all internal scripts, mostly in Python. A MySQL database was used

The main website was designed to display the results of "weather" samples taken from my computer room (or wherever the device is located) - temperature, pressure, humidity, and light levels are reported. Samples are taken automatically every five minutes. Can also take a sample at the press of a button, change the state of an LED, and take a picture of the LED and text display of the device. The picture and last day's worth of data samples are displayed beneath the command and status buttons. In addition, RESTful Web APIs are provided for all functions. Added update automation.

API for X42WS weather station access
(UPDATE: Site taken down 2/2018)
Web Server: http://d48f7d79.ngrok.io
REST API Server: http://7c422863.ngrok.io/weather/api
Measurement: /sensors
Latest data: /sensors/latest
Last 15 minutes of data: /sensors/latest/15
Relay ON: /led/0/1
Relay OFF: /led/0/0
Take picture: /camera/0/3

Final Project RTOS Course

https://github.com/mmehr2/FinalProject5381
This project involved setting up a basic system to simulate a Smart Light Bulb using FreeRTOS on an NXP LPC1769 (ARM M3) development board. The code is written in C.

I chose to implement all the requested features and add a few of my own. The code may be of particular interest, in that I had to port an entire library of code from C++ to C to drive the Adafruit SSD1306 graphics display.

The project link includes all documentation, including demo videos of the operation of the device and a detailed PowerPoint slide presentation of the project as presented to the class.

Certificate in Embedded Systems (Honors)

On June 6, 2017, I completed the one-year Embedded Systems Certificate program from UC Santa Cruz, Silicon Valley Extension, graduating with Honors. I have completed the following courses (grade earned in parens):

1 - Intro to Real Time Embedded Systems Programming (5381: A+)
2 - Developing Applications for Android Mobile Devices (29156: A)
3 - Internet of Things: System Design and Prototyping (30402: A)
4 - Internet of Things: Sensors, Platforms, Communications, and Applications (30402*)
5 - Linux Device Drivers (2470: A)
6 - Internet of Things: Big Data Processing and Analytics (30454: A)

Some of the final projects are posted on my GitHub page, including presentations.

* (This course was part of a restructuring of the UC certificate curriculum. While I did not receive a grade, I did do all the work and adapted the final project of a Raspberry Pi Weather Station for use in the Big Data course I was taking at the same time.)

iOS Project Showcase

https://github.com/mmehr2
Various projects submitted to GitHub from my Swift learning phase. StampCollection shows CoreData use and embedded JavaScript website data scraping. TimeZoneExplorer used a Parse back-end to implement a small user/admin system. GoldenPythag shows how the London client front-end might have looked as an iOS app. ShowTableBug is a small project (should have been a gist) that shows a bug discovered in the Apple Swift 2 compiler (since fixed).

Generalized Square of Nine

A small excerpt from the project I worked on with a client in the financial services industry. Motivations for using this kind of mathematical tool can be found with an internet search of its title. Still, the client had specific needs that weren't being met by standard software, and I was able to provide a more generalized version that met his needs.

The code is in C++, as was the project. The client needed a large list of tools and capabilities in the code, all of which I implemented and debugged to their satisfaction. We evolved this family of tools from a Windows research app, to a client-server web app, to an automated data-producing app, for various business needs.

Golden Pythag

Developed a market research codebase for a client in London. This was first turned into a Windows MFC app that implemented the client's theories and algorithms for his own research. Implemented many (around 50-60) algorithms, many with several variants, using time series, planetary motions, and various math tools (see Square of 9 excerpt). The app was also ported to Linux as a feasibility study, the string and date classes needing some adaptation for astronomical time spans. Used a third-party library to incorporate NASA JPL planetary data.

Phase 2: Some code was adapted for use on a private WAMP server. Initially used Dojo JavaScript framework for the UI, but went with pure HTML to keep project simple. I used Uniserver to provide the basic server WAMP framework and wrote custom PHP and MySQL code to link the user front-end and database, which would run the proprietary C++ app on command. I took into account OWASP app security standards and added a small Forth front-end to obfuscate the site a bit from hackers. However, ultimately the client scrapped plans for the site before deployment.

Summit Software (KLA-Tencor)

One of the lead developers of the Summit machine-control software platform in use on the company's UV line of film thickness test products. Worked on the system for entire life cycle from object-oriented design and analysis through coding and debugging to maintenance. Kept current with industry standard development techniques and led co-workers to adopt best practices and standards in C++ with MS Visual Studio. Mentored the development team for many years, and assisted in the implementation of CMM Levels 2 and 3+, to a successful audit. Also performed sys-admin duties to automate software builds and maintain code base. Worked with other product teams (quality assurance, marketing and sales, manufacturing) to ensure customer satisfaction.

Automated Wafer Alignment (KLA-Tencor, Prometrix)

Primarily responsible for development and refinement of embedded application software to control wafer alignment subsystems of various client measurement systems. Used industry standard Cognex Patmax computer vision tools to develop a fully automated system that could be factory calibrated and later trained by its users to recognize sites on the user's various wafer patterns during semiconductor manufacture. This would allow the system to align the geometry of stage motion to precisely locate microscopic sites on wafer with reliable production accuracy and high speed. System was in production use for over a decade, and well appreciated by its users on customer satisfaction surveys.
2016 - 2017

Certificate with Honors in Embedded Systems

University of California, Santa Cruz - Silicon Valley Extension, Santa Clara, CA

1976 - 1977

Master of Science Degree in Electrical Engineering and Computer Science

Stanford University - Stanford, California, USA

1972 - 1976

Bachelor of Science Degree in Electrical Engineering

Carnegie Mellon University - Pittsburgh, Pennsylvania, USA

Libraries/APIs

Cognex CVL, Microsoft Foundation Class (MFC) Library, Microsoft Foundation Classes (MFC), PubNub

Tools

Eclipse IDE, Xcode, Microsoft Visual C++, Visual Studio, Apache, PhpStorm, Git

Languages

Embedded C++, Embedded C, C++, C, Python, Forth, Swift, Assembler, JavaScript, Java, Bash, Objective-C, PHP

Paradigms

Object-oriented Programming (OOP), Design Patterns, REST

Platforms

Windows, Raspberry Pi, Arduino, Eclipse, OS X, Docker, STM32, iOS, MacOS, Linux

Frameworks

Laravel, Dojo, Core Data

Storage

JSON, MySQL

Other

Debugging, ARM Embedded, Internet of Things (IoT), Embedded Systems, Writing & Editing, ARM, Matrox Video, Speech Recognition, Broadcom Networking Devices, Scientific Computing, Mathematical Finance, Mathematics, Software, Web Applications

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