Image for post
Image for post
“Blind monks examining an elephant” by Hanabusa Itchō

Or why learning computer sciencey stuff matters…

It's easy to find blog posts and tweets ranting about hiring processes for Web and front-end developers that require "Computer Science knowledge". Some people just cannot see how Web development has anything to do with algorithms and data structures.

As someone with Computer Science background who happens to be working mostly with JavaScript for the last two years I'll try to prove them wrong.

Disclaimer: I am not by any means suggesting that every developer should have formal CS education. Hell no! Some of the best developers I know don't have it. …

Image for post
Image for post

When you want to perform the same action n times, there are two common ways of writing the loop:

for (int i = 0; i < n; i++) {
// do stuff


for (int i = 1; i <= n; i++) {
// do stuff

And both work, but why is the first one better? (besides the obvious fact that it matches with the iteration on zero-based array indices).

  1. Counting from zero encourages us to use asymmetric ranges to express intervals. [0, rows) instead of [1, rows] and that’s easier to use because [m, n) has n-m elements, while [m, n] has n-m+1. So, the number of elements in [0, rows) is obviously rows-0=rows but in [1, rows] it is not as obvious. …

Image for post
Image for post

Have you ever heard about the Peter Principle? Maybe not by its name, but you certainly know the concept:

The Peter Principle is a concept in management theory in which the selection of a candidate for a position is based on the candidate’s performance in his or her current role rather than on abilities relevant to the intended role. Thus, employees only stop being promoted once they can no longer perform effectively, and “managers rise to the level of their incompetence.” — Wikipedia

With the traditional career ladder proposed by most software companies, the next step in a Software Engineer career is usually to become a manager even though that’s not really his/her thing, creating frustration for the ones who take the step and a sense of stagnation for the ones who don’t want to. …

Uma reflexão sobre os desafios e motivações de um brazuca no além-mar

Há quatro anos* deixei o Brasil para me aventurar no velho mundo.
Update: Esse artigo voltou a ser muito visitado, então atualizando: "Há seis anos…"

Fui embora assim que terminei a universidade e sequer tive a experiência de ter um emprego formal como desenvolvedor no Brasil. Mas mantenho contato com vários desenvolvedores brazucas e tenho uma noção de como está o mercado de TI no país.

Estive em entrevistas de trabalho com brasileiros, mas do outro lado da mesa, como entrevistador. …


Felipe Ribeiro

Senior Software Engineer @ Netflix, previously Staff Engineer @ Spotify. Dad of two, road cyclist wannabe and citizen of the world.

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