Michael L Mehr, Embedded Systems Developer in Mountain View, CA, United States
Michael L Mehr

Embedded Systems Developer in Mountain View, CA, United States

Member since February 8, 2016
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.
Michael is now available for hire

Portfolio

Experience

Location

Mountain View, CA, United States

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.

Employment

  • 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 Library (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

Experience

  • 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).

  • 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.

Skills

  • Languages

    Embedded C++, Embedded C, C++, C, Python, Forth, Swift, Assembler, JavaScript, Java, Bash, Objective-C, PHP
  • Libraries/APIs

    Cognex CVL, Microsoft Foundation Class Library (MFC), PubNub
  • Paradigms

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

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

    Debugging, ARM Embedded, Internet of Things (IoT), Embedded Systems, Writing & Editing, ARM, Matrox Video, Speech Recognition, Broadcom Networking Devices, Scientific Computing
  • Tools

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

    Laravel, Dojo, Core Data
  • Storage

    JSON, MySQL

Education

  • Certificate with Honors in Embedded Systems
    2016 - 2017
    University of California, Santa Cruz - Silicon Valley Extension, Santa Clara, CA
  • Master of Science Degree in Electrical Engineering and Computer Science
    1976 - 1977
    Stanford University - Stanford, California, USA
  • Bachelor of Science Degree in Electrical Engineering
    1972 - 1976
    Carnegie Mellon University - Pittsburgh, Pennsylvania, USA

To view more profiles

Join Toptal
Share it with others