After many years of managing and leading teams, I’ve split my perspectives into three areas that allow me to excel and improve in my role. Each one of the areas requires different skills and mindsets. The first perspective relates to the team. The second one relates to outside the team, while the third one relates to your superiors. In this post, I want to share how I think these perspectives can help a Senior Engineer, Team Lead, or Engineering Manager grow and become successful.

Image for post
Image for post

For the first perspective — your team, the experience is the foundation on which you must build, and one important brick on top of this foundation is people skills. You can easily get more technical skills and knowledge, but that won’t help you much without knowing how to work with people. …

PHP 8 just received a major new update and loads of new features were brought to this notorious programming language. In recent years, PHP has received major updates that considerably improved its performance and emphasized the use of OOP. Nonetheless, it looks like PHP is still not letting go of dubious practices. There are many, many nice features in the new version, such as the JIT compiler — which improves performance, constructor property promotion or structured metadata. Still, some of these new features promote bad practices. Below are five examples of such bad practices and how to avoid them.

Image for post
Image for post

Null safe operator

This operator is going to save a lot of code lines in applications that have heavy business logic. And it’s straightforward to understand: if something in a chained call is null, then evaluate everything to null. This is also a way to short circuit the whole call. It saves mental effort, lines of code, and prevents expensive calls. It’s also present in other programming languages (javascript and C# have it with short-circuiting). So when does this operator get bad? …

More than a year ago, I stopped working with OKRs at both professional and personal levels. I did it because I changed companies at the professional level and because too many changes happened at the personal level. To sum it up: the pandemic started, I went back to my home country and started remote work.

One year later, I want to go back to the practice of OKRs and want to share my observations and the reasons behind this decision.

Image for post
Image for post

The most important thing that I’m missing is working with results-oriented people. Many times when picking up projects or work that requires collaboration, I find myself in the middle of debates regarding the “how” with little or no focus on the “why” or the “what”. This happens especially when working with creative people who have hundreds of ideas about how something can be achieved. Don’t get me wrong, I don’t have anything against being creative, and I like brainstorming, exploring different perspectives and ways of doing things. But too many ideas and the focus drifts to anything except the objective. That’s why, when focusing on a project or even a task, it’s essential to keep in mind the desired outcome and visualize the results of implementing that project. This practice keeps the focus on the “what” and “why”; what you will achieve and why you are doing it. For example, after I participated in the OKR Forum one year ago, it helped me get insights about my future objectives and what results I wanted to achieve because my peers challenged me to think that way. …

When I started my career as a software engineer, I was young and inexperienced. I was not sure what I needed to learn, how to do my job, and I was missing information that could help me. I didn’t have a mentor or a coach, nor did I have senior engineers that could guide me easily; they were very good at their job, but they couldn’t explain why. I always wished there was a guideline or a rulebook that I could follow so I could improve myself and my work. I searched the internet for articles and books with opinions and experiences from other engineers. It helped, but it didn’t make a big difference. Now, after many years of developing software, mentoring others, and coaching teams, I want to say that there is a simple principle that can drive a software engineer’s career when it’s continuously applied. It’s one of those things that can propel any engineer on an upward spiral and generate compound interest over time. It’s the simple principle of automation. …

I started working with PHP many years ago. I was 15 years old, and I didn’t have any formal education or knowledge about programming or engineering. I was just curious about it. Initially, I used it to send emails with the help of mail() function, and then I started to work with forms and slowly learned control structures. By the time I went to university, I was familiar with basic programming and a few OOP features. By the time I finished university, I was able to work with frameworks such as CakePHP, I knew about ORM, dependency injection, and design patterns. Over the years, I worked with Symfony, starting from 1.2 to 4, but I also worked with other languages such as Ruby, JAVA, and GO. After working with GO for the past six months, I want to evaluate PHP — is it still popular or getting old? …

You’ve just joined a new team or company. Or maybe your team starts working on a fresh project. Or maybe there is a strong business need to deliver a piece of software quickly. Whatever the situation, for some hard-to-understand reason, your squad is not doing automated tests. It might be the case of simple unit tests or it might be the case for advanced automated performance tests. You’re an experienced developer and you know the value that automated tests bring, both in the short and long term. You feel frustrated that your team doesn’t show interest in your vision. You try to persuade them, point them to articles, expert opinions, corporate blogs and many more, but nothing seems to work. In this post, I want to share several approaches that can help you convince your team. …

In the past, whenever I wanted to change jobs, I used to go to LinkedIn, search for a job title and then tinker with the filters until I got reasonably relevant results to what I was looking for. Then I would go through each vacancy, read the description and check if it’s a good fit for me or not. Then I would apply. This is the traditional method of searching for a job, It worked for me multiple times and I’m sure it’s being used by the big majority of people out there, but I feel that it’s no longer easy and effective to do this. I had the opportunity to find my last job with the support of a recruitment consultant and I decided to do some research on how agencies operate in the technology sector. …

Over the years, I’ve had over 30 late-stage interviews and I’ve interviewed at least 50 people for engineering roles in my teams. In the last 2 years, 15 companies interviewed me and I received 10 offers. I changed companies 3 times and I want to say that I’m not going to interviews for a new job, but because interviews provide valuable experiences, feedback, and training. I schedule an interview every 3 months and I recommend this practice to everybody working in the technology industry, regardless if they are looking for a job or not. Let me explain why.

Image for post
Image for post

Career growth

For me, it has always been difficult to evaluate myself, how my career is going and what benefits package I should negotiate. I don’t know if the new technology that I just learned is needed on the market and how it’s paid. Contracts and salaries are confidential and the information on self-reporting platforms such as Glassdoor is not accurate. Recruitment companies publish annual reports with salaries in the industry, but those reports don’t take into account a mix of skills or proficiency levels across multiple technologies. It becomes even more difficult when comparing salaries in different cities. Going to meetups, conferences and engaging in talks with people working in the industry helps, but it’s subjective and imprecise. With all of these in mind, doing a status check on your career is at least challenging and inaccurate at most. To shed light upon your career progress, going to interviews and engaging in negotiations with other companies is the best approach. Your evaluation is done by managers, professionals that have an objective perspective compared to your current manager. If your evaluation is successful, you receive an offer and you will also know your market value, accurate and straightforward. If you are rejected most of the times you will receive feedback on your weaknesses or things you don’t know. Sometimes you might find that a certain skill is paid more, for example, many companies told me that they would pay extra for experience with cloud infrastructure tools. …

I lived in Vienna for more than a year before moving to Amsterdam 6 months ago. I’ve worked as a software engineer in both cities and I want to share how they compare and also how the tech scene looks like. Both places are amazing and living in any of them is an excellent experience. You can’t go wrong by picking one over the other. Both cities are big tourist attractions, with a high standard of income and offer great experiences.

While I was on a weekend getaway in Vienna, a friend who knew I was looking for work opportunities, suggested I search for a job there. The first ad I found on LinkedIn presented a remarkable opportunity as a software engineer, a startup with offices in the center of Vienna, with an international workplace and with great benefits for traveling. I got through the interviews and I started there in May 2018. I worked until July 2019, when I decided that the tech scene in Vienna was not for me and I moved to Amsterdam. …

The blockchain technology is disrupting industries with each passing day. It’s allowing everybody to use new payment methods, ranging from big banks to millions of people. Using asset tokenization, blockchain gives individuals access to premium sustainable infrastructure. In a different example, IBM’s Food Trust network is boosting Carrefour’s sales by creating supply chain transparency. So, what area will blockchain disrupt next? I’ll present 3 reasons why one of the answers is the SMS market.

Image for post
Image for post

Fragmented market, with no big players

The SMS market requires physical infrastructure, which GSM providers maintain in most situations. The infrastructure needed to operate SMS at an international scale spans not only the territory of each country on earth but also space. There are around 2000 interconnected operators worldwide. To provide service, operators have to work out contracts with each other. Negotiations include rates, availability, capacity, delivery times and many more. For example, an operator in New York can easily mount an antenna tower on a skyscraper and serve millions of devices. An operator in Alaska might need to place towers in distant regions for its infrastructure and it will give service to just 10,000 people. That’s why these operators might charge differently for delivering messages. Besides the operators, some businesses re-sell SMS capabilities by negotiating bulk deals. …


Dan Gurgui

Software Engineer and Technology Enthusiast

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store