We continue the series of interviews with CodeRiders' software developers. This time we interviewed one of our Senior Software Developers Babken Darbinyan. He will speak about:
- SQL domain-specific language
- The advantages and disadvantages of SQL
- Difference between SQL and NoSQL
- Share his personal story
Babken has passed a long journey with CodeRiders. As many of our followers know, our software outsourcing company was initially established as a software development school in 2013. In just a year the school gave more than 800 alumni and Babken was among the 15 alumni that formed CodeRiders Software Development House back in 2014. Ever since Babken has become an important team player for CodeRiders and has been with us predisposing for new challenges and the outstanding growth of our company.
- Hi Babken. Nice to have the opportunity to speak with you. To start, please tell our readers what is the primary usage of SQL, its importance, and your main tasks as an SQL developer at CodeRiders Software Development House?
- Thanks for the interview invite. SQL (Structured Query Language) is a domain-specific programming language and works with databases. Despite the type of software you use – whether it is e-commerce, multimedia, financial, real estate, HR, e-learning, or HealthTech - you need to use, store and manage data, and that is where SQL comes to help. It is like the communicator of databases and the standard language for relational database management systems. We use SQL statements to update data on a database or retrieve data from a database. It is of critical importance as SQL is everywhere. Almost all of the huge enterprises use SQL, such as Netflix, Uber, Instagram, Airbnb, Quora, Twitter. Due to its huge impact on database systems, it is here to stay for sure and is constantly included in the charts of top programming languages for now and for the future.
As an addition to Babken’s answer, let’s state that according to the StackOverflow survey, SQL is the 3rd most popular language in the IT world.
- Thanks for the in-detail information. Now, will you please speak about the advantages and disadvantages of SQL?
- SQL is a user-friendly and domain-specific language. You use SQL to access, manipulate, and communicate with databases. The most important SQL functions include:
- Retrieve of data from the database
- Creation of new databases
- Manipulation of data and databases (insertion, deletion, update)
- Data testing
SQL has a number of advantages that make my everyday work with this language fast, convenient, and more practical, such as:
- Faster and more efficient data retrieval process. Functions like insertion, deletion, and data manipulation are done in almost no time
- A large number of table rows
- Large numbers of transactions in a single query
- SQL is portable, which means it can be used in programs in PCs, servers, laptops, various operating systems, and can be embedded with other applications as per need or requirement
- SQL is an interactive language, which means it is easy to learn and understand
Like any other technology, SQL has some drawbacks as well. The positive thing here is that they do not bother my work efficiency. Just to be fair with the ratio of the advantages and disadvantages let me introduce you to the disadvantages of SQL as well
- The data structure is predefined and it is less flexible for further changes
- It is vertically scalable which means there is no chance of adding more machines to the pool of resources
- Sometimes we have partial control over the database due to hidden business rules
Subscribe to Newsletters
- Are there any alternatives to SQL? If yes, which are they?
- I would say the most well-known and widely used alternative to SQL is NoSQL. Sometimes developers prefer NoSQL over SQL simply as these two replenish each other. I mean you can use NoSQL to eliminate the above-mentioned disadvantages of SQL and vice versa. To be more precise we can show the main differences, the advantages and disadvantages of SQL and NoSQL via a table.
Some examples of NoSQL databases are MongoDB, Apache, CouchDB, Redis)
- Enumerate some things that you like the most in SQL and that motivate you to work with this language.
- My favorite thing about SQL is that there are no boring, mechanical solutions to problems while working on the SQL development process. Every time, I should come up with new solutions that require constant thinking and analyzing. I like challenges. Not only do they enhance my skills, but they also give me more understanding of applications I work with on daily basis. Developing SQL is not simply dealing with the company data in relational databases; it is rather everything from cloud storage to e-learning, e-commerce applications, and social media accounts.
- Tell us about the biggest challenge, you faced during your experience with SQL?
- Usually, when it comes to developing reports, you already have calculation logic that you need to implement in your code. In my previous project, I faced the situation where instead of logic description we had previously stored MySQL procedure. We had to investigate and match it with a new database and new code. It was a challenge for me, but as I mentioned I like challenges and am proud to overcome them successfully.
- Each profession and work require specific skills. In your opinion, which features should a perfect SQL developer have?
- Well, SQL developers are in high demand for sure because companies are interested in implementing their digital transformation strategies and becoming data-driven organizations. I believe a good SQL developer should first be comfortable with doing the following tasks, and secondly enjoy the process of completing them:
- Design database tables and structures
- Create views, functions, and stored procedures
- Create database triggers for automation
- Maintain data quality and security
- Write optimized quarries for integrations with other applications
SQL developers should certainly have some more skills in another programming languages. For example, if you work on applications that are written with C# or C++, it would be better if you know these languages as well. On the other hand, if you work with MySQL, you should certainly have experience and knowledge in PHP, or at least some familiarity with the .NET framework will be useful.
I think this information will be especially helpful for those who are in search of experienced remote SQL developers. Some other soft skills, that usually clients love to see in their employees include:
- Good communication skills and an easy-going person, as this role requires heavy co-operation with other team members in the IT department - starting from application developers to network engineers and cloud service providers.
- SQL developers also work with employees from other departments such as digital marketing, operations, business development as their work is also connected with digital transformation and the advent of data analytics. So the ability to understand and patiently co-operate with employees from other departments to reach the goals is also crucial.
To continue Babken’s point, today SQL developers’ salaries are quite high. For example, the current midpoint salary for these professionals drops in between $118.000-$150.000 in the USA. The demand for SQL developers is growing year by year. Thus it is not a surprise that many companies prefer to hire offshore software development companies. We have an interesting article about the top reasons to outsource your software development needs to Armenia. Contact our business development team for more in-detail discussions about your needs.
- As a CodeRiders developer, you have worked with a number of international clients. Do you have an ideal co-operation model for you between clients and software outsourcing companies?
- It is very important for me to understand the clients’ expectations from the project. So, before starting the actual development process, I make sure I clarify this with my client. An ideal co-operation model depends on the type of client I work with. For example, if a client is a non-technical person and wants to have control over the whole development process, I make sure I explain what I am doing and why. I will do this with constant reports and calls if necessary.
Sometimes non-technical clients give complex tasks and put tight deadlines. If you don’t explain why this task needs more time and the other one less, there will be a misunderstanding for sure. I also had clients that didn’t require much control over the development process, moreover, they preferred to see the final solution with minimum bugs. Here, I concentrate only on the code and don’t hold constant communication and represent reports during important stages of the software development lifecycle.
We have a nice article about tips on effective software vendor management. If you are seeking the most convenient software vendor management model for you, you can check these useful tips.
Image source: https://itel.am/am/news/12931
- If you were to introduce team CodeRiders and our software outsourcing company, which would be the first thing that would come to your mind?
- Team atmosphere for sure. Although our team consists of smaller teams or individuals working on separate projects when one of our developers faces an issue it becomes a challenge for the whole team. Everyone is ready to leave his or her project to help a colleague find a solution for the challenge. So, teamwork is on another level at CodeRiders. This is a fantastic advantage both for the team members of our software outsourcing company and for our clients.
In the first case, software developers feel supported which ultimately brings faster and high-quality results. On the other hand, clients get superb code with minimum bugs. So, if I were to introduce our company to a potential client, I would say that our software outsourcing firm has excellent team spirit, which highly impacts our job quality and communication skills.
Subscribe to Newsletters
- You worked on a number of projects with SQL at CodeRiders. Which are your most favorite ones?
- There are so many marvelous projects that leveled up my skills and experience as a senior developer and brought good, satisfied clients, that later became company friends. However, I will mention my latest one. I have worked on a Wealth Management System for Binary City, which is based in Namibia, Africa.
Binary City is an independent technology solutions provider in Namibia and has an ongoing contract with one of the largest wealth management companies in the country. They negotiated with their client on a large project of an existing financial system that manages wealth management transactions including transfers, withdrawals, and deposits. The goal was to add further complex solutions and enhance the existing system. As part of the agreement with the end client, they signed a subcontract with CodeRiders and hired us to work on the enhancements of these existing systems. IÂ was included in the project as a full-stack senior developer together with our team lead.Â During the 12 months of our co-operation, I used technologies like PHP, OOP, MySQL, phinx migrations, and jQuery, and worked on functionalities like:
- Create transaction
- Transfer balance to another account
- Various file type generation (XML, CSV, TXT, etc) for sending requests to banks
- Various types of bank response parsing reports generation (web view, PDF generation, XLSX generation)
- Which technologies are you interested in learning for the future?
- For me, it is always an interesting challenge to learn a new technology, no matter which technology it is. Currently, I have a highly technical role as I incorporate the main aspects of programming, software engineering, data architecture, and management. I analyze our clients’ data management, security, and design tools that support data access and hold information security. Thus, I mostly prefer back-end technologies and back-end development in general, as it is the backbone of every website, web, or mobile application. The back-end development performs all tasks required to make a website function. Any problems with the backend code can lead to frequent website crashes, slow site speed, and more. In the meantime, even small vulnerabilities in the backend code render the website susceptible to targeted ransomware attacks and protection. I like solving such problems.
- What makes you stay with CodeRiders?
- The atmosphere in the team. I spend most of my life with the people I work with, so I need to surround myself with people who understand me and share my perspectives. At CodeRiders, we put stress on effective communication and enthusiasm in the job, and as experience shows, this brings awesome results.
CodeRiders will address your web and mobile development challenges by creating custom software, helping with outsourcing services, or just consulting on your software development requirements.