Product

Software Engineer

About Otovo

Are you looking for an opportunity to positively impact the world while working for a rapidly growing and innovative company? Look no further!

Our mission is to make solar panels and batteries accessible to every European home by creating the easiest and most affordable way to go solar. We do this by connecting consumers who want solar panels or batteries with installer companies through our marketplace. As a result, we are revolutionizing how people think about renewable energy and helping create a more sustainable future.

Since our establishment in 2016, Otovo has rapidly scaled its marketplace beyond the Nordics and operates in thirteen European countries.

Join our team in Portugal and become part of a company that is revolutionizing the renewable energy industry. As a listed company on Oslo Stock Exchange, there's never been a better time to join our journey. Apply now to join the Otovo team and help us create a brighter future for all!


Job summary

Otovo is seeking an experienced Python/Django Developer to join our Product Insights team. As a Python developer, you will play a key role in designing, developing, and maintaining our solar and battery production timeseries database. This job requires proficiency in asynchronous task queueing, relational databases, and API integrations.

At Otovo, we strive to stay ahead of the curve by adopting AI tools that provide us with a competitive edge. In this role, you will not only work in the field of Python/Django development, but you will also be expected to use the latest AI tools and technologies to analyze data, build predictive models, and generate insights from solar production data.

Your team, the Insights team, is responsible for the data stack (including business intelligence), machine learning use cases, monitoring installations data, and development of the Otovo mobile consumer app. The team is part of Otovo's Product organization and consists of a product manager, data engineer, analysts, ML engineer, ML researcher, and an app developer. If you meet the requirements and identify with the ideal personal traits, we would be thrilled to have you on our team.


Responsibilities:

  • Design, develop, and maintain Python/Django-based database, ensuring high performance and responsiveness
  • Collaborate with cross-functional teams to gather and analyze requirements, and translate them into technical specifications and application features
  • Implement and optimize asynchronous task queueing mechanisms using Python libraries such as Celery or asyncio
  • Integrate to connect Original Equipment Manufacturer’s (OEM’s) API with our services and systems
  • Develop RESTful APIs and/or GraphQL APIs for consumption of production timeseries data in various systems like web applications
  • Create and maintain database schemas, write efficient SQL queries, and optimize database performance for relational databases (e.g., PostgreSQL, MySQL)
  • Collaborate with front-end developers to integrate server-side functionality with client-side code and UI components
  • Write clean, maintainable, and reusable code, following best practices and coding standards
  • Perform unit testing and debugging to ensure software quality and identify and fix any defects or issues
  • Stay up-to-date with industry trends, best practices, and emerging technologies related to Python, Django, async task queueing, and API integrations

    Requirements:
  • Solid experience in Python and Django web development
  • Proficiency in asynchronous task queueing using libraries such as Celery, asyncio, or similar frameworks
  • Strong understanding of relational databases and experience in writing efficient SQL queries
  • Experience working with RESTful APIs and/or GraphQL APIs, including data fetching, authentication, and error handling
  • Familiarity with front-end technologies such as HTML, CSS, and JavaScript/jQuery
  • Knowledge of version control systems (e.g., Git) and code collaboration tools (e.g., GitHub, Bitbucket)
  • Excellent problem-solving and debugging skills, with a meticulous attention to detail
  • Strong communication and teamwork skills, with the ability to collaborate effectively with cross-functional teams