PYTHON AND FACTORYBOY: EMBRACING CHALLENGES AT ITIDO

Our colleague Ivaylo Bandrov, Software Engineer at ITIDO talks about how he’s overcoming challenges as Python developer

post-image

“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 pursuit of technical excellence necessitated my immersion in a broad spectrum of cutting-edge technologies. In addition to honing my proficiency in FactoryBoy, I undertook the formidable challenge of mastering a constellation of complementary tools and frameworks. The acquisition of expertise extended across diverse realms, encompassing SQL databases, Web Sockets, Docker, MQTT, CSS, HTML, JavaScript, including Node.js, and even React.js, among others. This concerted effort reflected my unwavering commitment to continually expand my skill set, fortify my seniority, and remain at the vanguard of industry trends.

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

Card image cap
February, 2024

THE RISE OF 5G AND ITS IMPACT ON SOFTWARE

Key 5G features and new use cases call for modernization of telecom software

Card image cap
January, 2024

FOSTERING ENGAGEMENT: OUR RECIPE FOR KEEPING COLLEAGUES THRIVING

Sara Stamova, Head of People Operations talks about how we foster engagement and keep our colleagues thriving.

Card image cap
January, 2024

YOUR TEAM LACKS THE NECESSARY EXPERTISE

Deyan Nikolov, Software Services Consultant talks about the fourth of six major red flags of a doomed MVP from ITIDO’s experience.