Software engineer, programmer or wizard

Software engineer, programmer or wizard Introduction I have been named many things (with respect to my profession) some of them were not actually correct. Should I correct people? Should I be worried about this? Naming They say that naming something creates it. Does being called a Software Engineer increases our work level? Does it give more respect profession-wise? As our discipline evolves, we have had many names from programmers, to software developers, software engineers, or even wizards! [Read More]

Code reviews or understanding the code

Code reviews or understanding the code How would you do a code review? Only by reading the code changes or do you thing you need to actually run the code, and what is more important, fully understand the modifications? A tale of two code review cultures Let’s compare the two following environments: Slow but safe team Imagine a team were reviews are done by several members. There is a focus on the detail, PRs are slow to be merged as they are improved several times before the final merge. [Read More]

Don't work more than enough

Don’t work more than enough Sometimes we push ourselves to the max. maybe because it is there are some deadlines when we are not going to be able to release the new version, maybe it is because our life outside work is not good enough or maybe because we are excited to be working in such a company/technology/team. However, our mental health is going to be damaged by overworking. The question is not how much, but when we are going to get burned out by overworking. [Read More]

Bike sheding in merge reviews

Bike sheding in merge reviews Focusing on the important things is a crucial matter. When trying to solve a problem, sometimes we subconsciously focus on the easy part, the known part, the part we know we can tackle, and forget about the other parts. The hard parts. Prelude Humans are falible, we know that we are not as rational, impartial and intelligent as we like. We are full of flaws. [Read More]

Git History in PRs

Git History in PRs Suppose you have a big feature, and you are creating a pull-request with all your changes. How do you organize the changes? Only one commit? One per sub-feature or sub-fix? How do you make that division? Or maybe you could organize the commits in a way that is helpful for reviewers… But how? This post try to show different approaches I have found during my years in the workforce. [Read More]

Open Source dependencies in software projects

Open Source dependencies in software projects Most of the foundations of current commercial software projects are open source. But what happens when an open source project becomens unmaintained? Dependencies, dependencies everywhere! Most software projects have a miriad of depedendencies. Why? Because we (as software engineers) are not going to reinvent the wheel. Having your software depend on a well-tested, maintained, and supported is a bliss. It saves you time, and work very easily: you only have to be aware of two things: [Read More]

Actual integration tests

Many times we have some piece of code that is tested but is still failing in production. How is that possible? Is that because of bad tests or we have a greater hidden issue? Protect your vital functionality with integration tests Integration tests are the best way make sure that a functionality does not degradate when adding new features. What are integration tests Integration tests are tests that check a full feature of the project. [Read More]

What is the most useful skill for software engineers?

What is the most useful skill for software engineers? Programming? Algorithms? Knowing many language or the internals of some languages? No. The best skill for a software engineer is knowing how to write well. There are some studies that establish a relationship between language skills and programming skills. It seems having strong language skills is better than being good at math when talking about developing software. I can imagine that that’s because communication is a foundation of software engineering. [Read More]

Conventions

Conventions are what build our society. Nobody, but you’ll get my point along this post. Conventions Having the same language is better than having different dialects or languages when speaking of the same thing. ## Write the code to make it obvious Every software engineer develops an unique style of coding through their career. Usually they starts coding tangled code that is extremely difficult to understand to anybody but theyself. Later you get to the point where you are unable to understand your own code, and began to wonder how is that possible. [Read More]

Job searching successfully

Pursuit new things. Be challenged. Be surrounded by people that inspires you. Job searching successfully This post is totally my personal opinion so if you don’t agree with it, don’t worry, there are multiple types of software engineers/developers and all of them are nedeed by the society. I have been looking for a job for a while, doing some interviews checking on some job postings and have successfully landed a new job. [Read More]