Mike Nowak
Embedded Developer, Researcher, Software Engineer

About Mike

Mike grew up in Dearborn, Michigan where he attended Dearborn High School and the Dearborn Center for Math, Science, and Technology. After high school, Mike pursued a Bachelor's degree in Computer Engineering at the University of Michigan, Ann Arbor. After starting his career in computer hardware design (and specifically digital logic design) in silicon valley, Mike moved on to software development. Because of this, Mike is a talented software engineer with a very strong background in hardware.

His interests include music, physics, electrical engineering, scientific computing, embedded computing, and programming in general. Mike believes in elegant design, efficient code, and, above all, quality in everything he does. Mike currently resides near Chicago, IL.

Projects and Work

Control System Software for a 3-axis Mechanically Steered Aircraft Satellite Antenna

While working at Anuvu (formerly Global Eagle Entertainment/Global Eagle) Mike was chiefly responsible for designing, developing, implementing, and maintaining the control system software for a 3-axis mechanically-steered aircraft satellite antenna in C. The software made use of real-time signal filtering and PID feedback loops for motor control, POSIX sockets and Ethernet for communication with external boxes, and packaged ARINC 429 bus information to determine the appropriate pointing heading for the antenna. The antenna has flown on over 200 different aircraft to date, helping to provide them with satellite internet.

Custom-Built Embedded Linux Operating System for an ARM-Based Aircraft Satellite Antenna

Working at Anuvu (formerly Global Eagle Entertainment/Global Eagle), Mike configured and built a custom embedded Linux operating system for an ARM-based aircraft satellite antenna to provide a base level of software functionality to this unit. The operating system made use of a custom-configured and built Linux kernel, a custom modified and built U-boot bootloader, the BusyBox Linux software tool replacement suite, and other open-source projects. The OS ran entirely from memory once booted to improve speed and reliability, simplify updates, and provide a consistent, clean software environment on each boot of the unit.

x86 CPU Card Software Environment

While at Broadcom Corporation, Mike developed and configured a Linux software environment for an embedded x86_64 CPU card which was to be used as part of a reference design for embedded networking devices (such as switches, routers, etc). The environment consisted of a customized, stripped-down Fedora Linux distribution (with a custom-built kernel) and a modified Broadcom-proprietary network SDK. Network booting of the kernel and root file system along with remote updating of stand-alone software was made possible.

PCIe Interface Controller Simulation

Also at Broadcom Corporation, Mike designed and developed a bus-level simulation of a PCIe interface controller. The simulator was written in C, and helped to provide early testing and debugging capabilities to software engineers working with this controller hardware, before silicon came back from manufacturing.

Network Accelerator Hardware Block

Working at Broadcom Corporation, Mike helped develop digital hardware (and specifically the register transfer logic) for a network accelerator block to be used in a server-class chip. The network accelerator provided hardware support for TCP/IP operations, in order to allow for high-bandwidth networking support on the chip.

Out-Of-Order Alpha Processor

For a computer architecture class at the University of Michigan, Mike and a small team of students were tasked with developing and implementing logic for a complete out-of-order processor capable of running a subset of the Alpha instruction set.

Embedded Optical Flow Module

In conjunction with a quad-copter control project and for an embedded microprocessor class, Mike and a teammate developed an embedded optical-flow module running on an ARM Cortex M0 processor capable of detecting flow direction in real-time from a camera's image and relaying this data along a serial communication line.

Quad-Copter Stabilization System

During his senior year at the University of Michigan, Mike helped develop a software-based stabilization system for an autonomous quad-copter aerial vehicle, as part of an embedded microprocessor class. The system was designed to help the copter fly level, prevent disturbance of the copter's flight from outside sources, and in general stabilize the flight of the copter. The overall quad-copter project was a team effort, but the stabilization system was developed primarily by Mike.

Smart Cane for the Visually Impaired

During his senior year at the University of Michigan, Mike developed a "smart" cane for the blind as part of a Digital Signal Processing Design Laboratory class. The cane consisted of ultrasonic sensors to sense the environment, and vibration motors and sound to provide feedback to the user about his surroundings. The project was a team effort, with four team members contributing to the development of the device.

FEM Meshing for Electronic Structure Calculations

Working with the Computational Material Physics Group at the University of Michigan, Mike developed several important meshing tools to generate finite element method (FEM) meshes for atomic systems. Meshes generated with these tools were then used to perform electronic structure calculations on quantum systems and research related to this.

Balloon Flight Termination Unit

Working with the Michigan Balloon Recovery and Satellite Testbed (MBuRST) team at the University of Michigan, Mike developed a flight termination unit for ending balloon flights prematurely. The unit utilized an Arduino nano microcontroller and a custom-built printed circuit board to cut a string supporting the payload of a balloon, mid-flight.

Ising Model Simulation

Developed during a research internship at Wayne State University, this is an Ising Model simulation that was used to study the doping of novel magnetic materials.

Website for the Computational Material Physics Group at the University of Michigan

Mike developed a website for the Computational Material Physics Group at the University of Michigan.

Drive-By-Wire Control System for an Electric Vehicle

While in high school, Mike worked on the Innovative Vehicle Design team at the Dearborn Center for Math, Science, and Technology. There, he headed the design of a Linux-based drive-by-wire control system for an electric vehicle.

Brick Bedlam: a 3d Game Demo

Started in highschool with contnued sporadic development past graduation, this project is a flexible 3d game engine originally intended to be used for the game Brick Bedlam. It is programmed entirely in C++ and makes use of the Open Dynamics Engine, Open Graphics Library, Hawk Network Library, and Graphics Library Frame Work, so as to be portable to any platforms that support these libraries.

Mersenne Prime Number Checker

Mike developed this small application during highschool as part of a research project. It uses the Lucas Lehmer test to determine the primality of Mersenne numbers. The test is implimented in C and uses number theoretic transforms for fast multiplication, thus making it quite speedy.