Brian Bugh

Systems Engineer

About Me

I am a Systems Engineer with 20 years of professional programming experience in web and games. I specialize in building the foundation for platforms and teams, robust product designs, and inspiring leadership. I love to solve impossible problems. Cutting edge web, games, robotic space mining, biotech, microfinance, embedded devices, energy hacking, or something entirely new. If they think it can't be done, I'll to be the one to do it.

Primary technologies

  • Ruby
  • Rails
  • HTML
  • CSS
  • JavaScript
  • ActionScript
  • Git/SCM
  • Photoshop

Other technologies

I have experience with many other languages and technologies.

Systems:

  • PS2
  • PS3
  • Xbox 360
  • Wii
  • Windows
  • Mac
  • Linux
  • Apache
  • SCM Admin

Previous Language Expertise:

  • C#/.NET
  • Lua
  • C
  • C++
  • PHP
  • SQL
  • XSLT/XPath

Hobbyist Knowledge:

  • io
  • Lisp
  • assembly
  • bash
  • LaTeX
  • Obj-C
  • Smalltalk
  • Python

Retired from:

  • Java
  • ASP.NET

Technical Highlights

The really meaty stuff

While I did a lot of cool things in the web industry, the games industry is where some of the greatest creative opportunities and hardest problems are solved on a regular basis. I am looking for a similar leap out of the virtual world into the real world.

Custom Xbox 360 file packaging system

Microsoft's secure file system for signing XBOX packages was very slow, and not very secure. In order to overcome these limitations, I created a file packaging system that featured intelligent file data distribution, strong security, and custom compression that minimized file size and reduced game load times from ~45 seconds to < 8 seconds while also greatly reducing the chance of hacking.

Multiple Continuous Integration and Automated Testing Tools

For multiple projects I created custom automated testing, building, and continuous integration tools that featured security auto-attacks (such as SQL and timing overflows, odd user behaviors, etc.), customizable automated testing procedures (also scriptable by non-programmers), cross-platform asset packaging and management — in PHP, then later Ruby, and eventually Rake, for both the web and for games (which is a lot less common).

Spec-complete, feature enhanced ActionScript 2 interpreter in C++

We had a job working with a AAA-game engine in C++ with a policy of not allowing third-party libraries. In order to facilitate using Flash as a UI design environment (which is now common with AAA games) I wrote a spec-complete ActionScript 2 interpreter with enhanced features like thread/process-safe asynchronous updates, a fully automated spec test suite self-written in ActionScript, an extensive customized game-enhanced UIComponent library for Flash artists to rapidly and easily create a game UI for the current and future titles, and more.

Predictive Asset Loading and Render Buffering Pipeline in ActionScript 2

We wanted to make a Facebook game look more awesome than anyone had ever seen, and make it look like it was a real 3D rendered isometric engine. In order to accomodate the requirements of high resolution sprites with many more frames of animation than a typical Flash game, I came up with an advanced asset manager that intelligently predicted texture usage for pre-caching and unloading behind the scenes in partial real-time. To render it, I created an accompanying asset buffering and rendering pipeline that optimized around the limitations of the Flash renderer. The result was an incredibly fancy looking Flash game that allowed artists to maximize their art talents while the asset manager, renderer and pre-compiler worried about optimization.

Strengths

What I am awesome at!
  • Predicting failure outcomes and spotting "gap problems", then writing code or guiding the process/team to avoid them. As a result, I have a lot of experience in code/process optimization, robustness, and security.
  • Data architecture, file systems, resource allocation, optimization, loading, and caching. If it's not completely clear yet, I absolutely love resources and huge datasets.
  • Starting projects and preparing foundational design and architecture for others to come along and build on top of.
  • Designing frameworks and tools for empowering programmers or artists to do better work or make their lives easier.
  • Leadership methods that produce optimal steady output from creative teams over long periods of time that doesn't involve crunch hours or dehumanizing practices. Six months into a project my teams work better and happier, not worse and sad from burn out. People love working for me.
  • A strong work ethic, focused on getting things done because they need doing. I am known for focusing for long periods of time on single tasks without getting fatigued or bored.
  • Doing things right the first time, so no one ever has to do them again. "Make it work, make it right, make it fast" and "do it right, do it once" are two mantras my teams hear often.
  • Product design, particularly in human interactions. I can accurately judge how people will feel using software and create/enhance designs to optimize the human experience.
  • Much to the chagrine of some teams, I am very good at finding bugs and breaking things.

Weaknesses

What I am not so awesome at.
  • 2D/3D visual math, particularly geometry and calculus. Despite my strong math skills in other areas, and extensive tutoring by team members I have never clicked with spatial math.
  • Algorithms, particularly Greek symbol-heavy ones, particularly hypothetical. I have always hired someone for this. Once it's code/algebra I'm great with it, but until then, not so much.
  • Workflows that require compiling; the down time while waiting for compiling is hyper disruptive to my productivity and draining to my happiness.
  • Working with less experienced developers: a previous manager said that I am excellent at taking the 80-100% and getting 150% out of them, but not great at reaching below that 80% to bring them up. I work best with other experienced developers.
  • Maintenance work and end of project bug fixing and wrap-up. Some people love this, I do not. Getting the best work out of me involves putting me ahead of others doing the foundation and pioneering work.

Testimonials

  I could always count on Brian to do what was necessary to get the job done. He also has a very forward thinking approach and was able to predict and avoid many pitfalls.  

  Brian displayed a great aptitude both for solving complex technical problems and explaining relevant details of his solutions in a clear and concise manner. Brian kept the project on track without making his team members feel micromanaged, fostering creativity and encouraging everyone to provide input for important decisions. Furthermore, Brian took any available opportunity to help members of his team learn new skills that they could apply to the project, and I found his guidance invaluable on many occasions. Regardless of the situation, Brian was always open, approachable, and eager to do whatever he could to ensure the completion of tasks, making it easy to hash out development issues whenever the need arose. Working with Brian was a very rewarding experience and I would be happy to have the opportunity to do so again.  

  I had the pleasure of working on a team led by Brian at Pi Studios. Brian displayed a great aptitude both for solving complex technical problems and explaining relevant details of his solutions in a clear and concise manner. Brian kept the project on track without making his team members feel micromanaged, fostering creativity and encouraging everyone to provide input for important decisions. Furthermore, Brian took any available opportunity to help members of his team learn new skills that they could apply to the project, and I found his guidance invaluable on many occasions. Regardless of the situation, Brian was always open, approachable, and eager to do whatever he could to ensure the completion of tasks, making it easy to hash out development issues whenever the need arose. Working with Brian was a very rewarding experience and I would be happy to have the opportunity to do so again  

Contact me!

Are you a funded startup or mid-sized companies solving exciting problems?

Contact me!

Also available for contract mentoring and business advising.