{"basics":{"name":"Graham Wihlidal","label":"Engineering Fellow (Graphics)","picture":"/assets/icons/Profile_0_192.png","email":"","phone":"(780) 718-4503","website":"https://www.wihlidal.ca","summary":"Graham is an engineering fellow (graphics) developing Unreal Engine 5 at Epic Games.\n","location":{"city":"Edmonton","countryCode":"CA"},"profiles":[{"network":"Twitter","username":"gwihlidal","url":"https://twitter.com/gwihlidal"},{"network":"LinkedIn","username":"gwihlidal","url":"https://www.linkedin.com/in/gwihlidal"},{"network":"Facebook","username":"gwihlidal","url":"https://www.facebook.com/gwihlidal"}]},"work":[{"company":"Epic Games","position":"Engineering Fellow (Graphics)","website":"https://www.unrealengine.com","startDate":"2019-07-15","endDate":"","summary":"Researching and developing next generation rendering techniques for Unreal Engine.\n","highlights":["Key developer on Nanite and other UE5 technologies","Engine architecture and development","Modern graphics abstraction","Next generation rendering techniques","Collaboration with IHVs and partners","Technical leadership and coaching","Active in recruitment and interviewing efforts"]},{"company":"SEED, Electronic Arts","position":"Senior Rendering Engineer II","website":"https://www.ea.com/seed","startDate":"2016-07-03","endDate":"2019-06-28","summary":"Developed forward-looking experiences and cutting-edge technology in the research group SEED at Electronic Arts.\n","highlights":["Implemented and architected significant components of Halcyon, SEED's R&D engine","Cloud hosted microservices","Real-time ray tracing","Massive scene rendering","Machine learning","Procedural content generation","Remote rendering and streaming","Texture and mesh compression and transcoding","Vulkan API collaboration with Khronos and IHVs","Technical leadership and coaching","Active in recruitment and interviewing efforts"]},{"company":"Frostbite, Electronic Arts","position":"Senior Rendering Engineer II","website":"https://www.ea.com/frostbite","startDate":"2013-07-05","endDate":"2016-07-02","summary":"Worked on the rendering and low level engine technology, and provided direct features and support, for numerous titles.\n","highlights":["Significant role in transtion of EA and Frostbite to next generation consoles","Implemented and architected significant components of Frostbite 3 on Xbox One and PlayStation 4","Researched GPU driven pipelines, shader compilers, AMD GCN hardware tricks, culling, and 4k checkerboard","Worked with many teams on Frostbite to develop and launch their titles","Collaborated extensively with IHVs, Microsoft, Sony, and other partners","Presented a number of significant technical contributions at a number of events","Major contributor to AMD Mantle, Direct3D 12, and Vulkan","Technical leadership and coaching","Active in recruitment and interviewing efforts"]},{"company":"BioWare, Electronic Arts Inc.","position":"Senior Rendering Engineer","website":"https://www.ea.com/frostbite","startDate":"2006-06-05","endDate":"2013-10-17","summary":"In charge of a number of critical systems including multiplayer backends, 3D graphics\\shaders, low-level platform optimization, and engine architecture.\n","highlights":["Significant role in transition of studio to Frostbite 3","Architected custom SPU RHI for UE3","Architected custom SPU GC for UE3","Architected custom SPU animation for UE3","Implemented custom SPU LZ4 decompressor","Implemented SPU LZO shader microcode decompression and cache","Implemented custom SPU policy module and compiler (vtable patching, staged pow2 lru dma cache, etc.)","Implemented RSX transfer manager that moved animations, string tables, audio, rendering between host and local memory","Extensive optimizations and improvements for UE3","Ported internal Eclipse engine to PS3 and Xbox 360","Extensive optimizations and improvements for Eclipse","Extensive optimizations and improvements for HeroEngine","Massively multiplayer game development - SWTOR","Implemented custom VM for Scaleform GFx","Content and code build systems","Art tools & pipelines","Multiplayer architect","Technical leadership and coaching","Active in recruitment and interviewing efforts"]},{"company":"CGI Group","position":"Consultant & Partner","website":"https://www.cgi.com","startDate":"2005-04-03","endDate":"2006-05-21","summary":"Developer on the APPRES project for Alberta Government Services. In charge of general development and also the design and implementation of a custom reporting framework and processing\\rendering engine.\nInteracted both directly and indirectly with the client to assess business needs and anticipate required functionality related to reporting.\nAlso served as the configuration manager on the project, and performed numerous tasks like the delivery of integration baselines alongside development work. Was also in charge of keeping developer machines operational and productive, including setting up new machines and source control accounts (Rational ClearCase, ClearQuest, and Requisite Pro).\nOccasionally coached other developers as required.\n","highlights":["Microsoft BizTalk","Microsoft SQL Server","Microsoft ASP.NET","Microsoft SQL Reporting Services","Rational ClearCase","Rational ClearQuest","Rational Rose","Rational RequisitePro"]},{"company":"eWorkflow Biz","position":"Lead Business Application Developer","startDate":"2004-07-01","endDate":"2005-02-26","summary":"Lead developer of a workflow automation framework and application using C# .NET, Windows Forms, ASP.NET, SQL Server 2000, Exchange API, and Windows SharePoint Services. The workflow was modeled from the BPML specification (Business Process Modeling Language).\n","highlights":["Microsoft ASP.NET","Microsoft SQL Server","Microsoft SharePoint","Microsoft Exchange API"]},{"company":"InfoPath Service Assurance","position":"Independent Consultant","startDate":"2002-12-03","endDate":"2004-02-21","summary":"Large scale financial software in Java and also Microsoft .NET.\n","highlights":["Apache Tomcat","Java Servlets","Microsoft Jet","Microsoft ASP.NET","Microsoft WinForms"]},{"company":"Self-Employed","position":"Independent Consultant","startDate":"2001-04-01","endDate":"2003-04-15","summary":"Variety of database architecture, data analytics, Java, Perl and C/C++ application development.\n","highlights":["Apache Tomcat","Java Servlets","Oracle Forms 6i","Oracle Database","Microsoft SQL Server","SQL Reporting Services","Metrowerks PowerPlant"]}],"education":[{"institution":"Microsoft Certifications","studyType":"Professional Designations","area":"Architecture and Engineering","startDate":"2005-01-01","endDate":"2005-12-31","courses":["Microsoft .NET 2.0 Early Adopter","Microsoft Certified Professional","Microsoft Certified Application Developer","Microsoft Certified Solution Developer","Microsoft Certified Database Administrator","Microsoft Certified Solution Architect"]},{"institution":"Game Institute","area":"Game Development Courses","startDate":"2003-01-01","endDate":"2005-01-01","courses":["Game Mathematics","Artificial Intelligence for Game Developers","Graphics Programming with DirectX 9","Real-Time 3D Terrain Rendering","Advanced 3D BSP, PVS and CSG Techniques"]},{"institution":"Northern Alberta Institute of Technology","area":"Computer Systems Technology","studyType":"Honours","startDate":"2002-03-04","endDate":"2004-02-20"}],"awards":[{"title":"Jason Lang Scholarship Award","awarder":"Alberta Heritage Scholarship Fund","date":"2003-01-10","summary":"Awarded for outstanding academic achievement of Alberta post-secondary students."}],"publications":[{"name":"Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs","publisher":"Apress","releaseDate":"2019-02-26","website":"http://www.realtimerendering.com/raytracinggems/","summary":"Chapter titled \"Hybrid Rendering for Real-Time Ray Tracing\""},{"name":"GPU Zen: Advanced Rendering Techniques","publisher":"Black Cat Publishing","releaseDate":"2017-05-15","website":"http://gpuzen.blogspot.com/","summary":"Chapter titled \"Optimizing the Graphics Pipeline with Compute\""},{"name":"Advanced Game Programming: A GameDev.net Collection","publisher":"Course Technology Ptr","releaseDate":"2014-10-01","website":"https://www.amazon.com/gp/product/1598638068/ref=dbs_a_def_rwt_hsch_vapi_taft_p1_i1","summary":"Article titled \"Box Filtering Height Maps for Smooth Rolling Hills\""},{"name":"Game Engine Toolset Development","publisher":"Course Technology Ptr","releaseDate":"2006-04-06","website":"https://www.amazon.com/Engine-Toolset-Development-Graham-Wihlidal/dp/1592009638","summary":"Game Engine Toolset Development provides you with a core set of skills and a comprehensive insight that will aid you in the development of game engine utilities, significantly reducing the time period associated with the construction phase of a project. The book starts off with topics regarding development methodologies and best practices, and then proceeds into advanced topics like swap chain management and MVC object model automation with CodeDom. The companion Web site provides downloads of all source code from the book, as well as several bonus chapters."}],"skills":[{"name":"Languages","keywords":["HLSL","GLSL","PSSL","C","C++","Rust","Python","Assembly"]},{"name":"Graphics","keywords":["Drivers","DirectX 12","Vulkan","Mantle","SIMT","DXR","GNM","AMD GCN","Shaders","Optimization","Abstractions","Image Quality"]},{"name":"Game Development","keywords":["Technical Lead","Certification","Cross Platform","PlayStation 3","PlayStation 4","Xbox 360","Xbox One","Art Tools"]},{"name":"Systems Programming","keywords":["Low Level","Data Oriented","Concurrency","Allocators","Networking & IO","SIMD & Vectorization","x86/x64/PPC Assembly","Optimization","Cross Platform","Build Systems","Content Pipelines"]},{"name":"Infrastructure","keywords":["Kubernetes","Docker","Grafana","Prometheus","Terraform","Google Cloud","Helm","gRPC","Protobuf","Jaeger"]}],"languages":[{"language":"English","fluency":"native-speaker"},{"language":"French","fluency":"elementary-proficiency"},{"language":"Swedish","fluency":"elementary-proficiency"}],"interests":[{"name":"Music","keywords":["Guitar","Bass","Trumpet","Digital","Mixing","Recording"]},{"name":"Snowboarding"},{"name":"Scuba diving"},{"name":"Sky diving"},{"name":"Board games"}]}
