Curriculum Vitae

#include "PersonalInformation.h"        // PERSONAL INFORMATION
#include "WorkExperience.h"             // WORK EXPERIENCE
#include "Education.h"                  // EDUCATION
#include "Language.h"                   // LANGUAGES
#include "AditionalInfo.h"              // ADDITIONAL INFORMATION

void main(int argc, char * argv[])
{
  // ********************
  // PERSONAL INFORMATION
  unique_ptr personalInfo;
  personalInfo(new PersonalInformation());

  // Please for more info use the contact form
  personalInfo->setName    ("Alejandro Santiago");
  personalInfo->setAdd     ("******************** Leiden (Netherlands)");
  personalInfo->setMobile  ("************");
  personalInfo->setEmail   ("*********@aeonphyxius.com");
  personalInfo->setWeb     ("www.aeonphyxius.com");
  personalInfo->setSkype   ("*************");
  personalInfo->setDOB     ("22/02/1979");
  personalInfo->setNat     ("Spanish");

  // ***************
  // WORK EXPERIENCE
  unique_ptr<vector<WorkExperience>> listExperience;
  listExperience(new vector<WorkExperience> ());
  unique_ptr<WorkExperience> workExperience;
  workExperience (new WorkExperience());
 
  // Current position (Secondary) / Game programmer & Founder 2Awesome Studio
  workExperience->setPeriod ("01/2014 – Present");
  workExperience->setTitle ("Game Programmer & Founder");
  workExperience->setCompany ("2Awesome Studio, Leiden - NL");
  workExperience->addTask ("Lead developer at www.dimensiondrive.com ");
  workExperience->addTask ("Dimension Drive is a successfully funded game");
  workExperience->addTask ("Dimension Drive is a successfully funded game");
  workExperience->setTech ("Unity3D,C#, C++, OpenGL, Cg, HLSL");
  workExperience->setTools ("Visual Studio, Git, Jira, Eclipse, Unity");
  listExperience->push_back (* workExperience); // Add new experience

  // Senior Game Programmer / BeeSquare 
  workExperience->setPeriod ("07/2014 – 06/2015");
  workExperience->setTitle ("Senior Game Programmer");
  workExperience->setCompany ("BeeSquare Games SL, Barcelona - ES");
  workExperience->addTask ("GamePlay programmer for Run Sheldon ");
  workExperience->addTask ("Evolution of BeeSquare’s game engine(C++ & OpenGL ES");
  workExperience->addTask ("Development of platform dependent functionalities");
  workExperience->setTech ("C++, OpenGL ES, Objective C, Java”);
  workExperience->setTools ("Visual Studio, Xcode, Git, Jira");
  listExperience->push_back (* workExperience); // Add new experience

  // Current position (Primary) Software engineer at ESA
  workExperience->setPeriod ("09/2010–06/2014"-(Sabbatical)-"07/2015–Present");
  workExperience->setTitle ("Software Engineer");
  workExperience->setCompany ("European Space Agency (ESA), Noordwijk - NL");
  workExperience->addTask ("Development of planning tool in C++, QT and OSG");
  workExperience->addTask ("Development of management web applications in Java");
  workExperience->addTask ("Database development (PL/SQL, Oracle reports)");
  workExperience->setTech ("C++, OpenGL, J2EE, C#, Oracle 10G, PL/SQL");
  workExperience->setTools ("Visual Studio, Eclipse, SVN, Jira");
  listExperience->push_back (* workExperience); // Add new experience

  // Software engineer at ESA
  workExperience->setPeriod ("01/2009 – 06/2010");
  workExperience->setTitle ("Software Engineer");
  workExperience->setCompany ("European Space Agency (ESA), Darmstadt - DE");
  workExperience->addTask ("Mission management applications in C++, VBA, Unix”);
  workExperience->addTask ("Database development (PL/SQL, Oracle reports");
  workExperience->setTech ("C++, Oracle 6i / 10G, PL/SQL, VBA, C#, Linux");
  workExperience->setTools ("Visual Studio, Code Blocks, Eclipse, SVN,GIT");
  listExperience->push_back (* workExperience); // Add new experience

  // Software engineer at ESA
  workExperience->setPeriod ("06/2006 – 10/2008");
  workExperience->setTitle ("Software Engineer");
  workExperience->setCompany ("European Space Agency (ESA), Noordwijk - NL");
  workExperience->addTask ("Development of management web applications in Java"); 
  workExperience->addTask ("Database development (PL/SQL, Oracle reports");
  workExperience->setTech ("C++, J2EE, C#, Oracle 10G, PL/SQL, Linux");
  listExperience->push_back (* workExperience); // Add new experience
 
  // Lecturer at Gesem
  workExperience->setPeriod ("09/2005 - 05/2006");
  workExperience->setTitle ("Lecturer");
  workExperience->setCompany ("Gesem, Barcelona - ES");
  workExperience->addTask ("Lecturer of “Enterprise IT Technician”(Java, C++)"; 
  listExperience->push_back (* workExperience); // Add new experience

  // Freelancer
  workExperience->setPeriod ("01/2004 – 12/2006");
  workExperience->setTitle ("Software Engineer");
  workExperience->setCompany ("Freelance, Barcelona - ES");
  workExperience->addTask ("Developing custom management web & desktop apps");
  listExperience->push_back (* workExperience); // Add new experience

  // Past position / Teacher at BP Systems
  workExperience->setPeriod ("07/2004 – 11/2005");
  workExperience->setTitle ("Teacher – to software developers");
  workExperience->setCompany ("BP Systems, Barcelona - ES");
  listExperience->push_back (* workExperience); // Add new experience
 
  // **********************
  // EDUCATION AND TRAINING
  unique_ptr<vector<Education>> listEducation(new vector<Education> ());
  unique_ptr<Education> education;
  education (new Education());

  // ** Formal Education
  education->setEduDate ("01/2011 – 06/2012");
  education->setEduTitle("MSc in Computer Software Engineering");
  education->setEduOrg ("Universitat Oberta de Catalunya (UOC), Barcelona - SP");
  education->setEduCom ("Final thesis: Design & Development of Android game");
  listEducation->push_back (*education); // Add education 

  education->setEduDate ("09/2007 – 06/2009");
  education->setEduTitle("Master Course of Video Games Development & Design");
  education->setEduOrg ("Universitat Oberta de Catalunya (UOC), Barcelona - SP");
  education->setEduCom ("Final thesis: Design & Development of 3D racing game");
  listEducation->push_back (*education); // Add education 

  education->setEduDate ("09/2002 – 06/2005");
  education->setEduTitle("BSc in Computer Software Engineering");
  education->setEduOrg ("Universitat Rovira I Virigili (URV), Tarragona – SP");
  education->setEduCom ("Final thesis: Development of network programming API");
  listEducation->push_back (*education); // Add education 

  // ** Training
  education->setEduDate ("09/2014 – 02/2015");
  education->setEduTitle("Algorithms, Part I & Part II");
  education->setEduOrg ("Princeton University, Online – USA”);
  education->setEduCom ("Algorithms, and data structures");
  listEducation->push_back (*education); // Add education 


  education->setEduDate ("07/2007 – 07/2007");
  education->setEduTitle("XNA shaders development");
  education->setEduOrg ("Universidad Pompeu Fabra, Barcelona – SP");
  education->setEduCom ("Shaders development in XNA");
  listEducation->push_back (*education); // Add education 

  education->setEduDate ("07/2006 – 07/2006");
  education->setEduTitle("XNA programming, for Xbox 360 and PC");
  education->setEduOrg ("Universidad Pompeu Fabra, Barcelona – SP");
  education->setEduCom ("Introduction to XNA's development");
  listEducation->push_back (*education); // Add education 
 
  // ***************
  // PERSONAL SKILLS
  // ** Languages
  unique_ptr<vector<Language>> listLanguage(new vector<Language> ());
  unique_ptr<Language> language (new Language());

  language->addMotherTongue("Catalan & Spanish"); // Mother tongue
  listLanguage->push_back(*language);

  // lang, understanding, speaking, writing 
  language->addLanguage("English", Language::C2, Language::C2,Language::C2);
  listLanguage->push_back(*language);

  language->addLanguage("French" , Language:: A2, Language::A2,Language::A2);
  listLanguage->push_back(*language);

  // ** Communication skills
  auto_ptr<string> com;
  * com = "Good communication skills due my experience as a teacher / working
           in international environment";

  // ** Computer skills
  unique_ptr<vector<string>> compSkills(new vector<string> ()); 
  compSkills->push_back("Cocos2d-x, Unity3D, OGRE3D, FMOD, Open GL, DirectX, XNA");
  compSkills->push_back("Android (Java), Iphone (Obj-C), Python, Oracle, MySQL");
  compSkills->push_back("Windows, Linux, OSx, PS4, Xbox One");

  // **********************
  // ADDITIONAL INFORMATION
  // ** Personal Projects
  unique_ptr<AditionalInfo> aditionalInfo(new AditionalInfo());

  aditionalInfo->addProject("www.dimensiondrive.com ",// PC vertical space shooter
  "PC/PS4/XBOX One Kickstarter funded game (Unity3D/C#) (release: June 2016)");

  aditionalInfo->addProject("Balloons","Cocos2d-x mobile game(GPlay, AppStore”);

  aditionalInfo->addProject("www.aeonphyxius.com","video games development blog");

  aditionalInfo->addProject("Energy Rush", "PC platformer made in Unity3D and C#");

  aditionalInfo->addInfo("Iron Man Switzerland 2013 + Barcelona 2014 finisher",
                         "3,8kms swim + 180kms bike + 42kms run" );
}