Curriculum Vitae

Professional Experience

July 2013 - Current

Software Engineer at BlinkPipe

  • Developing software for an OMAP based board designed for video conferencing. Working across all layers from network, through interrupt handling to video processing and GUI.
  • Working with custom hardware, developing a focusing algorithm for the camera.
  • Integrating external libraries and maintaining code, keeping it up to date with upstream development.
  • Working with diverse codebases in C, C++, Perl, Bash and many specialised frameworks - both on custom hardware and x86 servers providing the communication backend and video multiplexing.
  • Profiling the video bridge, building requirements spec for client usage and monitoring the performance of servers to guarantee availability.
  • Developing client-server systems for real-time communications. Reverse engineering proprietary network protocols.
  • Handling time-sensitive lossy communication and audio and video processing, from bare UDP to RTP streams with NALs.
  • Working on improving audio quality through processing and error resilience.
  • Researching, evaluating technologies and prototyping solutions to problems.
  • Troubleshooting external product installations and providing technical support to installation teams.
  • Working in a small team using SCRUM.
January 2011 - October 2012

Programmer at Climax

  • Game engine programming using C++, extending the Unreal Engine 3 whilst working on a video game targeting multiple platforms (PC, XBox 360 and PS3).
  • Debugging and profiling code to run within memory and time constraints.
  • Integrating third party middle-ware.
  • Gameplay logic programming using scripting languages (UnrealScript, Kismet).
  • Implementing and maintaining a high quality user interface using Scaleform. This involved working closely with UI designers and artists. I worked end to end from ActionScript inside the Flash files, through the game logic in UnrealScript down to the C++ behind the Scaleform integration.
  • Creating tools and plug-ins for graphical packages to be used by artists and designers. Supporting and extending the tools and providing training for users.
  • Working within a team of programmers and collaborating with a multi-discipline team of artists, animators, designers, audio engineers and writers. Using agile techniques, source control and bug-tracking systems.
November 2007 - May 2010

3D artist, programmer at Stainless Games

  • Programming front-ends and user interfaces for video games for multiple platforms (PC, NDS, XBox 360, PS3). Working together with artists and designers to produce a user experience that is both intuitive and visually appealing.
  • Working on mock-ups and prototypes for project pitches. Coding up working prototypes on short notice for purposes of design validation.
  • Creating textures, 3D models and other art assets for multiple platforms. Creating tools to help with art asset authoring and other tasks.
  • Working in a cross-discipline team, within a quick iterative development framework and tight deadlines where collaboration and effective communication are crucial.
January 2005 - July 2007

3D artist at Reality Pump

  • Creating art assets in a scalable way to tailor them for multiple target hardware (PC, XBox 360, PS3), working with a wide range of graphical software packages (Max, Maya, Photoshop, ZBrush) to create cutting edge graphics.
  • Writing scripts for graphical packages to improve the art workflow. Helping to automate pipelines for asset creation, working closely with both artists and programmers, linking the two disciplines.
  • Technical review and QA of art assets created by other artists for technical compliance and performance optimization.
  • Working in a small team developing an in-house tree generation technology, later released as a standalone middle-ware product.
May 2003 - April 2004

3D artist at Drago Enterteinment

  • Creating 3D graphical assets for video games, working from concept art to real-time rendered objects created to conform to strict run-time performance budgets.
  • Using various graphical software packages, including 3D Studio Max for modeling, Photoshop and Paintshop Pro for texturing.
  • Writing scripts for 3D Studio Max to help with modeling and automating repetitive tasks, creating art pipelines.

Personal Projects

  • Lethe (Linux/Android/Windows) Game written in C++ using SDL, an interactive fiction engine designed for touch screens, which involved creating my own scripting language.
  • Metal Crusade (Linux/Windows) Written in C++ using OGRE, created as a technical demo of a 3D game.

Education

October 2003 - June 2007

Computer Science at University of Science and Technology AGH in Cracow

  • Earned a Bachelor of Computer Science degree, majoring in computer systems (final grade 5, equivalent of a 1st).
  • End term paper on real-time volume rendering
    file: real-time volume rendering.pdf (4.9MB)
    and an application to accompany the presentation
    (openGL under windows in an msi installer).
    file: vxlv.msi [31.77MB]
  • Worked on a commercial project for TRAX elektronik - a system for managing roadside LED signs, their communications and status, data gathering and processing from meteorological points and cameras.
  • Learned to work in teams on big projects, manage complexity, use OOP techniques and create internal and external documentation.
  • A solid base of theoretical and practical mathematics. Taught to use several languages (C/C++, Java, assembler, Perl) and development methodologies - working under both Windows and Unix environments.
  • Earned a grade-based grant on my first year which I retained until the end of my studies.

Skills

As a programmer

  • Specializing in C++ but with experience in many languages, including Lua, Perl, Java, ActionScript.
  • Writing software with real-time requirements, debugging and profiling code to achieve set frame-rates.
  • Good 3D math, effective use of the STL.
  • Designing and implementing user interfaces.
  • Writing tools for 3D graphics packages using their respective scripting languages and APIs.
  • Knowledge of SQL (PostgreSQL and its PL/pgSQL).
  • Constantly learning and dealing with new frameworks, tools and APIs.
  • Proficient on both Linux and Windows platforms, experience in Android development.
  • Experienced in following written specification, working under pressure of deadlines.
  • Using agile techniques, unit and integration testing, using source control, writing and maintaining documentation.
  • Good collaboration and communication skills.

As a technical artist

  • Extensive experience in many professional software packages like Maya and 3D Studio Max, Photoshop, ZBrush and Mudbox but also in open source programs like Blender and Gimp.
  • Creating assets for numerous platforms under strict time and resource budgets.
  • Authoring and reviewing assets created by artists for technical compliance.
  • Designing and automating pipelines for asset creation, working closely with both artists and programmers, linking the two disciplines.