06.07.2021
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
- 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.
SQL |
NoSQL |
|
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:
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:
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.
- 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:
- 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.
Subscribe to Newsletters
Keep up with the most trending tech news articles. We promise not to disturb you with spammy messages. You will receive only quality emails.
Follow us
Wheather you need e-Commerce, CRM, BI, Integrations, Big Data or Real time dashboard solutions - CodeRiders is here to analyze your needs and come up with a comprehensive software solution!
CodeRiders professionals will solve your problems with web and mobile development, in building custom software, outsourcing software services, or just consulting your development needs.