|
Jason Yandell |
|
|
|
Austin, TX 78756
|
||
-
|
Professional Summary |
|
|
Experienced, highly skilled custom application developer who has successfully designed and developed a number of strategic enterprise applications as well as 2D and 3D games. Background includes extensive use of Microsoft .Net (and ALT.NET) development tools as well as UNIX, most recently including C#, ASP.NET 3.5 (with AJAX and JSON), SQL Server 2000/2005, Oracle 10i, XML Web Services (ASMX and WCF). Projects include the development of Windows clients (WinForms and WPF), web applications and high-performance C++ UNIX processes for major organizations such as the Department of Defense, Continental Airlines, AMD and the University of Texas system.
Active DoD Secret Clearance |
|
-
|
Training |
|
|
|
-
|
Technical Proficiency |
|
|
Platforms
DOS, Win 3.1, Win NT, *NIX, Web, Citrix, Win9x, Mac, OS/X, PalmOS Relational Database (RDBMS) SQL Server 2000, SQL Server 2005, Oracle 8i, 9i, 10g, Pervasive.SQL, MySQL, FOCUS, BTrieve API Application types Windows Client (WinForms and WPF), Windows Service, Database Engine, Device Driver, ASP.Net, ASP.Net 2.0, Flash, Web Service, Console, DirectX Frameworks/Technologies DDE, DirectX, ActiveX, Win32 API, WinForms, MFC, Oracle AQ, Oracle OCI, Multi-threading (POSIX/Win32/.Net), Enterprise Library, DHTML, AJAX, Inter-process communication, ASP.Net AJAX (going back to "Atlas"), JSON, CppUnit, NUnit, Test Driven Development (TDD), XML, Serialization (C++, .Net binary and XML serialization), TCP/IP (sockets), ADO.Net, .Net Framework, Google Earth, Cascaded Style Sheets (CSS), Triggers, stored procedures, UML Design patterns used on a daily basis on at least one project Design patterns (GOF), State, Memento, Singleton, Mediator, Iterator, Adapter, Template method, Observer, Facade, Factory Method, Concrete Factory, Abstract Factory, Strategy, Decorator, Composite, Command, Visitor, Dependency Injection, MVC, Model View Presenter, MVVM Industries Defense, Financial/Banking, Telecom, Database, Automotive, Airline, Oil, PC Game Tools NUnit, NCover, NDepend, NAnt, Resharper, Unity, DevExpress, FXCop, TOAD, Visual, Studio 2008 (and 2010 for fun), Visual Source Safe, PVCS, Rational Suite, Photoshop, Make Methodologies/Styles Object Oriented (OO), Test Driven, Functional, Code-generation, Extreme programming (subset), Pair-programming, RAD, Performance profiling, Template meta-programming, Formal QA Languages C#, F#, ANSI C/C++, JavaScript, Assembly, Regular expressions, Turbo Pascal, SQL, DOS Batch, ActionScript, Lua, OCaml, LISP (Scheme), Haskell, Delphi, C Architectures Client-server, Message passing, N-Tier (Multi-Tier), Service-Oriented (SoA) |
|
-
|
Work Experience |
|||
|
|||
|
Overwatch provides defense industry software. The department I assisted provided a reusable framework employed by a majority of the company's many programs for customers I am told I cannot disclose publicly. You'll just have to call me to find out what I can disclose.
Smart client Took over leadership of development (80% coding time) of a large, reusable application suite. Performed advanced control implementation on a Windows Smart Client (WinForms and WPF) using C# and .Net 2.0 - .Net 3.5. Specifically relied on MVVM pattern (and data-binding) to minimize code, ensure edge-case coverage and maximize testability. Tools included Visual Studio 2008, NUnit, NCover, NDepend, NAnt, Resharper, Test Driven .Net, Unity Web client Led design and implementation (90% coding time) of a data-centric web application. Design consists of a series of .Net 3.0 WCF web services and modular ASP.Net AJAX web client to consume them. NUnit-based unit and integration test suite accompanies. ASP.Net application consists of modular Web Parts for maximum user customization and future expandability. Used model-view-presenter approach to keep as much of the UI as testable as possible and preserve separation of concerns. Implementation process involved writing design documents, coding test-first using Rhino.Mocks and dependency-injection for independent unit-testability. Innovation Also won cash prize from an innovation challenge. Brought full internet search capability for data previously accessible only via large Windows Client installation. Data formatted to be highly compatible with Excel for easy number crunching and visualization. Technologies were C#, ASP.Net 2.0 and Windows Communication Foundation. Designed using TDD, Rhino.Mocks, NUnit. - |
|||
|
|||
|
Created chess, checkers, tower defense and other mini games for Sony's FreeRealms, released in 2009. You can log in for free and check out my work.
Technologies were Flash (ActionScript 2.0) and XML. Given the lack of working AS 2.0 unit testing frameworks, I wrote one. It was bare-bones yet exceptionally helpful: this venerable version of Flash has no debugger to speak of, but with TDD, many bug-free games were shipped with no bugs to speak of. - |
|||
|
|||
|
TimeCard
ASP.Net 2.0 project in C# with SQL Server backend. Used ASP.Net AJAX (formerly Atlas) library. Used JavaScript (DHTML), JSON and Web Services to proxy data in this web application with client-side behavior. Re-tooled with State and Model View Presenter design patterns (as well as Abstract Factory, Strategy, Singleton, Adapter, more) Used generics, design patterns, AJAX, data binding, custom controls, Enterprise Library, DHTML, XML serialization, ADO.Net, .Net Framework, data modeling, SQL Server 2005 tools. OTA Generated test first (TDD) facade design pattern implementation over SoA-based series of SOAP web services OTA in C# 2.0. Visual Studio's version of NUnit for tests, TCP/IP (socket) communication to see data when XML serialization did not succeed. ASP.Net 2.0 project with Oracle back-end. Skills included generics, design patterns, AJAX, data binding, custom controls, Enterprise Library, DHTML, NUnit, XML serialization, ADO.Net, .Net Framework, data modeling, SQL Server 2005 tools. TimeCard ASP.Net 2.0 project in C# with SQL Server backend. Used ASP.Net AJAX (formerly Atlas) library. Used JavaScript (DHTML), JSON and Web Services to proxy data in this web application with client-side behavior. Used generics, design patterns, AJAX, data binding, custom controls, Enterprise Library, DHTML, XML serialization, ADO.Net, .Net Framework, data modeling, SQL Server 2005 tools. WinForms Made design, architecture and implementation contributions to a .Net 2.0 SmartClient application written in C# 2.0 and deployed via ClickOnce. Application remains responsive to the user via multi-threadng to handle long-running calls to Active Directory, XML Web Services, SSIS packages and SQL Server 2005 stored procedures. Capital Tracking General maintenance of a fairly standard departmental application. Technologies included ASP.Net, SQL Server - |
|||
|
|||
|
Street Fighter
Flash (ActionScript) game for a Fox Sports ultimate fighting league called the IFL. link Groked fairly significant Flash project where all comments and variables were in French. Gained debugging experience akin to reverse engineering as well as in delivering a correct piece of software with an aggressive timetable. - |
|||
|
|||
|
Web Service
ASP.Net with SQL Server back-end. Implemented XML Web Service as a test for prospective employees. Skills include T/SQL, ADO.Net. Gained experience in XML Web Service security concerns from authentication to SQL injection attacks. Cashflow projection Used C# with Office 2003 to generate cashflow simulations and projections with statistical variances with graphs and summary reports. Gained experience in business analysis and simulation. - |
|||
|
|||
|
Profitability Analysis (Phase 3)
Performed architectural design and development. Used UML, design patterns and generic programming techniques to adapt efficiently to enhancement requests from executives in unpredictable industry. Used multi-threading (Win32 and POSIX) techniques with SMP hardware. Technologies included Oracle API, XML, TCP/IP (sockets), TOAD, SqlLoader, make, UNIX. Gained experience in generic programming (e.g. some template meta-programming), STL, cross-platform C++, PL/SQL, SQL performance tuning, data modeling. Other Airline Revenue ASP.Net application written in C# with Oracle 9i. XML Web Services employed. Developed Oracle packages and stored procedures with exception handling and logging in PL/SQL. Used regular expressions and the Visual Studio macro system to rapidly develop code generation system for said Oracle packages to efficiently adapt to frequent table change requests. - |
|||
|
|||
|
WinForms client
Computer based training Windows client (WinForms) application written in .Net (C#). 2D multimedia application with custom control rendering (OnPaint) and audio playback and recording (plus mp3 encoding). Design patterns were key to flexibility and reliable delivery. Files and usage data persisted in SQL Server via XML Web Service. XML Web Service Web service responsible for persistance of training data. Used .Net binary serialization techniques to send mp3 and XML serialization for trees of polymorphic objects (composited commands, user activities). ASP.Net application Used ASP.Net with C# on a SQL Server backend to implement a series of administration pages. Used DataGrid, ADO.Net, T/SQL stored procedures. eCommerce prototype Used ASP.Net with C# on a SQL Server backend to implement prototype based on use-case specifications. Used DataGrid, ADO.Net, T/SQL stored procedures. - |
|||
|
|||
|
Rapid application project. Details covered by non-disclosure agreement. Demonstrated ability to communicate effectively with individuals at all levels of management and manage a small team to deliver results rapidly on frequently changing requirements. Gained experience with communication and management skills.
- |
|||
|
|||
|
WinForms Client
Windows client (WinForms) implemented in C# in the .Net Framework used for back-office processing. Used ADO.Net with SQL Server back-end and T/SQL stored procedures. Used .Net multi-threading for responsiveness. Performed memory and performance profiling to optimize overall user experience. Gained project management skills as well as further exposure to .Net-based Windows client applications. ASP.Net Application Public facing website written in ASP.Net with C# on SQL Server. Used ADO.Net with SQL Server back-end and T/SQL stored procedures. - |
|||
|
|||
|
Pipeline optimization
Completed "A star" pathfinding algorithm implementation in C++ to optimize various cost metrics of oil pipeline. - |
|||
|
|||
|
Nolan Ryan Kid Builder Baseball concurrent with Continental projects
Flash, LAMP (PHP and MySQL RDBMS) educational baseball game for $1M prize from Borden. Gained experience in project management, user experience, gameplay design, rapid application development. - |
|||
|
|||
|
Profitability Analysis (Phase 2)
Designed and implemented ground-up implementation of key strategic financial application (below) to incorporate overhauled business process. Used UML, design patterns and generic programming techniques to adapt efficiently to enhancement requests from executives in unpredictable industry. Used multi-threading (Win32 and POSIX) techniques with SMP hardware. Technologies included Oracle API, XML , TCP/IP (sockets), TOAD, SqlLoader, make, UNIX. Gained experience in generic programming (e.g. some template meta-programming), STL, cross-platform C++, PL/SQL, SQL performance tuning, data modeling. Profitability Analysis (Phase 1) Improved processing time of key strategic financial application from 40 hours to 4 hours with high-performance cross platform UNIX port of large Oracle 9i application (packages and stored procedures). Used same skills as above: UML, design patterns, generic programming techniques, SMP multi-threading (Win32 and POSIX) techniques, Oracle API, XML, TCP/IP (sockets), TOAD, SqlLoader, make, UNIX, template meta-programming, STL, cross-platform C++, PL/SQL, SQL performance tuning, data modeling. Memory Manager Multi-threaded (POSIX and Win32) static-time memory manager in C++ for UNIX and Windows. Performance profiling identified bottleneck around malloc, administrators observed memory fragmentation. Provided stability at the end of the project and improved performance. Used XML configuration to define block sizes which were optimized with performance profiling. Delivered large gains with minimal code impact on an enterprise application. Gained experience with cross-platform and threading issues like memory alignment, SMP threading, cache lines and more. Web AP Part of design and implementation team for public-facing financial web application developed in ASP.Net, SQL Server and C#. Gained experience with the .Net framework and SQL Server 2000. - |
|||
|
|||
|
MAME Box
Adapted old Galaga box into modern arcade box prototype to showcase the company and play video games at work. Software involved was joystick driven Flash front-end with console application to translate keyboard input into mouse movement via low-level C++ calls to the Win32 API. Educational Game Package Played by children in various ISDs' K-2. Written in Flash (ActionScript). Gained experience in rapid application development, user experience, staying results-oriented in a relaxed, driven atmosphere. - |
|||
|
|||
|
Logic Factory was a game company formed by Origin programmers aiming to produce a MMORPG-style 3D game. Project ran aground amidst financial problems.
AI (Artificial Intelligence) Responsible for designing and implementing responsive, compelling and realistic behavior for DirectX/Open GL based 3D-game Seeker Gained experience with UML and design patterns as well as developing high-performance C++ applications in a multi-threading (Win32) environment and advanced programming techniques including template meta-programming. Also gained further exposure to user experience, gameplay and artificial intelligence techniques. Pathfinding Provided total implementation of 'A-star' pathfinding algorithm including integration with the game context including defining and integrating terrain costs, data-driven pathing and more into company's proprietary game-engine Hydra . Optimized for performance by choice of data structures and implementing algorithm to return partial solutions in a time-bound environment without threading, providing ability to search over a huge space with minimal impact on gameplay and multi-threading performance and implementation complications in a team environment. Gained experience with UML and design patterns as well as developing high-performance applications in a multi-threading (Win32) environment. Animation Designed and implemented clean and responsive 3D character animation into the engine by implementing a coherent state-based animation system with skeletal interpolation (via quaternions ). Gained experience with UML and design patterns as well as developing high-performance C++ applications in a multi-threading (Win32) environment. Utilities Win32 API/DirectX/Open GL Windows client (WinForms) application in C++. Developed general game utility specifically providing support of import/export of Maya and 3D Studio Max files as well as scripting, editing tool for animation to compliment engine and AI design. Gained experience with UML and design patterns as well as developing high-performance applications in a multi-threading (Win32) environment. - |
|||
|
|||
|
Zippity was a "dot com" aiming to produce a MMORPG-style childrens' game. Team consisted of game programmers from Origin, Epic, Eidos and artists from Disney and Fox Studios. Project ran aground amidst financial problems.
Calculator When user entered a digit or operator, cartoon-animated fish lept out of the application carrying the token, did a flip and whipped the number into place along the entry bar which appeared to float above (and separate) from the application with the desktop visible behind sections of the application. Application written in C++ with the Win32 API and MFC. Effects achieved via GDI/GDI plus. Gained exposure to new product development and advanced WinForms graphics techniques as well as Photoshop and interacting in a team of disperate and complimentary skillsets (i.e. artists, designers and producers). Furthermore, gained understanding of situations when it is better to avoid multi-threading. Kaleidoscope Designed and implemented WinForms/DirectX application in C++ to generate realistic kaleidoscope effect (akin to link) in real time via texture mapping in DirectX. Displayed solid mathematical background as well as ability to innovate within timelines. Gained confidence at being an effective contributer in any professional environment. Avatar editor WinForms application written in C++ for DirectX/Win32 API. Created and edited the users' avatars, akin to the Mii editor in Nintento Wii. Employed performance profiling to avoid premature optimization. Implemented resource cache to maintain high performance and low memory footprint. Employed object oriented techniques (OOD/OOP) and design patterns. Gained more performance and DirectX exposure. "I Doubt It" (aka expletive deleted) card game with AI WinForms application written in C++ for DirectX/Win32 API. Designed gameplay and computer opponent with variable levels of difficulty. Employed object oriented techniques (OOD/OOP) and design patterns. Gained exposure to user experience concerns and navigating trade-offs common to all development projects in the quest for the best possible end product. Dancing/rhythm game WinForms application written in C++ for DirectX/Win32 API. A typing tutor/rhythm game with animated character dancing to the beat. Employed object oriented techniques (OOD/OOP) and design patterns. Gained exposure in rapid application development, integrating with tools such as Maya. Puzzle game with AI WinForms application written in C++ for DirectX/Win32 API. Designed computer opponent and implemented gameplay. Employed object oriented techniques (OOD/OOP) and design patterns. Gained exposure to UI concerns in a complex, animated environment. Whack-A-Mole WinForms application written in C++ for DirectX/Win32 API. Implemented gameplay. Employed object oriented techniques (OOD/OOP) and design patterns. Gained experience in usability and architecture Game Engine Client/server WinForms application written in C++ for DirectX/Win32 API. Game engine functionality included loading and unloading DLLs, implementing scalable TCP/IP (socket) communication for a MMORPG client, versioning, automatic updating, and more. Server Member of design and implementation team for scalable TCP/IP (socket) communication-based MMORPG server. Gained experience in multi-threaded design, network communication design and performance and stability trade-offs in various network architectures such as peer-to-peer vs. client/server. - |
|||
|
|||
|
Quality assurance
Used Visual Studio to fix cross-platform and platform-specific bugs on a wide range of products on the DOS, Win 3.1, Win NT, UNIX, Win9x, OS/X and PalmOS platforms. Applications included console applications, windows clients and a transactional database engine. Used the Win32 API, MFC, sockets (for inter-process communication from the database engine). Worked daily with the Model View Controller design pattern. Environment included formal QA and an automated build process. Programming languages used include C/C++ and Delphi. Gained understanding of large product development as well as version control, bug tracking, interactions with the QA department, meeting schedules, and finding solutions with minimal code impact. Unicode converter Console-based application to converts between Unicode standards for an internationalization initiative. Written entirely in DOS batch using string-replacement tricks with FOR command. Gained new respect for DOS batch and issues surrounding internationalization. DDFEase Implemented significant improvements to an tool used to modify metadata for existing databases. Add/remove columns, modify datatypes of existing fields (a personal favorite). Boils down to implementing ALTER TABLE in C/C++ inside the high-performance database engine. Gained understanding of RDBMS at the engine level as well as exposure to issues and solutions in object oriented programming (OOP/OOD) Build Build process automation. Was responsible for large sections of the cross-platform automated build process for thousands of executables and libraries built on the DOS, Win 3.1, Win NT, UNIX, Win9x, OS/X and PalmOS platforms. Became extremely intimate with the ins and out of make and various version control platforms including Visual Source Safe and PVCS. Make Identified issue of maintaining costly licensing and training required to support numerous disparate make files. Demonstrated big picture thinking and rapid application development skills by implementing make over a weekend. The language used was C++ and the platform was Windows NT. By being able and properly implement such a tool, vast cost savings were identified. Took this rapid application development proof of concept through the proper channels on up to the Vice President, evidencing the ability to communicate effectively with personnel at all levels of management. Gained exposure to the chain of command as well as solid understanding of issues involved in cross-platform automated build process. Network scanning utility Implemented a Windows Client (WinForms) utility to adaptively scan the intranet for various versions of database engines and warn operator of Y2K compliance issues. Used the BTrieve API as well as the Win32 API, specifically for TCP/IP (socket) communication and security/authentication. Installer wizard Performed custom work on a significant InstallShield implementation designed to deploy various versions of the product. Involved scripting and custom DLL development in C++. Gained large-scale InstallShield experience. ODBC Driver Team member on implementation of an ODBC driver using C++ in Visual Studio on the Windows 2000 and Windows NT platforms as well as object oriented methodologies (OOD/OOP). Driver was the primart interface for the company's RDBMS product "Pervasive.SQL". Gained ability to research, design and implement solutions in the Windows subsystem, building on my prior LINUX/UNIX academic exposure. General Utility Development Leveraged quick learning abilities to implement enhancements to a large number of database maintenance tools in a timely manner. Implemented using the Win32 API in C++. Was invited to advance design sessions for the next version of the products due to effective oral and written communication skills evidenced during development of these tools. Gained understanding of large project development navigating, modifying and implementing changes in this multi-million line codebase. Database Engine Leveraged multi-threading and inter-process communication skills as well as object oriented methodologies (OOD/OOP) to perform maintenance and bug fixing on the transactional BTrieve database as well as participating in the design and implementation of an entirely new RDBMS the company was preparing to launch. Programming language: C++. Gained hands-on, practical understanding of the way databases work, augmenting undergraduate coursework. - |
|||
|
|||
|
Back-end processing
Demanding, high performance processing of terabytes of financial (banking) data in an environment where security and accuracy (rounding errors) are job one. Data retrieved from "FOCUS" RDBMS via stored procedures and processed using Visual Basic (VB 3.0) on Windows 3.1 platform. Gained understanding of Windows programming, RDBMS, gathering requirements, meeting schedules, and a wide array of other software development fundamentals. Reporting tool Used object-oriented methodologies (OOP/OOD) to rapidly implement client/server graphical reporting tool akin to Crystal Reports from graphics primitives and a boot-strapped GUI. Including charts, page summaries, etc. Rendered to the screen or a PostScript driver to accomodate printer-driver incompatibilities. Windows client application using the RDBMS "FOCUS" on the Windows 3.1 / Windows NT platforms in the programming languages Delphi, Visual Basic and Turbo Pascal. Inter-process communication implemented with DDE as the transport. Performance profiling was leveraged to bring run times down. SQL Server DBA Installed and maintained instances, table spaces, import and export of data. Maintained instances on Windows NT and Citrix. SQL performance tuning was performed when query speeds became as issue. Gained independent working skills and reinforced the ability to solve problems through research and lateral thinking. - |
|||
-
|
Independent Experience |
|
|
University of Texas at Austin
Received grant from the University to process citations from all sources into a human-collaborative wiki format. This will allow people to see what works reference a particular work as well as allow academics to comment on the relative strength of the source. Leveraging a cloud approach to scale to the untold size we'll need to essentially process every literary and academic work done by humans. Technologies include F#, C#, Perl, MySQL, and NUnit as usual. Project Euler Completed 25 Project Euler problems in F# because I love F#, I love solving challenging problems and I couldn't stop solving the problems until I had the little pyramid by my name. For unit testing I employed xUnit (rather than my usual NUnit) to give it a spin. Tower Defense Game Worked with my friends at Powerhouse Animation to create this tower defense game for fun and hopefully profit (result: fun, but no profit). The game has been played more than 250,000 times, which remains fun. Technology was Flash, ActionScript 2.0. jQuery jQuery was so interesting to me I made a little bookmarklet to extract the hilarious (to me) pictures from Fark.com to learn it. Also learned about greasemonkey and FireBug in the bargain. Processing programming language 3D graphics toy projects. Picked up Processing, a Java-based 3D library for fun and profit. Profit? OK, profit was never a consideration; just fun. Refreshed 3D knowledge and made a few little toys from star fields to n-body simulations to fun with springs. Since there was no debugger at all, I created a very simple unit test framework to help me out. Google Maps Created Google Maps / Google Earth interface to locate daycare centers from a list of addresses. Geocoded addresses and imported into Google Maps and then Google Earth to pinpoint nearest daycare centers. Imported other pertinent data to pop up for each map location. Baylor College of Medicine Provided input on modifications to the R statistical programming language required for medical research demands. Assisted in implementation of required modifications to the R compiler written in C. Academic Created distributed computing client and server applications to train neural networks in C++ using socket (TCP) communication. |
|
-
|
Education |
||||||
|
||||||
-
|
Awards and Honors |
|
|
|
-