NTT DATA - Charging Station Management System
My Role:
Software Engineer (Java, Angular)
Date:
03/2021 - 06/2022
Technologies:
Java
JAX-RS/WS
Hibernate
AngularJS
Kubernetes
Kafka
Elasticsearch
GitLab CI/CD
OCPP
As a Software Engineer at NTT DATA, I contributed to the development and maintenance of a charging station management system. My responsibilities spanned both front-end (AngularJS) and back-end (Java, JAX-RS/WS) development, including implementing the OCPP protocol, building REST APIs, creating background tasks, and writing automated tests.
Key Contributions & Impact
- OCPP Protocol Implementation: Researched and implemented the Open Charge Point Protocol (OCPP) to enable communication and control between the charging stations and the central management system. This was crucial for interoperability and standardized management of the charging infrastructure.
- Front-End Development (AngularJS): Developed and maintained the user interface (UI) of the charging station management system using AngularJS. This involved creating interactive components, handling user input, and displaying real-time data from the charging stations.
- REST API Development (Java, JAX-RS/WS): Built RESTful APIs using Java and JAX-RS/WS to provide the necessary back-end functionality for the system. These APIs handled communication between the UI, the charging stations (via OCPP), and other system components.
- Back-End Development (Java): Developed background tasks and services in Java to automate various processes within the system, such as data synchronization, reporting, and system monitoring.
- Automated Testing: Wrote automation tests to ensure the reliability, performance, and stability of both the front-end and back-end components of the system. This contributed to a higher quality product and reduced the risk of regressions.
- Task Management and Collaboration: Effectively broke down large, complex tasks into smaller, manageable units. Collaborated with other team members to deliver tasks and ensure project alignment.
Challenges & Solutions
-
Learning and Implementing OCPP: The OCPP protocol was a new technology for me, requiring significant research and understanding to implement correctly. Solution: Dedicated time to thoroughly study the OCPP specification and related documentation. Collaborated with colleagues who had experience with similar protocols to accelerate the learning process. Utilized online resources and forums to troubleshoot issues and find best practices.
Lessons Learned
- Deep Understanding of OCPP: Gained in-depth knowledge of the OCPP protocol and its application in charging station management.
- Full-Stack Development Experience: Enhanced my skills in both front-end (AngularJS) and back-end (Java) development, including API design and integration.
- Importance of Automated Testing: Reinforced the value of automated testing in ensuring software quality and reducing the risk of regressions.