Today we sat down and talked with Eugene - our back-end developer. We asked him all the important questions about his job and his main language, Python. Without further ado, let's go through the questions! Hi, Eugene! Tell a little bit about your responsibilities at Movadex. Hi! My responsibilities include backend development, database development, and application deployment. What are the key features of Python? Extensive community, fast development speed, and conciseness. Thanks to the community, developers now have the ability to do projects in any field at any level. The speed of development and conciseness of syntax make the most efficient use of development resources. Is Python our future? I don't think that Python is our future, it's just another tool that, at the moment, best suits the tasks of the company and our customers. What are its pros and cons? The main problem with Python is its sluggishness, which, in web development, is completely leveled by the fact that the main load is on the database, which is created to handle large amounts of information. What database do you prefer to use? Different projects require different approaches to storing information and it is almost always a SQL database with their reliability and rigid structure. I prefer PostgreSQL for its speed and flexibility. How often do we hold code reviews and are they important? The three main tasks of code review are: improving code quality, a unified style and learning from others. We follow the Agile methodology, which allows us to do a code review every few weeks, depending on the development cycle. What are the advantages of custom CMS? The possibilities of custom CMS are much higher than those presented on the market. It is created for a specific project with specific tasks and will always be more convenient and reliable in use and more flexible in development. What is the largest web application you have ever worked on? It was kind of a kickstarter analogue designed for a narrow audience. It included tricky logic, work with personal data of users, complex and flexible CMS. What agile means in development? Daily standups increase team coordination, because everyone knows what the other member is doing. You have clearly set goals with clear deadlines which allows for better coordination. Cooperation with the client is improved due to the convenience of making changes to the project. How to stay organized having a lot of projects and thousands lines of code? The key things in this task are proper project structure, and well written code. In this case, even large projects are easy to grasp and edits are not that inconvenient. For this reason, refactoring and code review should not be neglected. How do back end developers interact with QA? It's simple, developers make features, mark them on the board and QA checks the relevant sections, giving feedback. What makes code easily readable and what makes it unreadable? The first, and often most important, is naming. Clear and short designations allow you to immediately grasp the meaning of the written code. Also, the code should be easy to understand: the simpler the better. What makes code good? Above all, it must be easy to read. Are you learning something new every now and then in the process of coding? Yes, my job requires that I know the subject I'm working on, but I'm constantly learning new things from various spheres while being involved in client business processes. Would you say that coding is art? Undoubtedly. The variability of the result in the process of coding makes each project unique, the result can cause admiration with ingenuity and elegance. What is the hardest and easiest thing about Python? The easiest thing in Python is to write code, the syntax of the language encourages brevity and expressiveness. I haven't noticed any complicated things in it though. What’s the best piece of advice you can give to new back end engineers? Standard advice for any beginner developer: do what you like and constantly evolve. Describe your job in three words. Perfection, accuracy, utility.