Experience / Employment History
Open source (ongoing)
Position: generalist developer
Contributing to open source projects is my passion and an endless source of enjoyment I find in programming. Follow me on GitHub.
tags: objective-c, c++, python, elixir, go, javascript, clojure, english
Frogwares (May–November 2012)
Position: iOS Developer, Game Engine and Graphics Programmer
My responsibilities at Frogwares included dealing with everything iOS related, specifically the following.
- They used a proprietary framework to port PC games to iOS, and my responsibility was to fix stuff that did not work and write stuff that was not supported by the framework: integrating 3rd party libs written in Objective-C; adding support for Game Center, In-App purchases; proper sound management and so on.
- Develop and maintain a build server for iOS projects (written in Python).
- Support legacy 3D engine ported from PC to iOS by another company. Fix graphics bugs that appeared during the porting process (this included advising modelers and texture artists; tweaking shaders and OpenGL ES code).
- Optimize the engine code (C++) and scripted game logic (Lua) to improve startup times and frame rate.
Among the projects I've worked with were: Sherlock Holmes: The Awakened, Sherlock Holmes and the Hound of the Baskervilles, Dracula: Love Kills.
tags: ios, objective-c, c++, game engine, python, graphics programming
Avallon Alliance Ltd. (2009–2012)
Position: iOS Developer / Game Programmer
I have worked with the guys at Avallon both by telecommuting and in their office. Among the responsibilities I had, the major ones were:
- Working on all aspects of game development from a prototype to a finished product. At one point I was writing a custom 2D graphics engine; at another occasion I was building development tools that helped streamlining level design, UI design, and the process of tweaking game mechanics on the fly.
- Maintaining and updating released projects of the company to ensure compatibility with new iOS versions.
- Writing libraries that simplified integration with social networks and other proprietary APIs used in a number of the company's projects.
I was also the sole developer (in a team of five) for the Air Jump game currently available on the App Store. I used cocos2d as a graphics engine and implemented the entire game logic in Objective-C.
tags: ios sdk, objective-c, python, pyqt, cocos2d
Voodoo Dimention (summer 2008)
Position: iOS Developer / Game Engine Programmer
My task was to port
The Stone of Destiny (a hidden-object/puzzle game for PC) to the iPhone platform. I did a complete rewrite of the game including the graphics engine it used (the original PC game had been developed using the Blitz3D engine). Being the sole developer for the project (in a distributed team comprised of the original developer, an artist, and myself), my responsibilities included:
- Building a 3D engine from scratch. It supported polygonal mesh rendering, texture blending, lighting, key-frame animation, camera control, scene hierarchy, etc.
- Writing a B3D loader (which I did mainly in C). B3D was a file format used by Blitz3D, capable of storing complex 3D scenes with animations.
- Building all of the game logic in Objective-C.
- Actively participating in the process of redesigning the UI to fit the platform form-factor. Things like the main menu dialogs, the map view, animated transitions in the comics — those were my ideas that made it into the final product.
Two years later the game was also ported to iPad. This time, I was responsible for implementing a redesigned UI, adding achievements and implementing a tight integration with Facebook (a feature called "Friend's help").
Both iPhone and iPad version of the game are available on the App Store. Take a look at the Projects page to find App Store links and watch the trailers.
tags: ios sdk, c, objective-c, opengl es, game engine, graphics programming
Strong Skills
These are the skills I have been applying in professional development and that I'm ready to put to work starting today. I'm also a fast learner when it comes to picking up new languages and tools.
- Objective-C (iOS SDK). I have been developing for the iOS platform since the first beta of the SDK which came out in 2008. I have an intimate knowledge of the platform and the Objective-C language, the Foundation framework, memory-management conventions, runtime system, dev tools, etc. I'm also familiar with the C language.
- C, C++. I've been dealing with C and C++ since around 2005 and have worked with projects written in both.
- Python (PyQt). I've been using Python since around 2008 for most of my personal work as well as for building GUI tools, automating stuff, etc.
- Shell scripting. I deal with terminal on a daily basis, using shell scripting and UNIX utilities for automating repetitive tasks.
- Graphics APIs (OpenGL (ES), SDL). I know OpenGL quite well, having used it since my school years. I have a strong knowledge of its fundamental concepts, extension mechanism, buffers, and shaders. I've also had some experience with HGE and SexyApp Framework (also known as PopCap game framework). I've worked with multiple in-house graphics engines over the years.
Active Skills
These are the skills I'm currently working on and have great interest in. Haven't got a chance to apply them in development of a big fat project yet.
- Elixir & Erlang VM. Being a contributor to the Elixir language and its standard library, I'm also rapidly picking up knowledge of Erlang and its awesome features.
- Go, Rust. I've being playing around with Go and Rust programming languages recently, exploring their approach to concurrency and safety and evaluating their suitability for low-level (or systems) as well as high-level (or application) programming.
Education
BS in Applied Mathematics (with elements of Computer Science) from the National Technical University of Ukraine "Kyiv Polytechnic Institute" (also known as KPI). Years of study: 2006–2010.
Other Things
- I have a good command of English, some knowledge of español and know a little bit of 日本語 and italiano.
- Science fiction is my favourite book genre. Fantasy is my second favourite genre.
- I like playing various tabletop games, family board games, and ping pong.
- I enjoy drawing, playing the guitar and piano and trying out various handicrafts from time to time.
Contact
You can reach me at alcosholik@gmail.com.