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.

About Me

Who are you?author's photo

I'm a Polish born, UK based software engineer. In my previous lives I have been a 3D CG artist, technical artist and photographer.

Where are you?

I currently live in Cambridge, UK. I have lived in a lot of UK cities and while I can see myself moving again if I have to look for work (especially if it would land in me somewhere in Scotland) I think I'm now settled on making UK my permanent home.

How can I contact you?

The easiest and fastest way is to e-mail me. I'm likely to reply faster to an email than to a phone call.

What do you do?

For a living I work as a software engineer but had also worked as computer graphics artist having made the transition somewhere in the last decade.

On the code side I develop games and applications mostly in C and C++ but I have experience in many other languages and technologies. Stating the obvious: different tasks benefit from different languages and often it's simply the only choice for the domain - so I have experience with Perl, Lua, Unrealscript, MAXSrcipt, MEL, SQL and others. I am comfortable with both Linux and Windows platforms and a fan of multi-platform development. I love the challenge of resource constrained platforms.

On the art side I used to specialise in low-poly modelling for games but I also did architectural visualisations and photography (this has become more of a hobby now). Having moved from art to programming I am in a good position to work on any tasks that overlap disciplines like User Interfaces, scripting and tools creation.

So which is it, programmer or artist?

Short answer: programmer.

As you can see I'm interested in all things technical and over the years I've also dabbled in numerous other (seemingly boring) things like PHP and web design in general (this website's current reincarnation is the first that uses an off-the-shelf CMS and not one written by myself) and databases (Postgress, on an attempt at a web-based game) and am generally technically minded, interested in obscure topics like IF engines. My biggest and longest running interest is the voxel technology. They keep resurfacing every now and again and then get dismissed. One day though, they will rule the world of computer graphics (and data and computation since they go so much deeper than polygons - both literally and as a concept)!

I started out in gamedev in 2003 as an artist and even then I was the one interfacing with the programmers because I had a programming background and over the years I've been slowly moving from art to code. Whilst I started out on the other side of the divide I had always been pulled towards the technical aspects of gamedev and I never really fought it much.

What's your professional and educational record?

For a detailed history you should look at the CV. As an employee, not that long ago I've been working full-time for a Polish game developer - Reality Pump, known for the Earth 21xx series and Two Worlds. The office was located in the centre of Cracow, a wonderful city where I lived for many years.

After graduating in 2007 with a Bachelor of Computer Science degree from the University of Science and Technology in Cracow (AGH) I finished my work there and moved to the UK which I've been planning to do for many years and managed to find a job on the Isle of Wight at Stainless Games known for the Carmageddon series. I got to see the projects I had been working on to the end and left at the end of May 2010. I decided to leave as I really wanted to move onto the mainland and preferably into a city again. I took some time off to develop a demo and by the end of the year I got a job at Climax in Portsmouth. There I got to work on a AAA title that sadly got canned before it got announced and I lost my job. This left me a bit disillusioned with the games industry and I sought my future in embedded software working for a startup in Cambridge, called BlinkPipe, who make video conferencing equipment.

I'm still planning to further my education in the UK but this has to be put on hold until I can afford it - I'm too old to be taking out student loans and the fees have been jacked up over the years to stupid levels.

What is this site about?

This site is primarily my internet portfolio and an electronic business card. Secondly it has been the proud host of Daggerfall (remade/inspired) music for over a decade now. Lastly, it's a place to share my interests and host some photos.

Anything to add?

All this was very dry so I wanted to add a more personal message which probably says more about me than the preceding summary.

Participate in open-source projects, edit wikis, share your computing power by participating in projects like folding@home, join internet communities that do great things rather than corporate social sites which just harvest your private data and sell you things. Fight for your digital rights, support software freedom and oppose software patents.