Building Solar Plant Management Software with Loredana Felecan, Senior .NET Developer
14 July 202320 June 2023 | People
Today we invite you to have 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 at Fortech, as she talks about her role, 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 you?
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 past year, we have been going to the cinema more often to enjoy movies together as a family.
Tell us a bit about yourself. What do you do at Fortech? Please describe your career journey at Fortech and your current role.
Prior to joining Fortech, 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 my current project, I work independently, taking on multiple responsibilities. I am responsible for writing code, communicating with the client through calls, emails, and messages, and creating sprints and tasks. Additionally, I provide assistance to my colleagues on other projects, particularly in API and web development. Furthermore, I contribute by conducting code reviews for the desktop side of the project.
My day-to-day responsibilities include contributing to project development, managing production releases, offering technical support, and mentoring my junior/mid-developer colleagues.
Over the past three years, I have taken on additional iGrow responsibilities as a coach for some of my colleagues, and I am currently responsible for three individuals. iGrow is an internal performance management framework within our organization that empowers colleagues to define and achieve their professional development goals. Within this program, I assist my teammates in establishing objectives and support them in their journey to accomplish those objectives. These goals are collaboratively set during one-on-one meetings, taking into account individual professional requirements and the specific contexts of the projects.
Last summer, I had the opportunity to serve as a mentor in an internship program centered around my project. This year, I contributed to the .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.
What project are you currently working on?
The main project I am working on is a software application that allows users to manage their solar plants and receive real-time status and statistical information from them through a web interface. The project is mature (14+ years), and the functionalities of the application include 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 include the implementation of licensing, which requires users to purchase a license to access their solar plant statistics. Additionally, we have integrated online support functionalities into the user interface, enabling users to conveniently request repairs, servicing, and other related services for their devices.
What’s the project’s tech stack like?
We have a mature project (14+ years). Its base technology is Asp.NET WebForms, and it uses the .NET Framework. In time, we tried to modernize what we could, so we also used SASS, Gulp, and Twitter Bootstrap.
The project is currently hosted on the client’s servers. In addition to the web component, there are several other essential elements. First, there is an API that serves as the backbone for the mobile applications. Next, we have an ASP.NET web service responsible for collecting data from solar plants. Additionally, a Windows service assists us in monitoring the servers, ensuring smooth operation. Another Windows service running on the server side handles database maintenance and performs various tasks. To facilitate job scheduling, we use Quartz.NET.
Within the web component, we rely on DevExpress for grid display, HighCharts for presenting statistics, and Google Chrome Puppeteer for downloading PDF files. The database context is based on the LINQ To SQL model, which is generated directly from the MS SQL Server database.
We are using an Agile process model, we have a two-week sprint, and we deploy the latest version of the application to the development platform at the end of the sprint. We create each sprint based on the client’s input. Every week we have a status meeting with the client, in which we clarify the issues and the priorities. Production releases are made when the client requests them.
What’s your favorite and the most challenging thing about this project?
What I enjoyed the 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 transmit data to our system, data which we must display to users. Furthermore, we must generate statistical email reports. Moreover, as is common with mature projects, we must exercise utmost caution when addressing bugs or introducing new features, especially in the components responsible for data reception and storage. It is imperative to ensure that existing functionality remains intact while implementing any changes or additions.
How is the team? What is it like to be part of your team?
We are a small team of 5 developers divided among different projects from the client. This year, a Project Manager joined our team. As a team, we always helped each other in every situation. We go to the office two days per week and also have lunch together when possible. We also attend the gym (from the Hexagon offices).
Loredana and her colleagues.
What’s next in your career journey?
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 create new ones.
What advice would you give to someone interested in joining Fortech? Why join Fortech?
Fortech is a great place to either begin or boost your career, as it presents numerous opportunities and perspectives. The company is dedicated to nurturing talent and offers a wide range of training programs that cater to both technical and soft skill development.
Fortech’s culture is one of trust and empowerment. Here I found a lot of helpful and reliable people and a greatncommunity. I am talking about developers, people from HR, or other departments. I also like that Fortech supports sports, outside sports (e.g. Moving Challenge program), and the wellbeing of its people.Fortech
What’s Your Story?
Browse the Fortech Careers section on our website and check out our opportunities. #CodeWithUS