MS, Applied Mathematics @
University of Illinois at Urbana-Champaign
It all started in 1982 with Commodore 64 BASIC. In 1984 I discovered the Apple ][. It was fun, but I was not impressed and retreated into Mathematics until programming languages had more to offer. I did some cool stuff in Mathematica during the mid-1990s. I also spent a few years on the hardware side at Intel
It all started in 1982 with Commodore 64 BASIC. In 1984 I discovered the Apple ][. It was fun, but I was not impressed and retreated into Mathematics until programming languages had more to offer. I did some cool stuff in Mathematica during the mid-1990s. I also spent a few years on the hardware side at Intel and ARM.
Started Java and C++ development in 1998 focusing on writing user interface code, as well as fixing and tracking bugs.
Currently building next-generation testing platform for anything that runs Netflix, with focus on iOS. The framework and Appium code is Java. KIF requires a little Objective-C work on occasion.
Prefer mature, test-driven environments where developers speak in "design patterns." Insist on working in a FUN environment where I can not only find bugs, but also fix them. Think of me as both a QA engineer and software developer.
Specialties: Bug finding, QA, Automation, JIRA, C#, Java, JavaFX, Microprocessor Benchmarking, Design of Experiments, Public Speaking, Demos, Audio Engineering, humor
Senior Software Engineer @ iOS automation, Appium, KIF, Java, Objective-C, Jenkins, Eclipse, Gradle From July 2014 to Present (1 year 6 months) San Francisco Bay AreaSoftware Development Engineer in Test @ • Wrote iOS automated test framework from scratch using UIAutomation for Skype Qik app.
• Wrote automated test app in C# for Windows Phone 8.
• Integrated automated testing into continuous integration environment with QuickBuild.
• Developed automated tests using Python to drive Selenium for testing Outlook.com video calling. From July 2012 to July 2014 (2 years 1 month) Quality Assurance Engineer @ • Created test plan for Facebook video calling apps for iOS and Android platforms.
• Maintained quality by working closely with developers of Facebook video calling mobile apps from early development until project ended.
• Developed automated tool in Objective-C++ for testing mobile API.
• Worked closely with developers discovering and verifying bugs in Facebook video calling web plugin.
• Kept Skype fun even after Microsoft took over. From 2011 to July 2012 (1 year) Software Engineer and QA Engineer @ Software Engineer
• Developed PHP/MySQL backend for Facebook game Sweet World. Wrote user facing web pages and developed all game currency code, including integration with payment providers such as TrialPay and PayPal.
• Created static HTML web pages for fantasy football games and improved several using Ajax with Prototype.
• Insisted on paying strict attention to detail to perfect web page styles for all games by tweaking CSS code.
• Quickly fixed web pages to adhere to changing Facebook rules to avoid policy violation penalties.
• Refactored all admin tools to eliminate redundant code and improve future code maintenance.
• Experimented with different user interface designs to improve viral spread of games.
• Reported majority of bugs in Facebook game Kingdoms of Camelot before we had a QA department. Continued bug reporting and verifying bug fixes to support new QA team.
• Installed and managed continuous integration environment using Hudson and incorporated automated builds into game test plans.
• As a JIRA administrator, worked with game testers to enforce high standards in bug reports. Also integrated JIRA with Hudson and ViewVC source code viewer.
• Devised test plan for fantasy football draft game. Identified hundreds of bugs and worked with Flash developers to ensure successful launch.
• Corrected grammar and researched accuracy of content for trivia game Noodle. From July 2009 to November 2010 (1 year 5 months) San Francisco Bay AreaComputer Engineer @ Loan Specialist
• Started high-interest loan business that did very well (until the economy shifted).
• Continued development of Design of Experiments software in master’s thesis and enjoyed spending the resulting royalty checks. Improved code by:
o Incorporating latest Java features to make code more maintainable and testable.
o Replacing home-cooked implementations with robust open source alternatives including charting tools with JFreeChart, GUI effects with JXLayer, and linear algebra solvers with Apache Commons Math Library.
o Enhancing user experience by adding concurrency to the Java front-end Swing code.
o Optimizing numerical linear algebra algorithms in regression model calculations.
• Co-authored and proofread journal articles published by research group.
• Explored various topics in Computer Science, including:
o Programming languages such as Scala, JavaFX Script, Objective-C, etc.
o Agile methods and test-driven design.
o Refactoring techniques and the use of design patterns to reduce code complexity.
o Using open source libraries, such as Google Collections Library (Guava).
o Web development using Google Web Toolkit (GWT) and Google App Engine (Python). From 2003 to June 2009 (6 years) Member of Technical Staff @ • Performed all code coverage analysis on ARM1026EJ-S processor resulting in 100% line coverage.
• Introduced benchmarking into regression test flow during development. Provided design engineers feedback to quantify performance changes at each revision. Identified several performance bugs that were quickly corrected, allowing both processor and compiler teams to exceed performance goals.
• Co-developed industry standard software test harness for certification of performance and power benchmarks for embedded microprocessors. Worked closely with EEMBC (EDN Embedded Microprocessor Benchmarking Consortium) Certification Laboratories to develop and test benchmarks written in C code. Test harness was completed ahead of schedule.
• Determined (legal) compiler flags that produced optimal benchmark scores for ARM1020E microprocessor. Certified power (code size) and speed scores with EEMBC Certification Laboratories using RTL simulation results, not silicon. From June 2001 to November 2002 (1 year 6 months) Graduate Assistant @ • Developed all study editors for the Möbius modeling framework – a tool used to model and analyze system performance and dependability. Study editors allow the user to experiment with the system model parameters. Front-end code was written in Java/Swing, with back-end code in C++.
• Thesis work focused on the Design of Experiments module in Möbius that provides users with an iterative experimental environment to accelerate progress toward system performance and reliability goals. Interface makes extensive use of graphs and tables to aid model analysis, with results stored in a PostgreSQL database.
• Logged hundreds of bugs in Bugzilla database, and fixed hundreds too!
• Performed all software demos, including one to the U.S. Army at JPL (Jet Propulsion Laboratory) in Pasadena, CA.
• Co-authored several white papers about Möbius. From January 1998 to May 2001 (3 years 5 months) Head Teaching Assistant @ • Taught Introduction to Computer Engineering to 27 students and managed other TAs. From August 1997 to December 1997 (5 months) Summer Intern @ • Used circuit simulation results to calculate optimal characteristics of repeater stations placed across Itanium microprocessor in order to decrease signal propagation delays. Resolved conflicts with other groups who resisted yielding precious chip real estate for necessary repeater stations.
• Simulated effects of adding differential bus on higher metal layers for increased performance. Concluded that bus consumed too much real estate despite benefits of noise rejection – so went with fewer layers of metal. From May 1997 to August 1997 (4 months) Summer Intern @ • Ran critical path prediction Perl scripts on Instruction Prefetch Unit of Itanium microprocessor. Reported performance bottlenecks weekly and worked with circuit and logic designers to resolve issues.
• Pioneered synthesis effort on Itanium and passed the first functional unit block through milestone RLS0. Worked with Design Automation team to optimize design flow. From May 1996 to August 1996 (4 months)
MS, Electrical and Computer Engineering @ University of Illinois at Urbana-Champaign From 1994 to 2002 MS, Applied Mathematics @ University of Illinois at Urbana-Champaign From 1992 to 1994 BA, Mathematics @ Rockford University From 1988 to 1992 Auburn High School From 1984 to 1988 Patrick Webster is skilled in: Test Automation, UIAutomation, C#, iOS, Android, Java, Windows Phone, Selenium, Unix Shell Scripting, Humor, Git, Agile Methodologies, JIRA, Quality Assurance, FishEye