Expert software engineer with over 20 years of software development experience at Intel, Microsoft, Thomson Reuters, Pioneer Electronics, and News Corporation, who has personally written over 300K lines of C++, 72K lines of C#, 46K lines of Java, and 12K lines of Perl, taught advanced software design and programming to over 1,103 engineers, and won numerous awards including coveted Intel Software Quality Award. Effectively leads with and without authority to achieve innovative and significant optimizations and software quality and productivity improvements. Optimizes and debugs code where others have failed.
Senior Software Engineer @ From August 2015 to Present (3 months) New York City, NYSoftware Architect @ Continuously improved developer productivity, software quality, and application performance for Computational Lithography Technology group.
* Designed and implemented tool (10,486 C++ lines) that is 15X faster than vendor tool, which reduces time-to-market and saves millions of dollars in licensing costs. Awarded Intel Divisional Award—the highest personal Intel award.
* Designed and implemented database creation tool (18,750 C++ lines) that is 8X faster than previous tool due to extensive use of C++11 move semantics, multi-threaded programming, SQL query optimization, and template metaprogramming.
* Re-designed and implemented part of a tool (21,137 C++ lines) to be 8X faster and use 24X less memory.
* Voluntarily trained over 1,103 Intel engineers in OR, CA, and Malaysia (160+ hours) to address deficiencies I perceived by teaching original classes on Effective C++, Refactoring, C++ Design, and Design Patterns.
* Implemented quality improvement efforts that helped win Intel Software Quality Award—considered to be the hardest Intel award—including innovative gated checkin system (2,867 Perl+shell lines) that uses regression tests and static (eg clang, cppcheck) and dynamic analysis (eg Valgrind) tests to prevent bugs from being checked in, and enable continuous integration and 24/7 availability.
* Modernized and standardized development practices and processes by driving adoption of C++11, latest GCC, ICC, and CLANG compilers, static and dynamic analysis tools, and GIT source control; and automated code reformatting and automated conversion of entire 1.5M line C++98 codebase to C++11 using custom CLANG-based mass refactoring tools. From June 2008 to June 2015 (7 years 1 month) Portland, ORGraduate Research Assistant @ * Created model, metrics, and tool (19,000 Java lines) to formally quantify the difficulty of modularizing some requirements, features, etc. of a program and showed that defects increase as modularity decreases.
* Created novel tools and language extensions (37,000 C# lines, http://www.cs.columbia.edu/eaddy/~wicca) to support using aspect-oriented programming to improve modularity.
* Created tool that matches written requirements to program code (6,000 PERL lines). From September 2003 to May 2008 (4 years 9 months) New York City, NYResearch Intern, Programming Languages and Tools Group @ Created program dependency analysis and visualization tool that refactors classes into open classes to eliminate compile-time dependency cycles. From June 2006 to August 2006 (3 months) Redmond, WASoftware Development Engineer Intern, Phoenix Compiler Group @ Designed and implemented post-compile-time tool that manipulates byte code to enable aspect-oriented programming and open classes (19,000 C# lines). From June 2005 to August 2005 (3 months) Redmond, WAInstructor @ Taught C programming language and good programming practices to graduate students for 3 semesters. Created lecture material, assignments, quizzes, and exams. Developed Perl scripts that automated testing and grading programming assignments and emailing results. From January 2004 to May 2005 (1 year 5 months) New York City, NYProject Supervisor/System Architect @ * Designed and implemented Thomson’s flagship desktop application (120,000 C++ lines)—a multithreaded ActiveX control container for all Thomson and third-party real-time stock market data products. Designed and implemented system architecture, object model, XML schemas, SDK, and scripting (13,839 C++ lines) and logging (8,000 C++ lines) subsystems.
* Designed application framework to enable code reuse and ensure interoperability across all Thomson ActiveX controls, which included designing interfaces, developing shared templates and code, and extensive documentation.
* Designed and implemented real-time market data grid ActiveX control (20,000 C++ lines) that uses XML to define presentation layout and business logic.
* Designed and implemented several innovative solutions for improving usability and achieving tighter integration with web applications using Dynamic HTML, behaviors, cascading style sheets, and web browser ActiveX control.
* Helped implement ActiveX control that displays real-time market data for global stocks, bonds, options, futures, treasuries, and other securities.
* Modernized coding practices by weaning developers off “copy-and-paste” reuse and driving XML adoption. Improved hiring process by creating a 75 question interview test that covered C++, COM, etc. Profiled (TrueTime, Vtune) and optimized several Thomson products including working with Intel (http://bit.ly/1CFi9WV).
* Supervised 6 developers and drove cross-team integration and optimization activities. Coordinated 75 Thomson and Merrill Lynch developers and managers to rollout product to 25,000 users. From October 1998 to August 2003 (4 years 11 months) New York City, NYSoftware Engineer @ * Designed and implemented program that builds TV Guide listings web pages (www.tvguide.com) for entire United States every night (70,000 C++ lines).
* Designed and implemented C++ SNMP monitoring library (COM object).
* Developed PERL-based web applications for Major League Baseball, iVillage, Movietone, and TV Guide, including the first web postcard program. Worked with editors, producers, designers, and programmers in dynamic newsroom environment. From October 1995 to September 1998 (3 years) New York City, NYSystems Administrator @ Developed PERL scripts on AIX UNIX to automate daily procedures including batch processing, nightly backups, and disk usage statistics reporting. From July 1995 to October 1995 (4 months) Dublin, IrelandSoftware Developer @ Developed PERL scripts on Solaris UNIX to convert the Statutes and Bills of the State of Florida to HTML pages for the Florida Legislature web site (www.leg.state.fl.us). From February 1995 to April 1995 (3 months) Tallahassee, FLSystems Administrator @ Installed and maintained various software and hardware, and wrote programs and scripts, for DEC ALPHA UNIX, IBM RISC/6000 UNIX, and IBM PC. From October 1994 to February 1995 (5 months) Tallahassee, FL
PhD, Computer Science @ Columbia University in the City of New York From 2003 to 2008 MS, Computer Science @ Columbia University in the City of New York From 1997 to 2001 BS (Dual-Major), Electrical Engineering & Computer Science @ Florida State University From 1990 to 1995 Marc Eaddy is skilled in: Computer Science, C++, C, Software Design, Java, Software Engineering, Software Development, Software Implementation, Linux development, High Performance..., Teaching, Design Patterns, Refactoring, Computational Geometry, EDA, Distributed Systems, Algorithms, Programming, C/C++ STL, C#, Object-oriented Software, Object-oriented..., Performance Optimization, Distributed Computing, Optimizations, Parallel Computing, Parallel Programming, Parallel Algorithms, Distributed Algorithms, Distributed Applications, Perl, Image Processing, Boost, Augmented Reality, Agile Methodologies, Compilers, Computational..., Distributed Simulation, Simulations, Game Development, Windows development, Aspect-Oriented..., SDLC, Linux, Algorithm Design, Debugging, Object Oriented Design, Optimization, Performance Tuning, Windows
Websites:
http://www.columbia.edu/~me133,
http://marceaddy.blogspot.com/,
http://www.flickr.com/photos/marceaddy