
Case Study: Neolux Energy
2025-04-10
Neolux Energy (hereafter referred to as “the company”) is a Spanish startup specializing in the installation of solar panels, electric vehicle chargers, and the commercialization of energy to both end customers and businesses. When we first engaged with the company, it had been collaborating with a tech consulting firm (hereafter referred to as “the contractor”) for roughly two and a half years to build and maintain its software and infrastructure.
However, the company grew dissatisfied with the contractor's performance, citing several recurring issues commonly observed in client–contractor relationships:
- Chronic Delays in Delivery: The contractor often failed to meet promised deadlines, slowing feature rollouts and hampering the company's operational needs.
- Buggy Software: From both the company's and our observations, much of the software lacked user-friendly design and contained numerous bugs, which negatively affected both employee workflows and the customer-facing experience.
- Overengineering: Despite Neolux Energy being a small organization (fewer than 10 employees and under 100 clients), it was operating infrastructure that could potentially accommodate tens of thousands of users, resulting in an overly complex system setup.
- High Infrastructure Costs: Monthly cloud and SaaS bills consistently ranged from $600 to $900, despite the software supporting fewer than five concurrent daily users on the client side and only two employees simultaneously managing data and documentation. Currently, the monthly cloud infrastructure costs are under $280, with multiple internal company applications running on-premise, saving further costs between $1000-2000 every month.
- Overprovisioning: Databases and cache services were provisioned at approximately 1,000 times the necessary storage capacity, with compute resources operating at under 5% usage at all times.
- Security Gaps: Sensitive information was frequently stored in text files. Additionally, the company used an expensive local email provider with subpar spam filtering, shared secrets in unsecured ways, and relied on numerous deprecated or unpatched libraries as software dependencies.
- Excessive Code Boilerplate: Legacy boilerplate code and outdated libraries suggested the contractor repeatedly reused old codebases, leading to complicated maintenance and limited flexibility in updating the software.
- Lack of control: The contractor kept privileged access to all infrastructure resources and code repositories, effectively maintaining the company out of the loop and with no visibility to the contractor's work.
- Dishonesty: Given lack of privileged access to the work the contractor is doing for the company, the contractor can dishonestly provide inconsistent timelines for tasks as simple as modifying a heading on the company's website. The company was often given nonsensical timelines (often weeks) for tasks which would effectively take the contractor <5 minutes.
Transition and initial migration
With fresh capital and a desire for more control, the company elected to end its engagement with the contractor and requested full ownership of all infrastructure and services. This process incurred additional fees and required the company's staff to manage the migration into accounts under the company's direct control—primarily because the contractor had never relinquished ownership of these infrastructure accounts.
Shortly thereafter, a newly hired contractor in turn outsourced some DevOps and infrastructure tasks to a third party for support in migrating existing services and data to AWS. Unfortunately, that third party withdrew from the project before completion unnanounced, effectively cutting all communications and leaving the company with an unfinished migration, higher infrastructure costs, and the same unstable, bug-prone software—now without any active support.
Crow Tech Enters the Picture
Prior to founding Crow Tech, Daniel Alonso (CEO of Crow Tech) joined Neolux Energy as an intern, ultimately leading the tech team with the company's CTO. Drawing on his technical expertise, he completed the AWS migration that had been abandoned by the previous contractor and remedied the most urgent bugs left unresolved. Some much needed functionality was restored during these fixes, some examples include a calculator for energy prices offered to customers by the company, creation of internal tools to reduce significant manual work as well as successfully recovering data lost during the migration. These efforts stabilized the environment and ensured the company could continue business operations without interruption. Daniel's measures permeated Neolux Energy's entire stack, from addressing frontend bugs, backend bugs, infrastructure bugs, providing a fast response to emergencies or bugs in production, writing documentation and establishing clear guidelines and structure for code contributions in internal repositories.
Later, Fernando Batista (Lead Frontend Consultant at Crow Tech and Daniel's colleague) was brought on as a frontend developer intern to assist two external contractors who were still contributing to the company's frontend codebase. Fernando quickly demonstrated a strong aptitude for working with the poorly maintained, outdated frontend. Fernando managed to implement all the features the team required in this old frontend as well as pioneering the development of a new frontend with the rest of the team, successfully implementing all designs provided by Andrea Mata (who also designed our website!) . As a result, the company elected to release the two external contractors, both which also regularly failed to complete their assigned tasks, with Fernando capably managing all frontend responsibilities thereafter, as well as instructing the rest of the team how to understand his code contributions.
Crow Tech still provides on-demand support to Neolux Energy with infrastructure monitoring, cost management, code reviews as well as continuous maintenance of the frontend and internal applications.
Results and Impact
- Reduced Costs: By rightsizing infrastructure, self-hosting software on-premise, migrating accounts, and removing unnecessary services, the company was able to lower its monthly cloud expenditure by 46-67% (~$320-500) and save between $1000-2000 monthly assuming all the software hosted on-premise were to be hosted on the cloud.
- Improved Software Stability: Addressing legacy code issues and deprecations led to fewer production bugs and a more reliable user experience.
- Enhanced Security: Implementing best practices for secrets management, patching old libraries, and improving infrastructure security solved immediate vulnerabilities and strengthened the company's overall security posture.
- Greater Development Velocity: With a cleaner, more maintainable codebase and dedicated in-house expertise, Neolux Energy could ship new features and updates much more rapidly.
- Less manual work: Some internally implemented applications significantly reduced manual work and automated tasks, the operations team became significantly more efficient and productive.
- Ownership and Control: The company finally had full administrative control over its cloud and SaaS accounts, eliminating dependency on external parties for fundamental tasks. The Crow Tech team has privileged access, but it is not exclusive to us.
- Respect and mutual understanding: The company is satisfied with our work and entitles us with the responsibility to maintain key areas of the tech stack when required. They are in turn billed per hour with no hidden costs and a detailed justification for every hour billed if requested.
- Leveraging free open source software: The company leverages open source applications for internal use using Docker compose stacks hosted on-premises, all of which are free to use and provide the company with key tools to build interactive dashboards, handle automatic generation of documents, write documentation collaboratively, etc... Providing significant savings compared to SaaS alternatives.
Not quite ready for a consultation?
Drop us a message, and we'll respond with the information you're looking for.