gt:     protected String getSoftwareEngineer() {
context: package eu.grigoriev.cv.data;
  
  import eu.grigoriev.cv.data.sections.pojo.id.ID;
  import eu.grigoriev.cv.data.sections.pojo.model.*;
  import eu.grigoriev.cv.data.sections.pojo.types.Proficiency;
  import eu.grigoriev.cv.generator.utils.DateTime;
  
  import java.util.Locale;
  
  /**
   * @author Sergey Grigoriev
   */
  public class SergeyGrigorievEn extends SergeyGrigoriev {
  
      public SergeyGrigorievEn() {
          locale = new Locale("en");
  
          person.setName("Sergey Grigoriev");
          person.setPosition("Team Leader / Software Engineer");
  
          Information information = personalInformation.get(person.getId());
          information.setPhone("On request");
          information.setMaritalStatus("Married");
  
          Company company;
          company = employmentHistory.get(ID.COMPANY.INTECHCORE_GMBH_SA);
          company.setResponsibilities("Architecture design, core components development, requirements analysis, technical specialists coordination, risks management, documentation, communication with customers");
          company = employmentHistory.get(ID.COMPANY.INTECHCORE_GMBH_SSE);
          company.setResponsibilities("Application design and development, communication with customers, documentation");
          company = employmentHistory.get(ID.COMPANY.SAM_SOLUTIONS_BELARUS_TL);
          company.setResponsibilities("Application design and development, requirements management, team management, tasks distribution, communication with customers, documentation");
          company = employmentHistory.get(ID.COMPANY.SAM_SOLUTIONS_BELARUS_SSE);
          company.setResponsibilities("Application design and development, documentation");
          company = employmentHistory.get(ID.COMPANY.BSUIR_CPI_SE);
          company.setName("Belarusian State University of Informatics and Radioelectronics, the structural unit \"Centre of Informatics Problems\"");
          company.setResponsibilities("Application design and development");
  
          University university;
          university = education.get(ID.UNIVERSITY.BSEU);
          university.setName("Belarusian State Economic University");
          university.setFaculty("International Economic Relations");
          university.setDepartment("World Economics");
          university.setQualification("BA in Economics");
          university = education.get(ID.UNIVERSITY.BSUIR);
          university.setName("Belarusian State University of Informatics and Radioelectronics");
          university.setFaculty("Computer Systems and Networks");
          university.setDepartment("Software for Information Technologies");
          university.setQualification("MEng in Software Engineering, Diploma with Honors");
  
          Language language;
          language = languages.get(ID.LANGUAGE.EN);
          language.setName("English");
          language.setLevel("Upper-Intermediate, B2 according to CEFR");
          language = languages.get(ID.LANGUAGE.DE);
          language.setName("German");
          language.setLevel("Intermediate, B1 according to CEFR");
          language = languages.get(ID.LANGUAGE.BE);
          language.setName("Belarusian");
          language.setLevel("Mother Tongue");
          language = languages.get(ID.LANGUAGE.RU);
          language.setName("Russian");
          language.setLevel("Mother Tongue");
  
          Certificate certificate;
          certificate = certificates.get(ID.CERTIFICATE.PRAGMATIC_TEST_DRIVEN_DEVELOPMENT);
          certificate.setTitle("Pragmatic test-driven development");
          certificate = certificates.get(ID.CERTIFICATE.TEST_DRIVEN_DEVELOPMENT_IN_JAVA);
          certificate.setTitle("Test-driven development in Java");
          certificate = certificates.get(ID.CERTIFICATE.AGILE_ENGINEERING_PRACTICES);
          certificate.setTitle("Agile Engineering Practices");
          certificate = certificates.get(ID.CERTIFICATE.ESTIMATIONS_FOR_SOFTWARE_PROJECTS);
          certificate.setTitle("Estimations for Software Projects + Effort-driven Scheduling");
          certificate = certificates.get(ID.CERTIFICATE.SOFTWARE_REQUIREMENTS_DEVELOPMENT);
          certificate.setTitle("Software Requirements Development and Management");
  
          Project project;
          project = projects.get(ID.PROJECT.TS_COMPONENTS);
          project.setDescription("TS-Components is a special software for the integration of a standalone text processor (analogue of Microsoft Word with extended functionality for programming) and specialized web-based DMS for courts, prosecutors, state registries");
          project.setResponsibilities("Requirements analysis, architecture implementation, backend and client implementation, documentation, bugfixing");
          project = projects.get(ID.PROJECT.BLACKLIST);
          project.setDescription("blacklist is an application, which can be used for objects manipulating, storing, and exporting large data sets to the Hadoop; it also generates several types of reports, based on information from Impala/Hadoop");
          project.setResponsibilities("Requirements analysis, architecture implementation, documentation, bugfixing");
          project = projects.get(ID.PROJECT.WEBSTA);
          project.setDescription("web.sta is a database-driven document management system (DMS) for prosecutors in Bavaria");
          project.setResponsibilities("Backend and client implementation, documentation, bugfixing");
          project = projects.get(ID.PROJECT.AGENTS);
          project.setDescription("Agent is a software that is to be installed in the PRIMERGY server, and provides such functions as hardware monitoring and detection/notification of any abnormality; Agent also allows the monitoring the server with SNMP protocol");
          project.setResponsibilities("Architecture implementation; team management, bugfixing");
          project = projects.get(ID.PROJECT.SVOM);
          project.setDescription("SVOM is a software which monitors and analyzes PRIMERGY servers in the network");
          project.setResponsibilities("Data gathering implementation using IPMI, SNMP, CIM; team management, bugfixing");
          project = projects.get(ID.PROJECT.SPM);
          project.setDescription("SPM is a web application installed on Central Management Station and allows discovering, monitoring and management of PRIMERGY servers");
          project.setResponsibilities("Application design, database engine implementation, SOAP web services, data gathering implementation using IPMI, SNMP, SIM, SLP; team management, documentation, bugfixing");
          project = projects.get(ID.PROJECT.VIOM);
          project.setDescription("VIOM is a software for administration of PRIMERGY Blade Servers in LAN and SAN environments thru virtualization of physical network addresses");
          project.setResponsibilities("VIOM port to Linux platform, Hibernate support, CLP implementation, rewrite from Perl to Java, performance investigations, installers; team management, documentation, bugfixing");
          project = projects.get(ID.PROJECT.ZDHCP);
          project.setDescription("Simple DHCP server without leases support which handles all requests from all interfaces, determine if the request comes from a certain interface and gives a generated IP address based on MAC address; with VLAN support");
          project.setResponsibilities("Simple DHCP server implementation");
          project = projects.get(ID.PROJECT.MYSQL_APM);
          project.setDescription("Backup APM for MySQL consolidates the backup and recovery of multiple MySQL storage engines or instances into a single job");
          project.setResponsibilities("bugfixing");
          project = projects.get(ID.PROJECT.VAULT_DR);
          project.setDescription("VaultDR is a software which creates a disaster recovery image of the operating system, applications, user settings, partition information and data");
          project.setResponsibilities("Add encryption for disaster recovery images");
          project = projects.get(ID.PROJECT.LOTUS_NOTES_APM);
          project.setDescription("Backup APM for Lotus Notes/Domino helps to provide fast online backup and recovery of Lotus Notes environments");
          project.setResponsibilities("New format of backup implementation; bugfixing");
          project = projects.get(ID.PROJECT.OPFORMA_X10_V2);
          project.setDescription("OpForma is a web-based platform that provides an ability of real-time tracking of working process thru the desktop activity monitoring");
          project.setResponsibilities("OpForma Server integration");
          project = projects.get(ID.PROJECT.OASIS_X10);
          project.setDescription("Multiplatform client for seminars management system");
          project.setResponsibilities("MacOS X Leopard support");
          project = projects.get(ID.PROJECT.CDROMTOOL);
          project.setDescription("CDROMTool is application used for searching by products, categories, attributes and key words; in addition, the CDROM Catalogs software provides product details, images and diagrams");
          project.setResponsibilities("Match encryption algorithm using analysis and brute force; bugfixing");
          project = projects.get(ID.PROJECT.OPFORMA_X10);
          project.setDescription("OpForma is a web-based platform that provides an ability of real-time tracking of working process thru the desktop activity monitoring");
          project.setResponsibilities("bugfixing");
          project = projects.get(ID.PROJECT.OASIS);
          project.setDescription("Multiplatform client for seminars management system");
          project.setResponsibilities("Create configurable client, database engine implementation; bugfixing");
  
          CvAttribute cvAttribute;
          cvAttribute = cvAttributes.get(ID.ATTRIBUTE.DOWNLOAD_PDF_URL);
          cvAttribute.value = "S.Grigoriev_CV.pdf";
          cvAttribute.i18n = "Download PDF version";
          cvAttribute = cvAttributes.get(ID.ATTRIBUTE.CEFR_URL);
          cvAttribute.value = "https://en.wikipedia.org/wiki/Common_European_Framework_of_Reference_for_Languages";
          cvAttribute.i18n = "CEFR";
      }
  
      @Override
      protected void i18nPersonalInformation() {
          personalInformation.i18n = "Personal Information";
      }
  
      @Override
      protected void i18nEmploymentHistory() {
          employmentHistory.i18n = "Employment History";
      }
  
      @Override
      protected void i18nEducation() {
          education.i18n = "Education";
      }
  
      @Override
      protected void i18nLanguages() {
          languages.i18n = "Languages";
      }
  
      @Override
      protected void i18nCertificates() {
          certificates.i18n = "Courses and Certificates";
      }
  
      @Override
      protected void i18nTechnicalSkills() {
          technicalSkills.i18n = "Technical Skills";
  
          technicalSkills.headerTechnologyI18n = "Technology";
          technicalSkills.headerExperienceI18n = "Experience (years)";
          technicalSkills.headerProficiencyI18n = "Proficiency";
  
          technicalSkills.programmingLanguagesI18n = "Programming Languages";
          technicalSkills.technologiesI18n = "Technologies";
          technicalSkills.operatingSystemsI18n = "Operating Systems";
          technicalSkills.databasesI18n = "RDBMSs";
          technicalSkills.serversI18n = "Web & Application Servers";
          technicalSkills.toolsI18n = "CASE & Project Tools";
          technicalSkills.idesI18n = "IDEs";
      }
  
      @Override
      protected void i18nProjects() {
          projects.i18n = "Projects";
      }
  
      @Override
      protected void i18nPerson(Information information) {
          super.i18nPerson(information);
  
          information.addressI18n = "Address";
          information.phoneI18n = "Phone";
          information.dateOfBirthI18n = "Date of Birth";
          information.placeOfBirthI18n = "Place of Birth";
          information.maritalStatusI18n = "Marital Status";
      }
  
      @Override
      protected void i18nCompany(Company company) {
          company.timeI18n = "Date";
          company.nameI18n = "Company";
          company.addressI18n = "Address";
          company.positionI18n = "Position";
          company.responsibilitiesI18n = "Responsibilities";
      }
  
      @Override
      protected void i18nUniversity(University university) {
          university.timeI18n = "Date";
          university.nameI18n = "Educational Institution";
          university.addressI18n = "Address";
          university.facultyI18n = "Faculty";
          university.departmentI18n = "Department";
          university.qualificationI18n = "Qualification";
      }
  
      @Override
      protected void i18nLanguage(Language language) {
      }
  
      @Override
      protected void i18nCertificate(Certificate certificate) {
          certificate.titleI18n = "Title";
          certificate.awardedI18n = "Awarded";
          certificate.timeI18n = "Date";
      }
  
      @Override
      protected void i18nTechnology(Technology technology) {
      }
  
      @Override
      protected void i18nProject(Project project) {
          project.nameI18n = "Project Name";
          project.descriptionI18n = "Project Description";
          project.positionI18n = "Position";
          project.responsibilitiesI18n = "Responsibilities";
          project.technologiesI18n = "Technologies";
          project.operatingSystemsI18n = "Operating Systems";
          project.timeI18n = "Project Duration";
      }
  
      @Override
      public String getDayMonthYearFormat() {
          return "MMM dd, yyyy";
      }
  
      @Override
      public String getMonthYearFormat() {
          return "MMM yyyy";
      }
  
      @Override
      public String getPresent() {
          return "Present";
      }
  
      @Override
      public String getProficiency(Proficiency proficiency) {
          switch (proficiency) {
              case EXCELLENT:
                  return "Excellent";
              case GOOD:
                  return "Good";
              case BASIC:
                  return "Basic";
              default:
                  return null;
          }
      }
  
      @Override
      protected String getMinskBelarus() {
          return "Minsk, Belarus";
      }
  
      @Override
      protected String getMunichGermany() {
          return "Munich, Germany";
      }
  
      @Override
      protected String getSystemArchitect() {
          return "System Architect";
      }
  
      @Override
      protected String getTeamLeader() {
          return "Team Leader";
      }
  
      @Override
      protected String getSeniorSoftwareEngineer() {
          return "Senior Software Engineer";
      }
  
      @Override
  