How to Fix “Broken Windows” and Keep Your Code Shiny

Photo by Rafał Malinowski on Unsplash

Low-quality code is a sneaky enemy. It looks not harmful as such. Awfully written programs may comply with requirements. They just are damn hard to debug and maintain, that’s the issue.

Some dynamics make it even riskier and a possible source of other problems. To minimize such risk, Code Quality and Tech Debt need to be monitored and managed with wisdom.

Broken Windows Theory

“The broken windows theory is a criminological theory that states that visible signs of crime, anti-social behavior, and civil disorder create an urban environment that encourages further crime and disorder, including serious crimes” (source Wikipedia)

But what connects criminology…


And how it helps you more than them

Photo by Miguel Bautista on Unsplash

Several times in life we experience changing our workplace. Any time it happens, we feel like we have not enough soft skills, not enough experience, not enough recommendations. It is a moment of great fragility. Writing proper recommendation letters for your (ex-)coworkers is a good way to help others. But most of all, it has a very positive effect on yourself too.

Nowadays Recommendation Letters

Nothing bad in having a real structured letter of recommendation. Even better if you are willing to write one. I believe that nowadays we have a new form of recommendation, based on working social media. LinkedIn, the most…


And how to master it without frustration

indigo blue beetle
indigo blue beetle
Photo by James Wainscoat on Unsplash

There is one final and inevitable truth in computer science: The machine does nothing but what we ask. The straight consequence is that if there is a point of failure, then it must be us, the humans.

Being honest with ourselves is indeed a great sign of maturity and humbleness. But for a programmer, such a quality is a strong need. It is the foundation of software development. Without admitting we can be wrong, we will not be able to debug a single line of code. Ever.

Know the Tricks

A skilled gamer has a very different style from a newbie. In the…


Tips for effective communication with other tech and non-tech colleagues

Image of person adjusting their suit.
Image of person adjusting their suit.
Photo by Alvin Mahmudov on Unsplash

As a developer, I know the struggle of being unheard and feeling as if I’m just chattering in the background. Or even being ignored when meeting invitations are sent. Or when the meeting host is not hearing the tech point we want to make. But having charisma and — most of all — learning communication basics to demonstrate it, can make a solid difference in all those situations you want to be considered in but fail to be noticed.

In the following article, you can find some advice to make the difference. I will be adding a few practical examples…


5+ Tips to boost unexpected (overnight) working hours

Photo by Bailey Torres on Unsplash

Developers often work in a fast-moving environment. Sometimes only because it is our own will, sometimes due to our bad time management, other times due to the bad manager requiring us some stuff ASAP (though it was possible to prevent it!), or just because the customer really needs it on time (and l we could not foresee it), no matter what, but there is a very harsh deadline requesting us to work extra hours, even overnight. In such a case there are a few things to keep in mind to have your primary tool (your brain) working properly. Here we…


That Time I Wiped the Hard Disk…

Photo by Tim Gouw on Unsplash

Sweaty palms. Void head. Stomach cramps. “Damn… it can’t be”. You don’t build seniority in a day. We have all been juniors, and as such, we failed often, and (hopefully) learn a lot. Errors — no matter yours or mine — are the stones marking the path, the hard thing is to keep your head up and keep rocking.

1. Erased the Hard Disk

I erased the whole set of results of my MSc thesis because of a bugged script, not tested in the proper environment. I was confident I tested it, but there was a bug and it happened. Lesson learned: you need a…


How does it generate and how can you contain it

Photo by Tusik Only on Unsplash

Bugs spoil software features and make users disappointed. But there is also a counterpart, a dual opposite: Tech Debt. Correctly working awfully written code is a plague for any developer.

Birth of Tech Debt

Tech Debt is a fine name to call a petty thing. When you know that you are doing something not compliant with your standards, or that may not fully respect the requirements for corner cases, or when you know the code quality is not sufficient, but you feel you must do it anyway, that’s it: you are introducing tech debt.

There are many possible reasons to introduce tech debt in…


Become more productive through awareness

Woman reading newspaper
Woman reading newspaper
Photo by Priscilla Du Preez on Unsplash.

Being a software developer is quite a stressful job in today’s economy. After spending a few years coding in university (Ph.D. and PostDoc), as a developer and tech lead in a startup, and again as a dev in a medium-sized company, becoming a father of two children, working in a small office, a small open space, a large open space, and more… I am happy to share a little of my experience.

Here are some tips to help your productivity, to do more with less effort.

1. Be Effective

Being effective comes from deciding what requires your effort and what is not needed…


Python is easy — but it can still be tricky when you are starting out

Photo by Siora Photography on Unsplash

Python is great for mid-level and experienced programmers, and also ideal for computer engineers. But if you have just learned to program or perhaps have no academic background there may be a few tricky things with no intuitive explanation.

TL;DR: Python is a high-level interpreted language. Many lower-level gauges and knobs are hidden — by design. Not knowing what happens under the hood will lead to misunderstanding and to learning the wrong lessons.

1. Assignment

The assignment is when a variable is given a value. There are several aspects to be taken into account when analyzing assignment. …


And How This Changed my Developer Life

Photo by Alex Kotliarskyi on Unsplash

Just a common working day, code pairing with shared screen. We stumbled upon an issue and my colleague and I was searching for answers. He looked at the top right of the StackOverflow page and said “Man! I did not expect you were such a ninja!”.

Back few years. It was one day just like another. I was working for my Information Engineering Ph.D. when a colleague dropped in my office for a chat. He had just spent a period as an intern at Google and suggested a brand new framework he had seen there. …

Fabio Veronese

Software Engineer, Bioengineering MSc and Information Engineering PhD. Former researcher, observing reality and imagining future.

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