
Ted Middleton
Verified Expert in Engineering
C++ Developer
Ted is a software developer and programmer with 20 years of professional programming experience and close to 25 years of experience programming in C and C++ and almost as long in Python. He enjoys finding clean solutions and producing high-quality, high-value code. Ted also excels at porting and building maintainable cross-platform software and is skilled as a runtime-performance optimizer. In short, the software that Ted writes just works.
Portfolio
Experience
Availability
Preferred Environment
JavaScript, Python, C++, Linux, C, Rust, Linux Kernel, C++17
The most amazing...
...thing that I've developed was a social lobby engine for a game based on coroutines; it let us write a social lobby with just two developers rather than 20.
Work Experience
Software Engineer
Integrated Cinematics
- Programmed single-handedly an MVP Unreal Editor plugin that carried the startup company to their first paying customer.
- Worked with customers to diagnose network and graphics issues with distributed Unreal wall-display systems.
- Collaborated with company founders to build out our development team and hire top-notch C++ developers.
Software Engineer
Fortune 500 Data Science Software Company
- Closed dozens of customer-critical defects with high-quality, maintainable fixes.
- Oversaw code reviews for third-party non-Toptal contractors.
- Solved complex, long-standing customer-affecting problems and bugs related to low-level platform issues and third-party software defects.
Software Engineer
Microsoft
- Diagnosed and fixed user-critical crash defects in a triple-A Xbox One game.
- Assumed responsibility for infrastructure defects in localization logic, especially for glyphing and right-to-left languages.
- Created front-end logic-matched multiplayer games.
Software Engineer
Arista Networks
- Implemented diagnostics tools that allowed network administrators to view low-level switch chip registers in data center routers to track network irregularities.
- Designed and implemented sampling logic for debugging register functions in low-level switch chips in data center routers to alert network admins of peculiar network traffic errors.
- Oversaw the main branch's health and triaged build breakages.
Software Engineer
Teradici
- Optimized a sophisticated wavelet video codec with ARM-NEON code to run on a lowly Cortex-A8 CPU. This project achieved an impressive eight times performance improvement and was an enabling technology for a line of general-purpose thin-clients sold by HP.
- Wrote a Windows, Linux, and macOS remote desktop client based on Qt.
- Implemented a MacOS driver that made USB device access possible for the company's macOS remote desktop solution.
- Spearheaded the company's migration from Subversion to Git and SCons to CMake.
Software Engineer
Slant Six Games
- Architected and developed an asynchronous network simulation system for network gameplay in a real-time strategy game.
- Developed a coroutine-based online lobby system for match-making and player chat. Compared to the previous game, this lets us cut out an enormous amount of boilerplate code and developer time.
- Diagnosed, mathematically characterized, and mitigated the effects of aggressive vertex quantization with rendering glitches and seams. This was a huge memory saving.
Software Engineer
Electronic Arts
- Shipped three AAA console video games in as many years, each achieving at least an 80% Metacritic rating.
- Worked with artists to identify and rearchitect deficiencies in team art tools, especially related to rendering.
- Implemented vehicle physics, especially related to vehicle damage.
Experience
Desktop Software Clients for the Teradici PCoIP Protocol
https://docs.teradici.com/find/product/software-and-mobile-clientsMainframe: Column-storage Dataframe for C++
https://github.com/tedmiddleton/mainframeSkills
Languages
C++, Python, Rust, MIPS, Assembler x86, x64 Assembly, C++17, Embedded C++, Embedded C, Java, JavaScript, C
Other
FIX Protocol, Embedded Systems, Templates, Boost.Asio, Plugins, Firmware, Embedded Software, Networks, SIMD, Linux Kernel, Xbox One, Unreal Engine 5, Real-time Operating System (RTOS), System-on-a-Chip (SoC)
Frameworks
Qt, Unreal Engine, Flask, Unreal Engine 4
Platforms
Linux, Xbox, Android
Libraries/APIs
Pandas, Node.js, Interactive Brokers API
Tools
GDB
Education
Bachelor of Science Degree in Computing Science
University of Alberta - Edmonton, Alberta, Canada
Bachelor of Science Degree in Physics
University of Alberta - Edmonton, Alberta, Canada