“You never change your life until you step out of your comfort zone; change begins at the end of your comfort zone.”
Roy T. Bennett
Starting my journey at ITIDO
Following my education in Computer Networking and Microsystems, my initial goal was to pursue a career as a Network Engineer. While working with one such cool guy, I stumbled upon Python, igniting my interest and prompting me to deep dive into this programming language.
As the saying goes “fortune favors the brave”, so when the opportunity to work with Python presented itself, I grabbed it, fully aware of the challenges that lay ahead. It was at that moment when my journey at ITIDO started with a bang.
Right after joining the company, I had the chance to be part of a very challenging and quite complex project for a Baltic scale-up. It consisted of a heavily researched custom product (360-degree camera) and multi layer SaaS platform to back it up. This integrated system was specifically designed to facilitate the creation of immersive 3D tours, floor plans, and high-quality photography for properties, meeting the ever rising needs of the industry.
My role as a back-end developer in the dynamic realm of the Django framework presented an exhilarating challenge, particularly for someone with limited experience. However, I embraced this opportunity as a catalyst for continuous learning and personal growth.
My biggest challenges with Python
My biggest challenge arose when my team was assigned a task to revamp the project’s entire test suite, using the FactoryBoy library. The old, heavy fixtures structure had to be replaced with a completely new one, using the famous Python library. As many know FactoryBoy is used for creating and managing custom and dynamic test data in Django applications. This initiative was born out of the inherent challenges associated with managing and reusing fixtures within the rapidly expanding scope of the project. Thus, more and more tests had to be written. Here we can see some of the most important advantages of the new solution over the old fixtures and the reason why that library was chosen:
- Dynamic data generation: FactoryBoy empowers us to create factories capable of generating dynamic data tailored to our tests’ requirements, thereby enhancing their efficacy and adaptability.
- Streamlined maintenance: Unlike conventional fixtures, typically stored as separate files in disparate formats (such as JSON), FactoryBoy leverages Python code to define factories. This attribute proved pivotal for our team, composed primarily of adept Python developers, as it streamlined maintenance efforts and facilitated seamless collaboration.
- Easier definition of relationships and dependencies between different objects.
- Code reusability: The factories crafted through FactoryBoy transcend the boundaries of individual tests, bestowing the invaluable advantage of code reusability across multiple test scenarios, thereby fostering efficiency and minimizing redundancy.
Doing all this was a real hurdle because few of us had used that technology before. We had to adapt but we had a secret weapon since the tool was built for Django and Django is based on Python – our best friend.
More technologies in my skillset
The assignment was concluded successfully, with the attainment of my objectives and the establishment of an optimized test environment, poised to significantly diminish management overhead and streamline operational efficiency.
Ivaylo Bandrov, Software Engineer at ITIDO
MORE FROM OUR BLOG
For Konstantin Iskrov, a kart racer and an engineer, IaC can be a “well-oiled pit stop”
Our colleague Ivaylo Bandrov, Software Engineer at ITIDO talks about how he’s overcoming challenges as Python developer