Justin E. Forrester
jforrest at alumni dot cs dot wisc dot edu
EXPERIENCE
MICROSOFT Fort Collins , CO......................................................................................................................2008 Present
Senior Firmware Engineer Microsoft Hardware
Lead firmware development for new PC peripheral platform. Analyze functional, performance, and cost goals. Help define a hardware platform to meet requirements. Develop bulk of software for project, including for Microsoft custom mixed-signal ASIC. Define processes for multi-site development. Lead inexperienced teams, incl. overseas engineers.
HEWLETT-PACKARD Fort Collins , CO ...........................................................................................................2001 2008
Software Architect, Technical Lead HP Imaging Technology Licensing (2007 2008)
Lead software development for group, which licenses imaging technology leveraged from HP digital still cameras to camera phone manufacturers. Define C/C++ software architecture that operates on multiple SOC ASICs including ARM7, ARM Cortex-A8, C64x DSP, and spans multiple RTOS environments including embedded Linux and Symbian. Debug and customize kernel drivers to utilize hardware resources of SOC ASICs. Make complicated tradeoffs related to performance, portability, power consumption, etc. Define revision control and build systems. Work closely with SOC vendors to fully understand current chip capabilities and provide feedback for future designs.
Software Architect, Technical Lead HP Digital Cameras (2005 2007)
Lead embedded software development for HP digital cameras. Drive all aspects of firmware development from initial hardware bring-up to performance optimization to image quality analysis. Design C/C++ software architecture on ARM and MIPS-based SOC ASICs. Coordinate cross-functionally with marketing, QA, EE, ME, procurement, and manufacturing. Define processes and manage development efforts across many code contributors including in-house developers, ASIC vendors, and overseas manufacturers. Debug & fix complex defects that were not being effectively resolved. Investigate new hardware. Work with vendors to solve bottlenecks in future designs. Mentor other engineers.
Software Engineer HP Digital Cameras (2003 2005)
Design & implement embedded C/C++ and assembly software for HP digital cameras. Refactor & port large firmware system to next-generation SOC ASICs. Perform power-on debug of new electronics including power ASIC, system SOC, memories, microcontrollers, etc. Perform ASIC bring-up to boot ThreadX RTOS on ARM9 processor cores. Design & implement infrastructure for efficient SOC resource sharing across ARM9 and highly parallelized C64x DSP cores, as well as in dual MIPS architectures. Design, implement, and debug drivers for many SOC peripherals, including: MMC/SD card, NOR/NAND flash, audio codec, USB, LCD, SPI/I2C ports, DMA, CCD, etc. Debug hardware and firmware using JTAG, oscilloscopes, logic analyzers, and other test tools. Review schematics for board designs.
Software Architect, Technical Lead HP Network Attached Storage (2002 2003)
Drive development of Linux-based Network Attached Storage system OS releases. Design & implement new functionality such as high availability data replication. Architect new features & create design specifications for implementation. Champion R&D process improvements. Coordinate across teams to manage program schedule and risk. Debug Linux kernel issues relating to high-performance large-scale file serving. Mentor other engineers.
Software Engineer HP Network Attached Storage (2001 2002)
Design & implement custom Linux-based operating system for HP enterprise NAS system. Customize, debug, and optimize open source components for NFS & CIFS file serving, including Samba and kernel mode NFS servers. Design & implement high availability clustering solution using HP Serviceguard. Debug and enhance numerous Linux kernel drivers, including the XFS file system, SCSI stack, multipath failover, fibre channel HBA drivers, logical volume manager (LVM), and network card drivers. Visit customers to install, upgrade, and resolve issues.
CISCO SYSTEMS San Jose, CA .. .. .. .. 2000 2001
Software Engineer Cisco VoIP Signaling & Infrastructure (2000 2001)
Develop embedded C code for VoIP gateways within the Cisco IOS operating system. Responsible for core signaling layers and call control software. Handle complex interworking issues with SIP, H.323, ISDN, and CAS signaling protocols. Develop QOS call admission control features. Debug critical issues on large, live customer networks.
EDUCATION
Master of Science: Computer Science . . .. . ... .. ..... 2000
University of Wisconsin Madison: 1998 2000, GPA 3.9/4.0
Focus: Operating Systems and Networking
Adv. Operating Systems Distributed Systems Adv. Computer Networks
Adv. Database Systems Adv. Comp. Architecture Parallel Comp. Architecture
Publication: An Empirical Study of the Robustness of Windows NT Applications Using Random Testing, With B. Miller. Proceedings of the 4th USENIX Windows Systems Symposium, Seattle, WA, USA, Aug 2000, pp. 59-68.
Bachelor of Science: Computer Science, Mathematics (double major) . .. ...... .. ... 1998
University of Minnesota Duluth: 1994 1998, GPA 3.5/4.0