Blog
While working on various projects, we gather first hand software development experience. This is where we share it with you!
👉 RSS
Company CultureCSSDjangoPythonReactJavaScriptDevOpsNext.JSReact NativeServerlessSoftware Development
On supporting open source
by Radoslav Georgiev
Jun 20, 2024As a solutions company we use open source tools, languages and frameworks every day. It is an integral part of what we do and how we do it. That’s why we are set to support open source maintainers, contribute & create open source of our own.
The Faces of HackSoft - Deian Ivanov
by Iveta Petrova
Apr 11, 2024Behind any successful company stands a motivated team. Meet Deian Ivanov - a QA Engineer with an interesting story and diverse hobbies.
The Faces of HackSoft - Dessy Ilieva
by Iveta Petrova
Mar 12, 2024Behind any successful company stands a motivated team. Let's introduce you to Dessy - one of our incredible and experienced QA engineers.
The Faces of HackSoft - Dimitar Todorov
by Iveta Petrova
Jan 15, 2024Behind any successful company stands a motivated team. This month, we would like to introduce you to Dimitar Todorov - a backend software engineer at HackSoft.
HackSoft’s Year in Review | 2023
by Iveta Petrova
Dec 21, 2023As the year comes to an end, we're excited to share our 2023 Year in Review, packed with achievements, growth, and unforgettable moments. Despite the challenges, we can say that 2023 was a good year for HackSoft! ✨
The Faces of HackSoft - Stefka Zumerova
by Iveta Petrova
Dec 12, 2023Behind any successful company stands a motivated team. Let us introduce you to Stefka - one of our incredible QA engineers.
The Faces of HackSoft - Pavel Penchev
by Iveta Petrova
Nov 9, 2023Behind any successful company stands a motivated team. This month, we would like to introduce you to Pavel - one of our backend developers.
Reintroducing HackCast
by Iveta Petrova
Oct 23, 2023We introduced HackCast back in 2018. After a bit of a pause after the end of the first season - HackCast is now back, with a plan to stay!
The Faces of HackSoft - Miroslav Krastev
by Iveta Petrova
Oct 16, 2023Behind any successful company stands a motivated team. We would like to introduce you to Miro - one of our Python and Django developers.
The Faces of HackSoft - Tanya Kokonyan
by Iveta Petrova
Aug 15, 2023Behind any successful company stands a motivated team.
Meet Tanya - one of our latest additions to the team.
Adding required two-factor authentication (2FA) to the Django admin
by Vasil Slavov
Jul 13, 2023The Django admin is a powerful tool for managing our web applications.
In this article, we will show how to add additional layer of security, by enforcing two-factor authentication (2FA) for all users, logging in to the Django admin.
Adding Google login to your existing Django and Django Rest Framework applications
by Tanya Kokonyan
Jun 13, 2023In this article, we show 2 ways of adding Google login to your existing Django & Django Rest Framework project, without relying on big 3rd party apps.
Chatting with Django’s documentation using langchain, Chroma & OpenAI APIs
by Radoslav Georgiev
Apr 19, 2023In this article, we explore how to leverage the new set of LLM & AI tools, in order to ask questions over Django's documentation.
The Faces of HackSoft - Yana Matviychuk
by Iveta Petrova
Mar 20, 2023Behind any successful company stands a motivated team. We would like to introduce you to Yana Matviychuk - the newest addition to the Marketing team.
HackSoft's 9th Birthday Giveaway
by Iveta Petrova
Feb 3, 2023In February, HackSoft celebrates its 9th Birthday. In honor of that, we are organizing a special Giveaway.
Timestamps in Django - exploring auto_now, auto_now_add and default
by Radoslav Georgiev
Jan 30, 2023In this article we explore the behavior of auto_now, auto_now_add and default, in the context of the usual created_at and updated_at timestamps, that we add to our Django models.
The Faces of HackSoft - Stilian Nikolaev
by Iveta Petrova
Jan 27, 2023Behind any successful company stands a motivated team. We would like to introduce you to Stilian Nikolaev - our youngest team member yet.
2022 was a great year for HackSoft
by Radoslav Georgiev
Dec 19, 2022As 2022 is coming to its end, it is time to sit down and reflect on the past year.
With all the craziness going on, we thought it would be a good idea to appreciate all our achievements, big or small, and just be grateful for everything that happened.
It turns out, 2022 was a great year for us.
The Faces of HackSoft - Iveta Petrova
by Teodora Georgieva
Oct 10, 2022Behind any successful company stands a motivated team. We would love to introduce you to our newest team member Iveta Petrova.
HackSoft is attending OpenFest 2022
by Iveta Petrova
Oct 7, 2022HackSoft is attending OpenFest 2022 as sponsors, with our own booth for the first time. Come and meet the team on the 15th and 16th of October at Sofia Tech Park.
Django's JSONField incrementation with F expressions
by Vasil Slavov
Sep 16, 2022Updating a QuerySet using an F expression is a common and very useful Django pattern.
In this article, we explore how to bring this pattern to a JSONField.
The Faces of HackSoft - Ruzha Bobotanova
by Teodora Georgieva
Jun 17, 2022Behind any successful company stands a motivated team. We would love to introduce you to Ruzha Bobotanova. She is one of the newest HackSoft team members who joined us in 2021.
Managing dependencies with Dependabot and GitHub Actions
by Martin Angelov
May 31, 2022All of our projects have external dependencies.
It's a good idea to keep them up-to-date.
In this article, we'll show how we do it, using dependabot and GitHub Actions.
The Faces of HackSoft - Pavel Iliev
by Antonia Yordanova
May 25, 2022Behind any successful company stands a motivated team. We would love to introduce you to Pavel Iliev.
Direct to S3 file upload with Django
by Radoslav Georgiev
Apr 12, 2022File upload tend to show up as a feature in most web apps.
In this article, we explore how to handle direct to S3 uploads with Django, where the actual file upload bypasses the Django backend.
The Faces of HackSoft - Lina Savova
by Teodora Georgieva
Mar 29, 2022Behind any successful company stands a motivated team. We would love to introduce you to Lina Savova. She is one of the newest HackSoft team members who joined us in 2021.
How we learn and share knowledge
by Antonia Yordanova
Mar 21, 2022At HackSoft, we share ideas, knowledge and insights from our work.
In this article, you'll learn the practices and traditions that help us keep our expertise sharp.
HackSoft is 8 years old!
by Radoslav Georgiev
Mar 7, 2022Today is a special day, because we are celebrating our 8th birthday🎂
We play with an infinite mindset & we are here to stay.
Cheers to many more years and success!
How we build software
by Radoslav Georgiev
Feb 14, 2022For clients, software development might look like a very exotic ritual.
That's why, we want to shine a light on the entire process & explain what's happening.
The Faces of HackSoft - Krasimira Angelova
by Krasimira Angelova
Feb 3, 2022Behind any successful company, stands a motivated team.
We would love to tell you more about it. Starting with Krasimira Angelova!
The Faces of HackSoft - Kamen Hristov
by Teodora Georgieva
Feb 3, 2022Behind any successful company stands a motivated team. We would love to introduce you to Kamen Hristov.
What is it like being part of HackSoft?
by Teodora Georgieva
Jan 26, 2022Have you ever heard of a team that feels like a second family? HackSoft is a company created by such a team. In the following article, we explain how and why we contribute to making it so.
The Faces of HackSoft - Anton Nyagolov
by Teodora Georgieva
Jan 21, 2022Behind any successful company stands a motivated team. We would love to introduce you to Anton Nyagolov. He is one of the newest HackSoft team members who joined us in 2021.
Handling timezone and DST changes with Python
by Alexandra Yovkova
Jan 20, 2022Working with dates, times, timezones and daylight saving times is never straightforward.
In this article we explore how to account for all of that, using Python.
Django Styleguide Survey
by Radoslav Georgiev
Dec 15, 2021The Django Styleguide is core to how we develop software, using Python and Django.
Now, it's time to reach outside of HackSoft and see how other people are using the Django Styleguide.
That's why we are conducting the Django Styleguide Survey.
Improve your Django tests with fakes and factories: Advanced usage
by Martin Angelov
Dec 13, 2021In this article, we do a deep-dive into Python's faker and Django's factory_boy, to show advanced usages that can improve the quality of your tests.
Building beautiful loading states with React Loading Skeleton
by Daniel Goshev
Nov 16, 2021In our work as web app developers we want to present the users with appealing loading screens while we are fetching data. In this article we'll be implementing a simple version of the "skeleton-screen" approach.
How to: Responsive iframes
by Daniel Goshev
Nov 10, 2021The iframe tag is used quite often around the web. Getting it to look good across multiple resolutions, however, might be a tricky task.
Building the HackConf 2021 Streaming Platform
by Daniel Goshev
Nov 3, 2021An overview of the process of building the streaming platform for HackConf 2021.
Django ORM Under the Hood - Iterables
by Ivaylo Donchev
Nov 1, 2021In this article, we are taking a look under the hood of Django's ORM internals, namely, Iterables.
Visual issues of React Material UI after migrating from v4 to v5
by Kamen Kotsev
Oct 27, 2021Fixing a possible issue you can hit while migrating from Material UI v4 to v5 if you are not careful
Django related fields & the caveats of implicit SQL INNER JOINs
by Ventsislav Tashev
Oct 8, 2021Dealing with implicit SQL INNER JOINs when querying related fields with the Django ORM.
Third-party sign-in in React Native - the TestFlight approval struggles
by Martin Angelov
Sep 8, 2021Submitting an app to TestFlight usually takes some unexpected time because of the approval process.
In this post, I'll walk you through the struggles we had due to a third-party sign-in.
Rhythm
by Radoslav Georgiev
Aug 16, 2021In HackSoft, we evaluate how a project is going by observing if the team is in “rhythm”.
In this post, we go into depth about that.
Google OAuth2 with Django REST Framework & React: Part 2
by Ventsislav Tashev
May 11, 2021See how to implement an end-to-end server-side Google OAuth2 flow with Django REST framework & React.
Google OAuth2 with Django REST Framework & React: Part 1
by Martin Angelov
Apr 26, 2021See how to implement an end-to-end client-side Google OAuth2 flow with Django REST framework & React.
Dealing with image CORS error in Chrome, Chromium and Edge
by Kamen Kotsev
Apr 1, 2021In some cases, we can hit a CORS error when we load images with crossOrigin="Anonymous". It usually happens in Chromium, Chrome or Edge.
Our new website.
by Ivaylo Bachvarov
Mar 19, 2021Announcing our new website. Headless ghost and Next.js. Blazing fast thanks to Incremental Static Regeneration and CDN from Vercel.
Quick and Dirty Django - Passing data to JavaScript without AJAX
by Radoslav Georgiev
Jan 25, 2021A quick & dirty approach for passing data from Django to JavaScript, without using AJAX.
The Faces of HackSoft - Teodora Georgieva
by Teodora Georgieva
Oct 13, 2020Behind any successful company, stands a motivated team. We would love to introduce you to Teodora Georgieva.
The Faces of HackSoft - Pavlin Gergov
by Teodora Georgieva
Oct 1, 2020Behind any successful company, stands a motivated team. We would love to introduce to you Pavlin Gergov.
The Faces of HackSoft - Antonia Yordanova
by Antonia Yordanova
Sep 23, 2020Behind any successful company, stands a motivated team. This week we would like to introduce you to Antonia Yordanova.
The Faces of HackSoft - Slavyana Monkova
by Slavyana Monkova
Sep 9, 2020Behind any successful company, stands a motivated team. This week we would like to introduce you to Slavyana Monkova.
Using multiple font files the right way
by Kamen Kotsev
Aug 27, 2020Multiple font files for a single font can lead to a messy css if you don't know how to use them as a single font-family definition using @font-face.
The Faces of HackSoft - Alexandra Yovkova
by Alexandra Yovkova
Aug 26, 2020Behind any successful company, stands a motivated team. We would love to introduce you to Alexandra Yovkova.
The Faces of HackSoft - Peter Yotsov
by Peter Yotsov
Aug 19, 2020Behind any successful company, stands a motivated team. We would love to introduce you to Peter Yotsov.
Optimize Django build to run faster on GitHub Actions
by Ivaylo Bachvarov
Aug 13, 2020Optimize build time for a Django project running on GitHub Actions. A couple steps for faster tests and smoother workflow.
The Faces of HackSoft - Vasil Slavov
by Vasil Slavov
Aug 10, 2020Behind any successful company, stands a motivated team. We would love to introduce you to Vasil Slavov.
The Faces of HackSoft - Kaloyan Gerginov
by Kaloyan Gerginov
Aug 5, 2020Behind any successful company, stands a motivated team. This week we would like to introduce you to Kaloyan Gerginov.
Summer internship at HackSoft
by Antonia Yordanova
Jul 28, 2020For the first time, HackSoft has provided an opportunity for 11th-grade students at Technological School "Electronic Systems" (ELSYS, a.k.a. TUES) to experience a real working environment.
The Faces of HackSoft - Bogomila Peneva
by Bogomila Peneva
Jul 28, 2020Behind any successful company, stands a motivated team. This week we would like to introduce you to Bogomila Peneva.
The Faces of HackSoft – Alexander Nadjarian
by Teodora Georgieva
Jul 21, 2020Behind any successful company, stands a motivated team. We would love to introduce you to Alexander Nadjarian.
The Faces of HackSoft - Martin Angelov
by Martin Angelov
Jul 15, 2020Behind any successful company, stands a motivated team. This week we would like to introduce you to Martin Angelov.
The Faces of HackSoft - Ivaylo Donchev
by Ivaylo Donchev
Jul 7, 2020Behind any successful company, stands a motivated team. This week we would like to introduce you to Ivaylo Donchev.
The Faces of HackSoft - Daniel Goshev
by Daniel Goshev
Jun 30, 2020Behind any successful company, stands a motivated team. This week we would like to introduce you to Daniel Goshev.
The Faces of HackSoft – Ventsislav Tashev
by Ventsislav Tashev
Jun 23, 2020Behind any successful company, stands a motivated team. This week we would like to introduce you to Ventislav Tashev.
Django filter - filter(A).filter(B) vs filter(A, B)
by Ivaylo Donchev
Apr 13, 2020In this article, we are exploring the behavior of Django ORM when it comes to filter chaining & reverse foreign key relations.
Building GraphQL queries with Python
by Ventsislav Tashev
Jan 6, 2020In this blog post, we will be focusing on building GraphQL queries with Python. I will guide you through the steps for building a complete GraphQL query, along with pagination and filtering (using Relay mechanisms).
GitHub Actions in action - Setting up Django and Postgres
by Radoslav Georgiev
Jan 6, 2020In this article, we go step by step setting up Django & Postgres on GitHub Actions.
Testing a Django third party application with pytest and tox
by Vasil Slavov
Sep 16, 2019If we have a Django application and we are ready to release it to PyPI for others to use. But we need to make sure our manual tests are actually translated into automatic ones.
Introducing an Enum choice field for Django
by Radoslav Georgiev
Jul 30, 2019We created a small Django package that introduces an EnumChoiceField – a layer on top of CharField + choices, that uses Python’s enums.
Prerender.io - Quick solution for the SEO of your SPA
by Ivaylo Bachvarov
Jul 12, 2019How to set up prerender.io on Heroku to boost the SEO for your Single Page Application (SPA). A good server-side rendering alternative.
Takeaways from ReactNext 2019
by Pavlin Gergov
Jul 1, 2019Nine people from the HackSoft team went to ReactNext – an annual React conference in Tel Aviv. The conference focuses on React and React Native which aligns perfectly with the tech stack we use in most of our projects.
How to build a product as a non-tech founder
by Radoslav Georgiev
Jun 24, 2019As a non-technical founder, it can be challenging to get your product idea built & shipped to the end users. In this article, we explore different options & explain the software development process in details.
What we learned from DjangoCon 2019?
by Radoslav Georgiev
Apr 29, 2019We love going to DjangoCon.This year was our second time. This was our second DjangoCon in a row. In this article, we share the talks that made us big impression!
London tales - helping PiLabs with dev consulting
by Radoslav Georgiev
Apr 4, 2019We went to London for a week, to help the startups from the last PiLabs cohort with dev consulting. We talked about software & product with the main goal – add value & don’t waste their time. Read more about our journey and observations from the visit.
Renaming models in Django without heavy data migrations
by Martin Angelov
Mar 20, 2019Renaming a key model in a huge Django application can be trickier than it seems. Tons of data migrations and halted feature development seem unavoidable. In this blog post, we share our alternative approach, avoiding most of the pain.
The Faces of HackSoft
by Radoslav Georgiev
Nov 12, 2018This article is going to be short in words, but plentiful in pictures. We did the so-called “corporate photoshoot”, thanks to Aleksander Kostov, and it turned out to be good. Say hi to the faces of HackSoft.
Introducing HackCast
by Radoslav Georgiev
Nov 5, 2018We decided to have an outlet, where we can talk about the everyday things that are happening at HackSoft, and share our point of view about the process of software development.
This outlet is HackCast.
HackSoft at EuroPython 2018
by Radoslav Georgiev
Aug 7, 2018HackSoft team was well represented during EuroPython 2018 in Edinburgh. Radoslav Georgiev, Martin Angelov, Ivaylo Donchev & Pavlin Gergov went to Edinburgh for the conference days of EuroPython and all gave a talk on different Python & Django-related topics.
How to create Natural numbers as objects in Scala
by Kamen Kotsev
Jun 26, 2018In this article, we explore how to create the entire infinite set of Natural numbers using only objects and the Scala programming language.
How to deal with cases mismatch between Django and React
by Martin Angelov
May 31, 2018In this article, we explore how to deal with the casing mismatch between the JavaScript world (using camel case) and the Python / Django world (using snake case) using neat mixins, in combination with Django and Django Rest Framework.
Underscores, dunders and everything nice
by Pavlin Gergov
Dec 4, 2017We’re going to talk about underscores, dunders, encapsulation, and magic methods in Python.
Split your Webpack configuration for development and production
by Martin Angelov
Nov 29, 2017In this article, we’ll explore how to split your Webpack configuration to have different settings for local development & for production deploys.
Your first Webpack
by Martin Angelov
Oct 31, 2017In this article we go step by step in setting up a webpack configuration, starting from an empty directory.
Pretty and the JS
by Pavlin Gergov
Oct 23, 2017In this article, we’ll explore how to setup automatic prettier check on your continuous integration server, so that everyone on your team will follow the same frontend styling.
Improve your Django tests with fakes and factories
by Martin Angelov
Aug 22, 2017In this article, we show how to up your Django testing game, by using fakes & factories.
Mock Everything
by Martin Angelov
Jun 30, 2017In this article we explore the python mocking library & how this can help us write better unit tests.
Handle errors from third-party apps in Celery & Django
by Martin Angelov
May 29, 2017Almost every Web application needs to use some third-party software. The problem we usually have to deal with is that third-party apps, like every other app, can return an error. The following article is going to show you how to handle those problems in a nice and neat way in Django with Celery.
Cookiecutting Django Ansible
by Ivaylo Bachvarov
May 9, 2017In this article, we are exploring how to cookie-cut a ready-to-deploy Django project, with Ansible, in 5 minutes.
Jump, a faster way to navigate
by Genadi Samokovarov
Apr 28, 2017Jump, a faster way to navigate in your files & folders - a fuzzy matching autojumper.
Integrating a "production-only" Google Analytics in Django
by Radoslav Georgiev
Apr 24, 2017In this post we are exploring how to integrate Google Analytics in a Django project in a configurable way, so we don't track page views & clicks while developing locally.
Integrating a password-protected MkDocs in Django
by Radoslav Georgiev
Mar 2, 2017In this article, we are exploring how to serve MkDocs via Django & password-protect it so only logged-in users can access the documentation.
Your development partner beyond code.