Ericsson was a great opportunity in Spain to work in a great project as Senior software engineer consultant. It was in any case a short opportunity, since it was a contract for an specific project. I cannot say much about the things i did there, since i have a NDA with them, but in general terms i can tell some names of projects i worked in. Almost of them, projects that deals with teras of information.
OSS Data Gateway (ODG)
For the non related with telecommunications, an OSS (Operation support system) is a server that tracks information about the telecommunication network events continuously. Since we are talking about all the traffic done by cellphones, we can quickly understand we are talking about a lot of information.
The ODG is a java based software that collects information from different technologies referent to the network definition and puts them together in a database.
Technologies: Java, Spring MVC, MySql
Trace Processing Server (TPS)
This is a distributed and java based software that processes traces of a telecommunication network, large files with the whole information of events, like start of a communication, status of end, signal strength, etc. This software is in charge to process the main amount of data, it uses several threads, processes and servers.
The output of this software is a database that allows other software to have all the information from databases and bigdata architectures, instead of plain files.
Technologies: Java, Spring MVC, MySql, Mongo, Hadoop
This software calculates Geo-localization of each event and gives a great troubleshooting interface to the users. It also works as a client to configure TPS instances and ODG instances. It has several different challenges, like the communication with several servers, the multi threading calculations over extremely large amounts of data, and the drawing over a multi layered GIS output, depending on several kind of reports.
Technologies: C++, Java
I had to work in adding new features the TPS and ERA projects, new software integrations, and report processing optimizations, using my large knowledge in threaded and distributed processing and in algorithms optimization.
In the ODG project my job where more related with maintenance, also taking care of the performance of the processing time and adding stability as much as i could.
I did also pushed the TDD vision on the team, and help the people that is not used to it in order to adopt this great way of work.
Finally i helped also to define a manual of process of testing the tools that are tested by persons, in order to enhance the productivity of the whole team.
It was a great experience.