Matthew Michael Cowan
<address omitted> · <phone omitted> · mcapr24@moviequote.net

 

SUMMARY:

Nearly twenty years of experience designing, implementing and bringing software projects to market.  Experience on a variety of platforms, languages, project sizes and markets.  Usually operated as either a technical team leader or, more recently, a senior manager growing a large international team.

SKILLS:

Management Strengths

Interviewing, qualifying and hiring talented software engineers

Scheduling software development and driving tasks to completion on time

Interacting with Marketing departments and iterating on technical requirements and feasibility

Technical leadership and mentoring

Application development processes and life cycles

 

Software Engineering Strengths

Audio, video and image DSP

Algorithms, optimization, SIMD and multi-threaded application programming

GUI design and implementation (MFC)

API and software architecture design

Programming Languages and Environments

Very proficient in C, C++ and scripting
Expert at SIMD enhancements, optimization and multi-threaded programming
Experienced in Perl and assembly languages
Knowledgeable in VB, Java, Objective C, PHP, SQL and many other languages

Able to efficiently use MSVC++, gcc, Xcode and many other compilers

Comfortable on any UNIX, Windows, MacOS or embedded environment

EDUCATION:
8/1990 – 5/1994

Washington University, St. Louis, Missouri
Bachelor of Science in Computer Science
Minor of Fine Arts in Graphical Design

EXPERIENCE:
8/2004 – present

Audience Inc., Mountain View, California
Director/Senior Manager, DSP Platform Software Engineering (2008 to present)
Directing a highly-skilled DSP software engineering team. Growing the team from four engineers to sixteen (and increasing) distributed across offices in California, Colorado and India. Creating schedules and holding engineers accountable for on-time deliveries.  Designing resource and quality metrics in which the engineers develop towards. Evaluating team members’ performances and mentoring junior members and team leaders. Contributing to product feature reviews, requirements documentation and engineering specifications.  Reporting to the Vice President of Software Engineering.

 

Principle/Staff/Senior Audio Software Engineer (2004 to 2008)

Implemented, ported and integrated custom audio DSP software from Matlab floating-point reference to proprietary DSP hardware. Converted floating-point reference code to quantized data types and quantified the impact. Architected many areas of the core codebase for the flagship products. Designed and implemented GUI-based utilities still heavily relied upon across the company. Installed, organized and maintained the Perforce revision control server.  Wrote official release engineering build scripts with full logging and traceability as well as designed a web front-end to these scripts. Worked on embedded operating system software engineering tasks. Developed Android demonstration applications. Used C, C++, Matlab, Assembly, Perl, PHP and Java.

1/2001 – 5/2004

Brocade Communications, San Jose, California
Senior Software Engineer - Developer Support
Supported partner software engineers in developing applications that utilized Brocade's APIs. Isolated and debugged critical race conditions and defects in the APIs. Developed sample and demonstration applications exhibiting the capabilities of these APIs. Contributed to the design and specification processes of the APIs often being the authority for final design decisions. Developed several utilities for Brocade switches to help end users and developers manage Brocade switches. Worked with multiple development platforms including Solaris, Windows, AIX, HP-UX, Linux and vxWorks.


1/2002 – 3/2003

iMove, Inc., Portland, Oregon
Contract Software Engineer
Contracted to write a custom, ultra high-speed video codec conforming to their specifications. Used JPEG techniques to develop a proprietary video codec for an undisclosed product. Performed intense optimizations and incorporated SSE2, MMX and AltiVec code to meet aggressive performance targets. Worked independently from San Jose with engineers in Portland, OR to develop an API for seamless integration of the codec. Completed contract ahead of time and under budget.


6/2000 - 12/2000

Media100/Terran Interactive, Los Gatos, California
Senior Software Engineer
Operated as the technical lead for a group in place to provide extreme acceleration to existing software products. Wrote a JPEG/MJPEG decoder from scratch, and optimized it to run at peak speeds on several architectures. Added optimizations to an existing DV codec. Modified, ported and optimized existing code modules for accelerated applications. Contributed to software architecture and API designs. Contributed expertise in digital video processing including MPEG, Motion JPEG, DV, filtering, multiprocessing and synchronization.


1/1995 – 5/2000

HEURIS & HEURIS/Pulitzer, St. Louis, Missouri
Engineering Manager (1 year)
Coordinated and managed programmers and software engineers. Developed rigorous development schedules for software projects and organized the engineering staff to complete it. Maintained channels of communication with the corporate staff in order to synchronize engineering efforts with marketing and sales. Made critical decisions regarding features and quality on software projects. Interviewed and hired prospective programmers.

Senior Software Engineer/Software Engineer (4 years)
Programmed primarily in C and C++ for Windows 95/98/NT, MacOS and UNIX operating systems. Worked with MSVC and CodeWarrior to help develop and maintain commercial MPEG encoding software published by HEURIS. Wrote custom DVD and MPEG analysis utilities for internal use on Solaris, Linux and IRIX. Wrote lightweight DVD authoring services. Specialized in video/image processing, multi-threading and code optimization (including MMX, SSE, AltiVec and VIS).

Systems Administrator & Webmaster (3 years)
Maintained UNIX (Linux/Solaris), Windows 3.x/95/NT and Macintosh machines on TCP/IP LAN. Coordinated backups, installed software and assembled hardware. Maintained and configured TCP/IP network. Wrote shell scripts for system maintenance, and managed a firewall.. Utilized Samba, Netatalk and NFS to maintain a cross platform file server. Installed, configured and maintained NCSA HTTPD server. Designed and created entire company website. Used C and shell scripts for elaborate CGI-enhanced web pages.