Resume of Brian Enigma
Total Page:16
File Type:pdf, Size:1020Kb
This PDF document was automatically generated from an XML document using an XSL template on 2010-07-05. Brian Enigma [email protected] http://stackoverflow.org/resume/ 503-308-8765 Objective I am an innovative computer professional with over 20 years of programming and hardware experience (15+ professionally) with a passion for code. While my technical skills are deep in many areas, they are also broad. I love to learn new skills and keep ahead of the curve. My strong analytical ability, attention to detail, and communication skills allow me to tackle nearly any situation. Presently, I seek a challenging technical position that will put my skills to good use. Skills Computers, General Unix/Linux (Ubuntu/Kubuntu, BSD, Redhat, some Solaris), OS X, Microsoft operating systems, system administration, database administration (DBA), digital telephony, reverse engineering, security, encryption/cryptanalysis (theory and practical applications), user interface design Programming C/C++, Standard Template Library (STL), GNU programming tools (make, gdb), PHP, Objective-C, Python, Java, JSP, SQL, SQLite, assembly language on several platforms, Perl Programming Theory Object Oriented programming (UML, design patterns), unit testing (CppUnit, JUnit), inline documentation (Doxygen, Javadoc), software security/robustness, OS security, Agile methodologies (Scrum, Extreme Programming) Embedded Systems Realtime/Embedded Linux, cross-compiling toolchains (mainly ARM and PowerPC), remote debugging (gdbserver), boot loaders (u-boot, uMon, lilo, grub), J2ME, assembly language on several platforms, Cobalt Qube network appliance programming and architecture, "Home Brew" Sony Dreamcast software, some experience with other realtime operating systems (vxWorks, QNX) Chips and Processors Intel i386/i686, PowerPC, ARM, Atmel AVR, Marvell switches and packet processors, Vitesse Crosspoint Switches, Intel 8051, Motorola/Freescale 68HC11 Networks TCP/IP (socket) programming, firewalls, ipchains, IP masquerading, 7-layer OSI stack, network services (including many RFC specifications), Public Key Infrastructure (PKI), web technologies (HTML/CSS, JavaScript/ECMAscript, CGI, Apache, lighttpd, Tomcat, Weblogic) XML XML, validation (DTD, XSD, Schematron), transformation (XSLT), publishing/documentation (XSL-FO, DocBook XML), B2B business transactions (RosettaNet), transports (HTTPS, FTP, SMTP, raw sockets), Remote Procedure Calls (RPC) (RESTful/JSON, XML-RPC, SOAP/WSDL) Tech Hobbies electronics hobbyist, ham radio enthusiast (KE6TXX), Project Euler Work Experience 8/2004-present, Apcon, Inc., Senior Firmware Engineer Led a small team to bring the 2000-series product line (Layer 1, physical layer, network switches) from design to market. Tasks included: Reimplemented legacy code (a bare-metal 8051 application) as an embedded Linux architecture running on a custom ARM controller board Built a custom Linux system based around uClibc, buildroot, busybox, and uMon Created and modified Linux kernel drivers, including: I2C, GPIO, and SMBus for talking to the backplane, optical transceivers (SFPs, XFPs), temperature and fan controllers, realtime clock, and other digital components Designed and implemented a Remote Procedure Call (RPC) controlled core daemon process responsible for the business logic, resource contention, security enforcement, hardware monitoring, alarms, etc. Designed and implemented custom embedded web-based management interface, including back-end code and front-end HTML and CSS. Designed and implemented initial CLI (over SSH, telnet, and serial) management interface Contributed to SNMP management interface Resume of Brian Enigma 1 of 5 Performed "full stack" programming of features and bug fixes -- from studying datasheets to flipping bits on chips to kernel drivers to the core userland service, to a lightweight remote procedure call (RPC) library, to user-facing services (web, CLI, SNMP, XML, etc.) Designed and implemented remote-authentication modules for regular and two-factor authentication via TACACS+ and RADIUS with attributes Led the team that brought the 3000-series product line firmware (Layer 1 network switches with optional modules allowing for Layer 2 and 3 routing, aggregation, and filtering) from design to market. Tasks included: Ported apps and services from 2000-series (ARM) to 3000-series (PowerPC), accounting for processor differences (endianness), cross-compiler idiosyncrasies, and differing resources. This includs ongoing challenges in parallel development because the same apps must still run on both product lines Designed and implemented the enhancements to the core service and RPC for managing aggregations. Designed and helped implement the dual-controller high-availability failover mechanism. Updated the web interface framework to lighttpd and PHP, using Adobe Flash (Flex) front end, including a custom PHP extension to wrap the RPC framework. Extended u-boot to include manufacturing and development tools. Ongoing duties not tied to a particular product line included: Managed interoperability between the firmware RPC stack and the desktop GUI application team -- maintaining cross- platform compatibility between Linux (on PowerPC, ARM, and x86) and Windows. Linux administration of CVS server, Wiki, Mantis bug tracker, TestLink Buildmaster, responsible for maintaining a "one-click" build script, code branches and merges Developing and maintaining unit tests and automated test harness frameworks 8/2005-1/2006, Mind Candy, Puzzle Designer (contract) Developed several puzzle cards for the Perplex City collectable card game. The design work was not just the puzzle logic, but also the card's graphic design. The specific cards were Catcher, Confounding Cube, NAND, and Primer from the Season One set. The underlying skills covered paper engineering (like Oragami), digital electronic design theory, and prime number theory. 11/2001-8/2004, Drake Certivo, Team Lead/Senior Software Engineer Projects and job duties spanned two main products. First, for the distance-learning computer appliance, duties included: Led a development team in architecting and implementing a content management and distribution system for electronic courses across distributed learning centers. This system, written in PHP and MySQL, is AICC and SCORM compliant. Developed core architecture for a Linux-based network appliance that delivers electronic courseware. This appliance was deployed in Sylvan Learning Centers across the country. Second, for the business-to-business compliance test appliance product, duties included: Led a development team in porting an existing XML compliance application to an embedded platform (the Sun/Cobalt Qube). This system was used for RosettaNet B2B conformance testing. Initially led a development team in architecting and implementing a next-generation XML compliance application, allowing companies to test their conformance to the RosettaNet, OAG, and ebXML B2B standards. The main test engine is written in Java and runs on an embedded Unix platform, while the user interface is a Java application specifically designed to work well in Windows, OS X, and Linux. This system was put to use by automobile manufacturers. Member of a team developing an EDI validating proxy for Best Buy. This system runs a set of expert system rules against inbound messages, flagging bad messages as rejected or requiring manual editing. Assorted system administration duties: CVS server maintenance, user account maintenance, software and OS installs, etc. 11 months of remote work Resume of Brian Enigma 2 of 5 11/2000-09/2001, Metapa, Senior Software Engineer Headed a team responsible for writing software to encode, distribute, and track digital media assets. This included taking high volumes of media assets from customers (CDs, DVDs, music files, video files, etc), applying automated transforms, then getting them automatically imported into a distribution system for tracking and access control. The automated transforms included encoding, transcoding to different formats, and trimming to 30-second samples. The distribution system consisted of a custom HTTP server, with assets stored on Akamai, that allowed media owners to control which digital radio stations and online retailers had access to their media. The project used agile development methods to rapidly prototype in Python against constantly changing specifications, mainly because of its similarity to C++ and extreme flexibility. Bottlenecks -- for instance, the HTTP server -- were rewritten in C++ for speed and efficiency. For cost efficiency reasons, the core database was Oracle which fed multiple read-only MySQL databases in the web farm. The entire project was eventually ported to run as J2EE under a BEA WebLogic server. 09/2000-11/2000, AltaVista Transition Team, Senior Engineer (contract) This was a temporary position offered to key developers in the Irvine office. Since this office was closing and being consolidated with the main office in San Mateo, a number of web applications and internal tools had to be transitioned from a Windows IIS C++ COM architecture to a Unix-based Java servlet architecture. 05/1999-09/2000, AltaVista Shopping, Lead Engineer Headed the front-end web team. Responsible for syncing up with Marketing, AV Search, and Sales. Required drafting technical designs to solve issues for all involved parties. As lead architect, had the responsibility of always thinking of the "big picture" and making sound architectural decisions on how components, databases, and front-end software will