Resume

I have been coding as a hobby for over twenty five years and professionally for a decade. I have several years of embedded experience on multiple platforms. I have extensive experience with custom continuous integration at tech scale. I am currently not seeking employment. If you wish to contact me anyway, please send an email to dragonminded@dragonminded.com.

Education

Bachelors of Science from University of California Los Angeles
  • Graduated in December 2009 with Magna Cum Laude

Work Experience

Software Engineer at Instagram, Inc. (2018-2020)
  • Created utilities to allow large-scale and complex automatic refactoring of Python 3.5/3.6/3.7/3.8 code.
  • Helped automate the transition to fully-typed Python on massive internal repository.
Software Engineer at Facebook, Inc. (2015-2018)
  • Worked on internal CI system which tests almost every piece of software written at Facebook.
  • Responsible for design and implementation of a system that powers virtually all software test execution at the company.
  • Lead several high-profile system deprecations and replacements in order to lift major bottlenecks in testing.
Senior Software Engineer at KIXEYE, Inc. (2013-2014)
  • Worked on the internal customer service portal implemented in PHP, Python and AngularJS unifying all games under one common web application.
  • Integrated active directory into the internal single sign-on infrastructure written in Python.
  • Designed multiple REST APIs between game teams and core teams to facilitate scalable data communication between teams.
  • Productized several prototype PHP applications by developing deployment plans, regression tests and addressing poorly written sections of code.
Embedded Software Engineer at Vulcan Wireless, Inc. (2012-2012)
  • Job duties included application development and maintenance on embedded Linux platform.
  • Worked on features and bug fixes on several MSP-430 microcontrollers.
  • Lead small team in developing an experimental small form factor software-defined radio for a satellite.
    • Responsible for task assignment and system integration.
    • Responsible for software quality and related processes.
    • Responsible for designing feature set, network and transport layer protocols and user interface to satellite and ground terminal.
Software Engineer at ViaSat, Inc. (2007-2012)
  • Responsible for hardware device drivers and application software in embedded applications that have shipped worldwide.
  • Designed and implemented in system upgradable software to allow embedded applications to self-upgrade.
  • Worked on for maintaining Linux lab computers for embedded development.
  • Responsible for internal suite of tools designed to aid project estimation and proposing.
Software Developer for Robotics at UCLA (2007-2008)
  • Designed command and control software on robot platform as well as the client software that operated remotely on a Linux PC.
  • Responsible for designing communications protocols to send live video data from remote operating vehicle while reserving bandwidth for realtime control.
  • Coded a plug and play microcontroller interface to allow for GPS, temperature, heading, proximity and accelerometer data to be fed to the remote operating vehicle and sent back to the controlling application for monitoring.

Technical Skills

  • Fluent in assembly language and C for writing low level code and application software.
  • Comfortable with C++, PHP, Python, Visual Basic 6.0 and shell scripting to code applications and test tools.
  • Comfortable working with Mercurial, Perforce and Git for requirements and source code management as well as collaboration.
  • Comfortable working in a Linux development environment.
  • Comfortable working with ARM, MIPS, PPC, Z80, MSP430 embedded platforms using a variety of debugging strategies.
  • Experience with using GTK in C and Python to create applications on Linux.
  • Experience using standard GNU suite of tools for embedded and application development.

Portfolio

DSOrganize Organizer Suite for Nintendo DS
A software package written in C that runs on the Nintendo DS, taking advantage of the ARM9 and ARM7 processors as well as supporting all of the hardware peripherals (touch, sound, microphone, wifi, dual screens). This includes a complete media player, an organizer suite, a ground up implementation of a web browser that can successfully render websites using HTML, HTTPS, CSS, images and cookies and other significant accomplishments. My role in the project was that of designer, software developer, system tester and release manager. I also ran a database backend that allowed users to install additional free applications via WiFi.

SQLDisplay Visual SQL Query Manager for Nintendo DS
A program written in C that allows a MySQL database dump to be loaded and queries executed against the resulting data.

libdragon Toolchain and Development Libraries for the Nintendo 64
A custom-rolled version of gcc and newlib targetted towards the MIPS R4300 processor inside the Nintendo 64 as well as an open source system library written in C to aid in homebrew development. My role in the project is the project lead, lead maintainer of the repository as well as the developer responsible for low level drivers enabling users to use controllers, memory packs, rumble packs and most significantly interface with the hardware 2D and 3D rasterizing hardware for image generation. I have also coded several tools for manipulating data to create a toolchain that lets users compile working executable code for use on the Nintendo 64 on Windows and Linux.

DragonMedia Player for the Nintendo Wii
A media player written in C++ that runs on the Nintendo Wii which allows users to play back music from external devices connected to the Wii system or through Samba shares on a wireless network. My role in the project is designer, software developer, system tester and release manager.

YoungMX Media Player for Windows XP
A media player written in Visual Basic 6.0 that allows for library management and sharing as well as playback of media files located on a computer running Windows XP. I also run an update backend that allows users to in-place upgrade software, skins or plugins by one click install.

Hardware Nopaste Service for Xilinx Format Schematics
A web site written in PHP that allows hardware developers to upload schematic files generated with Xilinx's toolset. The schematic files are rendered via the web site and displayed as an image for other users to view and interact with. My role in this project included reverse engineering the schematic format, writing a rendering engine and coding the site backend to allow for storage of uploaded schematics in MySQL.