Works

Panel Systems September 2015 - June 2017

Panel Sistemas is a leading technology solutions company specializing in software development, consulting, and IT services. Founded in Spain, it serves diverse industries with notable clients such as Telefónica, BBVA, Santander, Repsol, and El Corte Inglés.

Services Offered
  • Software Development: Custom software solutions.
  • Consulting: IT strategy and optimization.
  • Maintenance and Support: Ongoing application support.
  • Quality Assurance: Comprehensive software testing.
  • Digital Transformation: Transitioning businesses to digital platforms.
  • Industry Expertise
  • Finance
  • Telecommunications
  • Energy
  • Retail
  • Panel Systems
    • WebsitePanel Sistemas Website
    • Contributions

      At Panel Sistemas, I worked as a functional analyst on three projects. In addition, I performed tasks as a senior programmer in the post-decision-making phase. My responsibilities as a functional analyst included the following:

      • Analysis of non-functional requirements and decision-making on the exact implementation of the solution (Redmine)
      • Creation of sub-tasks with lower granularity to achieve objectives (Redmine)
      • Time estimation (Redmine)
      • Definition and implementation of the project structure in the specified technologies
      • Definition of unit test coverage and quality (JUnit, Google Test, Valgrind)
      • Implementation of CI/CD systems (Jenkins)
      • Utilization of SCRUM as the development methodology
      • Application of TDD and BDD in software development
      • Delivery of training sessions on TDD, BDD, Neural Networks, Clean Code, and more

      Project 1: Modernizing Maritime and Air Transport Messaging: Replacing IATA with XML/JSON

      The first of the projects I worked on involved implementing a message exchange platform for maritime and air transport. This project successfully replaced the outdated IATA standard, which was based on plain text and prone to human errors due to its reliance on the position of the text string, with a more modern, readable, and error-resistant format based on XML/JSON.

      To achieve this, I defined a parser that translated messages from the old format to either of the two modern standards through a Restful API that adhered to the Richardson Level 3 maturity model. This API not only provided an entry point for message translation but also facilitated intercommunication with other platforms worldwide and the storage of these communications to ensure the traceability of package transit globally. The project's goals required a high-availability structure and a replicated database system based on MongoDB, implemented through a cluster of servers with each shard replicated.

      Technologies
      JavaSpring SecuritySpring MVCSpring DataSpring DocumentationJPAHibernateWildfly/JBossMongoDBRabbitMQJUnitJSFPrimefacesGWTAWSPhonegapHadoopSeleniumMavenGITJenkinsRedmineIntelliJ IDEADockerAnsible
      Project Images
      Panel Systems

      Project 2: Iberdrola's Intelligent Terminal Management with Siemens

      The second project was a joint project with Siemens to create Iberdrola's intelligent terminal management infrastructure. These terminals took information about the user's electricity consumption by sending a daily report to the server using the SNMP communication protocol, unless a more detailed monitoring was desired on a specific device or set of devices, in which case reports would be generated with a level of detail that would reach consumption per minute. These data were stored in a non-relational MongoDB database, which for obvious reasons were several clusters, with load balancing and replicated shards. The information of each point was stored in the cluster by geographical proximity, as long as the server was able to assume the volume of data that included the inclusion of said node. The information of each node was kept for one year with a level of detail of consumption per minute, after the year was compacted generating the maximum, minimum and average of each day and this information was kept at this level of detail for 5 years and past That time lapse the information from each node was compacted again. The system also gave the possibility to control and listen in real time to the device through the SNMP and JNLP protocol. This structure was created using microservices in C ++ with the remote procedure call framework gRPC and was implemented in a set of servers based on Red Hat Enterprise Linux.
      Technologies
      C++Google TestValgrindcLionBoostgRPCMicroservicesJavaRabbitMQJPAHibernateApache TomcatMongoDBJUnitJSFPrimefacesHadoopMavenGITJenkinsJiraIntelliJ IDEADockerAnsibleKubernetesJNLPSNMPSpring SecuritySpring MVCSpring DataSpring DocumentationSpring IOT
      Project Images
      Panel SystemsPanel Systems

      Project 3: Monitoring and Care System for People with Disabilities or the Elderly for Securitas Direct

      The third project, executed for Securitas Direct, involved creating a comprehensive monitoring and care system for people with disabilities or the elderly. The system identified the user's status based on various sensors distributed throughout their home, including presence sensors, door opening sensors, and personal fall sensors. This data was collected to provide detailed information about the user's activities, which was not only stored and accessible for consultation but also capable of generating alarms based on the individual's typical behavior patterns. The system analyzed these patterns and alerted if any sudden changes were detected, with customizable alarm settings.

      Additionally, the application included a mobile component developed as a hybrid application. This mobile version utilized sensors to identify falls, track the GPS position of the individual, and more.

      Technologies
      C++Google TestValgrindcLionBoostgRPCMicroservicesJavaAWSSpring SecuritySpring MVCSpring DataSpring DocumentationSpring IoCSpring BatchRabbitMQJPAHibernateApache TomcatOracle DBJUnitIonicTypescriptHadoopSeleniumJasmineMavenGITJenkinsJiraConfluenceIntelliJ IDEADockerAnsibleKubernetes