Building Solar Plant Management Software with Loredana Felecan, Senior .NET Developer

Today we invite you to take an in-depth look at the tech stack, challenges, and responsibilities involved in building solar plant management software through the eyes of Loredana, a Senior .NET Developer, as she talks about her role, her favorite project features, and ongoing development.

Get a glimpse of #BehindTheCode. Discover Loredana’s achievements, challenges, and insights that brought to light the importance of diversity and inclusion in the world of IT.

Hello, Loredana. Could you please share with us a few things about yourself?

I was always passionate about technology. My father bought me my first computer when I was in the 4th grade. The same year, we started studying computers in school (Paint, Notepad), and I was fascinated by how I could draw and write on it. Then I started learning how to install Windows and games. When I was in the 7th grade, I heard for the first time about Programming and Pascal.

In high school, I studied mathematics and computer science at Colegiul National George Baritiu in Cluj-Napoca. Since Pascal was already left behind by more advanced programming languages by then, our computer science teacher decided to teach us C++.

In 2012, I got my bachelor’s degree in computer science from the Babes-Bolyai University of Cluj-Napoca, and in 2013, I had my first job as a software developer.

I have always enjoyed traveling and watching movies in my spare time. However, since 2015, when I became a mother, my free time has been dedicated to taking care of my children. I have an 8-year-old boy and a 6-year-old girl. Now that they are older, we have resumed our previous habits and started traveling more frequently. All of us share a love for hot springs, so whenever an opportunity arises, we visit Oradea (Băile Felix). Furthermore, over the last few years, we have been going to the cinema more often to enjoy movies together as a family.

 

Tell us a bit about yourself. Please describe your career journey and your current role.

Prior to joining our company, I worked as a C++ developer. In 2017, I transitioned to the company and embarked on a new role as a Junior .NET Developer. I began my journey with a web project using the .NET framework, and through time and dedication, I have progressed to the Senior Software Developer position.

Throughout the years, I have also been involved in desktop projects, which meant working with both WPF and Windows Forms applications. In the past year, the client requested an API, providing me with the opportunity to work with .NET Core.

In the Solar Plant Management project, I worked independently, taking on multiple responsibilities. I was responsible for writing code, communicating with the client through calls, emails, and messages, and creating sprints and tasks. Additionally, I assisted my colleagues on other projects, particularly in API and web development. Furthermore, I contributed by conducting code reviews for the desktop side of the project.

My day-to-day responsibilities included contributing to project development, managing production releases, offering technical support, and mentoring my junior/mid-developer colleagues.

Over the past four years, I have taken on additional performance management responsibilities as a mentor for some of my colleagues, and I am currently responsible for three individuals. We worked on an internal performance management framework within our organization that allows colleagues to define and achieve their professional development goals. Within this program, I assisted my teammates in establishing objectives and supported them in their journey to accomplish those objectives. These goals are collaboratively set during one-on-one meetings, considering individual professional requirements and the specific contexts of the projects.

A couple of years ago, I had the opportunity to serve as a mentor in an internship program centered around my project. This year, I contributed to.NET pre-employment training and actively participated in the candidate selection and evaluation process.

Finally, I am also involved in the recruitment process by participating in technical interviews.

 

Tell us about one software project that you really liked working on.

One project I really liked was a software application that allowed users to manage their solar plants and receive real-time status and statistical information from them through a web interface. The project was mature (14+ years). The functionalities of the application included a login mechanism that authenticates users, different user privilege levels (administrator, service, user administrator, plant configuration, monitoring configuration), permission for authenticated users to view, add, or edit solar objects (inverters, plants, sub plants, heating plants), dashboards with live data and statistics from inverters, and multi-language support.

Over the last few years, we have introduced new features to enhance our services. These included the implementation of licensing, which required users to purchase a license to access their solar plant statistics. Additionally, we integrated online support functionalities into the user interface, enabling users to conveniently request repairs, servicing, and other related services for their devices.

 

What was the project’s tech stack like?

We had a mature project (14+ years). Its base technology was Asp.NET WebForms, and it used the .NET Framework. In time, we tried to modernize what we could, so we also used SASS, Gulp, and Twitter Bootstrap.

The project was at that time hosted on the client’s servers. In addition to the web component, there were several other essential elements. First, there was an API that served as the backbone for the mobile applications. Next, we had an ASP.NET web service responsible for collecting data from solar plants. Additionally, a Windows service assisted us in monitoring the servers, ensuring smooth operation. Another Windows service, running on the server side, handled database maintenance and performed various tasks. To facilitate job scheduling, we used Quartz.NET.

Within the web component, we relied on DevExpress for grid display, HighCharts for presenting statistics, and Google Chrome Puppeteer for downloading PDF files. The database context was based on the LINQ To SQL model, which was generated directly from the MS SQL Server database.

We were using an Agile process model; we had a two-week sprint, and we deployed the latest version of the application to the development platform at the end of the sprint. We created each sprint based on the client’s input. Every week we had a status meeting with the client in which we clarified issues and priorities. Production releases were made when the client requested them.

 

What was your favorite thing and the most challenging thing about this project?

What I enjoyed most about this project was the wide range of learning opportunities it offered me. From the start, the team emphasized the importance of delivering high-quality code, prompting me to pay meticulous attention to details. As expected with legacy projects, I had the chance to contribute to the modernization of the user interface while also actively participating in code refactoring. Through these efforts, we successfully achieved a codebase that is highly comprehensible and readable.

The most challenging aspect of this project was handling large volumes of data. Numerous devices continuously transmitted data to our system, which we had to display to users. Furthermore, we had to generate statistical email reports. Moreover, as is common with mature projects, we exercised utmost caution when addressing bugs or introducing new features, especially in the components responsible for data reception and storage. It was imperative to ensure that existing functionality remained intact while implementing any changes or additions.

 

Loredana and her colleagues.

.

How was the team? What was it like to be part of your team?

We were a small team of 5 developers divided among different projects from the client. Last year a project manager joined our team. As a team, we always helped each other in every situation. We went to the office twice weekly and had lunch together when possible. We also went to the gym (from the Hexagon offices).

 

Recently, Fortech became part of GlobalLogic. What’s next in your career journey, and what do you expect?

New technologies are emerging all the time, so I think I still have a lot to learn as a software developer. Besides this, I also focus on improving my coaching and mentoring skills to help the team and to create new ones. I feel optimistic about the integration with GlobalLogic, as it opens great opportunities for new projects and technologies as well as for career development.

  • URL copied!