Category: Blog

Grafixoft awarded by Clutch

Clutch Recognizes Grafixoft as a Top Bulgarian Custom Software Development Company for 2021

Established in 1998, Grafixoft has more than 2 decades of experience in developing tailored software and business solutions and providing IT consulting services. We pride ourselves in our ability to consistently deliver reliable software applications for our clients all over the world. Our team of professional software engineers are dedicated to passing along our extensive experiences and values in support of our client’s success.

We measure our success in the number of years of our continuous and fruitful partnerships with our clients and employees, and so we are delighted to share yet another accomplishment with you. Just recently, Grafixoft has been recognized as one of the Top Custom Software Developers in Bulgaria for 2021!

Clutch is the leading B2B resource for companies looking to find the right service providers for their business needs. Every year, they recognize the highest-performing firms across industries and locations in their Leader Awards. Only those who display a track record of high-quality and legitimate client testimonials are qualified for this award. We are beyond grateful for this opportunity, for it truly validates our dedication to forming deep and meaningful partnerships with our clients.

Here at Grafixoft, we believe that business is personal, and it is our relationship with our clients that makes magic happen. This is why we dedicate this award to all of our clients who have supported us in this journey. We truly appreciate you taking the time and initiative to share your experiences working with us. Your insights motivate us to become the best version of ourselves every day.

Frontend – University Myths

Frontend – what is it? Why care?

According to Wikipedia: ‘Front-end web development is the practice of converting data to a graphical interface, through the use of HTML, CSS, and JavaScript, so that users can view and interact with that data.’

Remember those days when HTML, CSS, and jQuery were sufficient for most young and green front-end developers? Only a little bit of JavaScript with good jQuery knowledge, combined with some PHP basics was pretty much enough. Remember when CSS, JS, and HTML were all supposed to be in separate files? It’s all in the same file now.

Remember when HTML was just for the web? Nope, you could easily be asked to develop a desktop app with it as well. The frontend has changed dramatically in the past 6–8 years.

Web standards continuously change, every month brings something new, someone unveils a new tool that resolves all problems, and so on, and so on. Ever heard of Svelte? One year ago, nobody knew about it – today, according to the state of JS 2020 it has the highest interest of all front-end technologies, surpassing even Vue.js and React.JS – the language that was mainly created to support web browsers, now can be used even for solving hardware problems.

JavaScript renaissance – some can say. Not according to universities, at least here in Bulgaria.

University front-end myths!

Myth #1: Front-end developers are not real programmers. Everyone can become a front-end developer.

I’ve heard this a couple of times from fellow students. Most of them think that front-end development is writing only plain HTML and some CSS and a small amount of JS. Names like code monkeys come up. Others see front-end development, as the last option, if nothing else (programming related) goes well.  Things I often hear when it comes to front-end development:

– If I don’t succeed to learn C++ here at the university, I will probably become a front-end developer.

– I can always go to an academy and become a web developer.

– I don’t want to be a UI designer.

Of course, this is not true. The web is moving forward and the web that the university remembers has evolved — for the better. With technologies like React, Vue, Angular, front-end development is quite challenging and interesting.

Myth #2: There’s no computer science in frontend.

Not true. When new features are not part of the sprint developers spend most of their time fixing bugs and optimizing the existing code. Computation and memory resources are precious, given that most applications have to run on a wide range of devices. Developers often have to:

  • Carefully choose the most efficient data structures
  • Write side effect free (pure) functions
  • Think about reducing any IO that might cause the application to slow down
  • Always follow the SOLID principles and write clean code
  • Think about future code extensibility

University computer science is a great bonus, knowing it can only help. And it helps with optimizations if the application is particularly heavy and has to run on mobile phones.

Myth #3: There is s no logic in frontend – it’s only HTML and CSS.

This is coming from fellow colleagues, who study mainly C++.

Couldn’t disagree more. These days the typical frontend has huge amounts of formerly back-end functionality, that is now exported to the frontend. We have persistent storage in the form of LocalStorage, indexDB for a client-side database, service workers for hijacking API requests and servicing them right on the client, webworkers for additional computational needs, websockets for real-time event based bidirectional communication, and the list goes on.

There is more to do on the frontend than ever, and most of these things involve solving complex challenges, both from an infrastructure and programming perspective and needless to say, this is apart from the beautiful application that people will use, structured and styled in HTML and CSS respectively, that is also part of the frontend.

Myth #4: CSS is too difficult. JavaScript is a broken mess.

People usually don’t like CSS and find it hard, missing the logic of a standard programming language, error-prone, even not related to programming. None of that is true in modern browsers. We have auto prefixers, polyfills, and things that minimize the need for writing browser specific CSS. We spend less time wrestling with tools and more time solving the actual problem of designing the interface.

Then there are CSS preprocessors that add loops, variables, and control statements to vanilla CSS to make it more programming-like and easy to write and maintain. There is also this new shift in the way we write CSS in JavaScript itself and there are libraries like styled-components that assist with that.

And no, JavaScript is not broken. It’s easy to mess things up as it is a very ‘forgiving’ language. One can easily shoot himself in the foot if not careful. This is valid for all programming languages. The good thing is there are tons of libraries that assist with immutable data structures, code linting, following functional programming paradigms to enforce side-effect, free code, and so on. In my opinion, the only thing needed to master every programming language, (besides its perks) is having good code writing practices.

Final words

The problem is that front-end development is not something one can get a degree in. People can get a degree in computer science where they are taught to program in C++ or Java, with HTML, CSS, and JS being treated as second-class citizens. This can lead to some funny misunderstandings. But In the end, it will always come down to the person’s motivation.

***

Tanya Zheleva is a student at Sofia University. After a successful internship at Grafixoft, she was invited to accept the position of a software engineer. She loves physics and sports and is interested in React/Redux technologies.

New realities – VR, AR, MR

New realities – VR, AR, MR are often subject of technology articles or part of various innovative solutions. We decided to look at them in detail because frankly, they confuse us a little.

The first appearance of the term “virtual reality” is a fruit of science fiction, it comes from the short story “Pygmalion’s Spectacles” written by Stanley Weinbaum in 1935. The story describes the idea of ​​how a pair of glasses transfer a person into a fictional world by sense, smell, and taste.

85 years later, global sales of VR helmets are millions per year (about 14 million for 2019), but they are still a niche market because of their high prices and the specifics of the experience they bring.

Virtual reality (VR) is a simulated experience that can be the same or completely different from the real world. Virtual reality is often used in various entertainment applications such as video games, but it also finds a place in quite serious aspects of life such as education, medicine, military exercises, and training, as well as in transforming archaeological and cultural finds into 3D environments.

Currently, virtual reality simulation systems use helmets (multi-projection media) to recreate realistic images and sounds, and thus realistic sensations, simulating the user’s physical presence in the virtual environment. But that’s not all, a person placed in virtual reality can look around, move and interact in the virtual world.

An unpleasant effect of using simulation systems is nausea and dizziness. The body tells the brain that it is not moving, but in virtual reality the eyes see that it is moving, and the body is confused, leading to a seasickness-like reaction.

This may come to show that our body is not fully ready for this type of experience yet, but it certainly does not place a limit on science and technology, because the next level of reality is even more impressive.

AR – Augmented reality is a combination between our real environment and computer-generated objects (sound, video, graphics, etc.), which is achieved through certain software used on a phone/tablet or special glasses.

According to Azuma, it is an environment that includes virtual reality and elements of the real world. For example, a user may wear transparent glasses to see both the real world and computer-generated images projected onto a picture of the world around them. However, it is important to mention that this superimposition of content (layers) on the real world does not become part of it and they cannot interact with each other.

There are already interesting examples close to our daily lives of using AR, for example, IKEA is developing a table as part of its concept kitchen, which offers recipes based on ingredients on the table, which is a great example of the potential of AR in the real, everyday life. A combination of virtual and augmented reality is also used in the construction of space satellites, in the assembly of the satellite to show the exact place of each component and detail of the device.

And to make it even more confusing, it’s time for the next kind of reality. Mixed reality (MR) – sometimes called hybrid reality – is the merging of the real and virtual worlds to create new environments and visualizations where physical and digital objects coexist and interact in real-time.

It’s amazing, but MR connects people, objects, and places taken from the physical and digital world on one platform at the same time. Allows interaction with the help of holograms, to visualize scenes and processes with digital content as part of the real world, as the holograms respond to the movements and gestures of both the participant and signals from the outside world through gestures and voice commands for navigation. Mixed reality (MR) is the unification of the real and virtual worlds to create new environments and visualizations where physical and digital objects coexist and interact in real-time. Mixed reality does not take place exclusively in either the physical or the virtual world, but is a hybrid that allows us to touch the best of both worlds.

The market for these technologies is constantly growing, and with it, the models themselves are evolving, upgrading their functionality in all aspects.

It is exciting to live in times when we can touch this type of experience, although we may not yet be fully ready to understand and accept them.

QA army and why is important to be well prepared

QA – Where and when it all began?

The history of QA concepts probably starts with the computer invention. Some say that The Babbage machines (automatic mechanical calculators designed to tabulate polynomial functions) invented by Charles Babbage, were considered first among the mechanical computers.

More than a century later, World War II (1939 – 1945) led to greater advancements in computer technology. Electronic computers were prominently used to break the secret codes and crack secrets of war communication.

Again in 1945 engineers found a moth in Panel F, Relay #70 of the Harvard Mark II system. The computer was running a test of its multiplier and adder when the engineers noticed something was wrong. The moth was trapped, removed, and taped into the computer’s logbook with the words: “first actual case of a bug being found.”

Why is this important?

In 1996 the Ariane 5 flight 501 rocket – a project worth $8 billion dollar failed due to a software defect. Unfortunately, it was not the last time when something like this happened.

In 2003, the Northeastern and Midwestern United States and Ontario in Canada had the second most widespread blackout due to a software defect in an alarm system.

There are many examples of huge financial losses caused by software bugs in history, and they continue nowadays. In 2002, according to NIST (National Institute of Standards & Technology), the cost of software bugs to the US economy is $59.5 billion annually. But the problem is not only in the money.

In 2000 in the National Cancer Institute, Panama City a series of accidents occur when a therapy planning software miscalculates the proper dosage of radiation for patients undergoing radiation therapy. The software allows a radiation therapist to draw on a computer screen the placement of metal shields to protect healthy tissue from the radiation. But the software will only allow technicians to use four shielding blocks, and the Panamanian doctors wish to use five. Unfortunately, they discovered that they could trick the software by drawing all five blocks as a single large block with a hole in the middle. What the doctors did not realize is that the software gave different answers in this configuration depending on how the hole was drawn: draw it in one direction and the correct dose is calculated, draw in another direction and the software recommends twice the necessary exposure.

And here comes the place of the Quality assurance engineers and their responsibilities.

Software quality assurance engineer is responsible for the detection and resolution of problems, and the delivery of satisfactory outcomes. A software quality assurance person’s main responsibility is to create and enforce standards and methods to ensure the quality of the code which prevents bugs from ever occurring. Part of the job is to monitor every phase of the software development process in order to ensure that the software adheres to the standards set. Software quality assurance engineers make sure that the products work before they are released to the public. Sometimes the day is saved thanks to the quality assurance engineers.

What is QA`s personality? 

Detail-oriented, critical thinker with a creative mindset, facing the problems from a different perspective, a team player with a great analytical mind, and good communication skills. These are only part of the skills that a QA should possess and constantly improve.

QAs are the people who give the green or respectively the red light for product delivery.

A good sleep after a job well done is worthless.

The most exciting part of the job is the satisfaction you get when delivering a high quality product to the client even after facing challenges not only from a technical but from a time constraints perspective as well.

Knowing that you already discovered the issues the customers would face and furthermore these issues are already fixed gives you these positive feelings that would allow you to continue with even greater passion in the next iteration.

A good sleep after a job well done is worthless.

Nowadays when more and more businesses are digitalizing their processes in order to survive, the expertise of quality assurance engineers is more than recommended.

If you are interested in our QA services you can contact us through our contact form.

In Grafixoft we have a QA army.

Working from home and motivation

For a long period of time working from home was something not so common, some would say privilege even. Some employers were using it as a part of the company’s social benefits. A couple of days home office a month sounded very tempting in job ads but it wasn`t a common practice. This came to an end with the Covid 19 pandemic – working from home became something that we had to adjust quickly so we can adapt and continue working. For some IT companies home office was something familiar with clear existing processes and expectations, but for others was something new with quite many unknowns.

So, how we can work when 50 to 70% of the company’s employees are not in the office?

Let’s be honest – after the happy feeling that you don’t have to waste time in the traffic on your way to the office is gone, it is clear that working from home can affect quality and efficiency and can have a demotivating effect on some people. The comfort of the home atmosphere can make you less productive compared to working in the office.

That is why we have put together some tips on how to keep your productivity level high during the home office.

Make a working space.

A big part of working from home effectively involves making a space where you can feel like being in the office. It is one thing to work from the kitchen table and completely different if you have a desk with a monitor, keyboard, and all other office staff. It is important to recreate a working environment. More and more researches prove that the way you are dressed has its impact as well – if you dress office-like and don’t spend your day in your pajamas (I know, it is very comfortable) it will affect your productivity and your motivation. Try to make yourself feel like you are in the office, even though it kills the charm of the home office, it is important for the course of your working day and you’ll be able even to turn your camera on during online meetings.

Start and finish work at the usual time.

We know that sometimes there are unexpected tasks that take longer and you need to start work earlier or finish later. Sometimes we cannot control it. Maybe you have noticed that when working remote you turn on your laptop with the first sip of coffee and you turn it off after the 7 o’clock news. Lunch breaks are also very floating, usually lasting about 15-20 minutes, enough to eat, and still take the usual working position. Since you are not traveling to the office, you may decide to start earlier or continue later, but it is better to stick to your usual work schedule.

Lunch breaks.

Don’t forget that even though you are working from home it is your right to use a lunch break. Rule number one – don’t eat at your desk. If it possible use your break to go eat outside or have some time with your friends or colleagues. If you prefer not to do all the above, just a nice and relaxing lunch at home is enough. Why not even a short, invigorating siesta? You can use your lunch break to sign up for an online course or listen to a lecture. Don’t feel guilty for spending time for something different than work. This will make you more creative and more focused when you continue with your task later.

Keep in touch with your colleagues online.

One of the most difficult things working remotely is communicating with colleagues. Now it is not possible just to go to their desk to ask them something or to check the progress of today’s tasks. Just a few months ago you were coffee buddies every morning, talking about different stuff, playing football together. You were recharging each other’s batteries.  One of the best things about working in the office is now one of the worst things about working remotely. The lack of social contact in such circumstances is by no means beneficial. Luckily today’s technology world allows us to communicate with whoever we want, whenever we want, wherever we want.

When you work in an office, corporate culture and interpersonal relationships occur spontaneously in the physical space. However, when you work remotely you have to find new ways to maintain some informal office practices. The jokes, the greetings, the harmless gossips, sharing personal interests, the attention to your colleague – all these things are now happening in the digital world through communication sources that allow spontaneous and free information sharing. One such source is The Donut app for Slack. It randomly selects a colleague you haven’t heard from in a while and arranges a meeting for both of you. A big plus is that it allows you to choose the people you don’t want to be connected with (your team colleague for example with whom you talk every day, sometimes twice or three times a day to talk about work tasks).

Keep a low social network profile (Reduce social networks).

They are easy to access and are constantly tempting you to open them. But that is not the way work will be done on time. To be productive we advise you to log out from all your social network accounts and remove the shortcuts on your internet browser. If you use Chrome you can go to the “Incognito” mode. This will keep you away from your account for a while and signing in will be slightly more difficult. Your virtual socialization can wait until the end of your working day.

After reading all these super valuable tips on how to be productive when working from home, the most important thing remains – to apply them. Or at least some of them.

What is your dream job?

With the dynamic development of the technology sector and in particular the IT sector, new opportunities for professional realization have naturally raised.

Software companies are entering new markets, the demand and supply of services follow the rapid trends in various fields and businesses.

The change is natural, but it is challenging to be always 100% aligned with all the new trends and innovations, to offer the best solutions, while maintaining the high quality of services provided. And in order not to be experts in everything, in recent years several new professions have raised.

Here below we will try to explain short and simple some of the roles in our team.

Software quality assurance (QA) – In general, these detail-oriented professionals are responsible for the detection and resolution of problems, and the delivery of satisfactory outcomes. A software quality assurance person’s main responsibility is to create and enforce standards and methods to ensure the quality of the code and to prevent bugs from ever occurring.

Their work is to find problems escalate them. It`s strange because usually, people try to find a good thing in the situation, but QA tries to find the problem – this makes them quite different and difficult, but deep in their souls they are nice people.

UX/UI designer – UX and UI design are two different elements of the consumer experience. UX refers to the user experience and focuses on how people interact with the application. UI, or user interface, focuses on the look and layout. Why are they so important? Without a specialist in that field, you can have the best application with the greatest features, and absolutely useless to customers. User experience is more and more important nowadays and users are more and more demanding and sensitive in that area.

Database developer – Database developers ensure that database management systems can handle massive quantities of data. Database Developers usually work as part of a software development team, modifying and editing database queries, troubleshooting issues, and designing and developing new databases. They are well-organized as personality and love to put the things in order, and by color, and by size. Also never insist to them that excel is or can be a database – this makes them angry.

DevOps is short for Development Operations. Those guys manage the IT infrastructure as per the requirement of the supported software code. That requires knowledge in computer networks, virtualization, cloud technologies, and automation of processes. They are very patient. This is a role designed to help a company’s cross-functional product team operate as effectively as possible.

ProdOps is short for Product Operations –People in that position have responsibilities similar to DevOps, only for the environments facing the customer. That usually means that every error they make costs money. The ProdOps Engineer understands the Application Maintenances and Production Support needs and brings mature experience to the Production space. They are brave, experienced, and smart. And sometimes they smile. The ProdOps Engineer is hands-on and will be challenged to design and implement continuous improvement in the Production environment.

The missing part of the puzzle – Software Developer and Software engineer –the processor and the brain of the product development.  

A software engineer, a developer, and a coder walked into a bar. Here are the programmers – The bartender said.  

A programmer is a collective term for the entire array of jobs that requires programming languages.

Software Engineers are responsible for the system as a whole. They build the software applying engineering principles to the creation of the product. They evaluate the needs to conceptualize a software system with the requirements. They observe the entire development life cycle knowing from one side the big picture and also having a strong background in engineering and taking into consideration the specifics of the different programming languages. In the end, software engineering means using engineering concepts to develop software. They have strategic thinking, they are precise and analytical they have the knowledge and the experience, and they know how to use them.

Software developer works with the clients to figure out what they want and also understands the software engineer’s instructions and translates them into lines of code. To do this, developers need a working knowledge of the software to be able to balance what the client wants with what the software can actually provide. The developer should be fluent in a few programming languages and different technologies, as well as can read and write algorithms. They are logical and calm as persons.

As we all know the gear wheels can`t move with a missing cog. It`s the same in software product development. In Grafixoft we have more than 90 professional software engineers, QAs, and ITSM consultants – our Great team. We are great in software engineering, we can give you the best advice for your business using ITSM and we can also guarantee excellent QA services.

The winner in #GabrovoHackathon is?

Two first prizes were awarded to Komitet.bg and Kelvin Health teams! 

BGN 10 000 provided by the Municipality of Gabrovo and the Gabrovo companies “Scientia” AD, “Grafixoft” and “Stemo” ltd. won the Komitet.bg team with participants Martin Pavlov and Stoyan Berov. They developed a mobile platform that helps citizens to share and apply good practices and ideas, to discuss them publicly, and refer them to concrete institutions. Komitet.bg received support directly from Silicon Valley and the software engineer Tsvetan Tsvetanov, who was their mentor.

Innovation Starter Accelerator awarded another BGN 10 000 to Kelvin Health. This very ambitious team of Hristo Stoyanov, Georgi Kadrev, and Georgi Kostadinov reached the finals of #GabrovoHackathon with a mobile application that can scan the human body through thermal imaging and show the suspected areas of infection through different colors. “For me, their work is extremely important and relevant to the fight against COVID-19 in the current situation in the country and around the world,” said their mentor Iravan Hira, CEO of Hewlett Packard Enterprise Bulgaria.

The jury ranked second EcoCulture team https://ecoculture.bg/. The application aims not only to stimulate separate waste collection but also to enforce environmentally friendly behavior.

The third prize deserved the team “Gabrovo is the Best”. Their project in the challenge Tourism @ Gabrovo offers the mobile application Explore Gabrovo.

# Gabrovo hackathon brought together 20 organizations – businesses, media partners, cultural and educational institutes, and public authorities. With the success of the initiative, the organizers from the Municipality of Gabrovo and the Regional Information Center – Gabrovo received the assurance and trust to continue to develop the startup ecosystem in Gabrovo.

How IT Service Management can help your businesses transformation?

Today everyone is talking about digital transformation and how important it is. Digitalization is not a new topic, it has been on the table for a long time, but it is also a fact that social distancing, the home office model, and the quarantine have definitely catalyzed the need for fast changes in different areas in our lives.

Many businesses had and still face difficulties trying to adapt to the new situation, market, and business environment. It is a well-known fact that not the strongest but the most adaptive survive the crisis, so in this complicated situation as the solution to any problems appeared the digitalization. Everyone started talking about the digital transformation of businesses as a float that can help survive.

Regardless of the type of business and its scale – the solution to everything became digitalization. But did the corona crisis actually pushed us in this direction or put also a psychological brake on businesses that are not absolutely ready for this step?

A lot of questions appeared – Is there a way to improve the services and products that our business offers and thus increase our market share? How and where to start, what are the processes that can be digitized in your company, who can do this to make more painless the forthcoming months of crisis?

Probably many of these questions, at first sight, can be simply answered, but the truth is deeper. What exactly does digital transformation mean and why it is so important right now?

Who can help us understand its benefits and how to best apply what we have learned so far to move to a digital environment?

Digital transformation will look different for every business but in general, it is the integration of digital technology into all areas of a business resulting in fundamental changes to how businesses operate and how they deliver value to customers.

Beyond that, the transformation sometimes means distancing from long-standing business processes with which we are really common and start building new from scratch.

If you want to make your company processes easy, traceable, and transparent, ITSM consultants can help you reach your full potential and during all stages of the project, building requirements precisely, planning time and cost, assisting you in improving your business processes.

The key ITSM capabilities include:

ITSM Consultancy Services, implementation services including project management and full-lifecycle implementation, administration services provided either on-premise or as a remote service, Remedy custom applications development, integrations with third-party applications.

In the end, one thing is sure, each company has more or less room for digitalization, which could lead to an increase in the performance, simplification of processes and supply chains, reduction of costs and staff, improvement of the services in terms of time and quality. But if we don’t know where to start, we can trust ITSM (IT service management) consulting professionals who will help us to see the big picture and the areas of improvement. With the power of IT Service Management, you can transform your business.

If you want, you can contact us for any information regarding our ITSM services and team.

Grafixoft Awarded as Top Developer by Clutch!

Clutch, a ratings and reviews site connects service providers and buyers through data and verified research. Central to this process is client reviews. In this unique process, analysts have spoken directly with many of our clients and learned more about the services we provided.

With an overall 5.0 rating, we’ve seen strong results from Clutch’s extensive research process. We are thrilled to be recognized as a top developer in 2020.

Our client’s participation made this award possible, and we want to thank them for their time and honest feedback. Excerpts from recent reviews can be found below:

“Their attention to detail, responsiveness, and willingness to support our business are all greatly appreciated.” –CEO, Zegami

For Zegami, we conducted QA testing. We integrated with the internal development team and worked to ensure that their product was fully-functional and bug-free.

“The reason that this relationship is so strong is due to their integrity and honesty.” –Global Director for Services, FusionGBS

For FusionGBS, we provide IT consulting on a wide range of subjects.

We are grateful for everyone who has contributed to our success. We look forward to collecting more reviews and continuing to serve clients with the best services possible.