Things that kill motivation at work.

In some past jobs, my commitment was strongly damaged by a few events that happened as the company was rapidly growing.

  • I noticed silos between Dev an Ops, and I've automated the process for delivering software to Ops. But the Ops people decided to not use it.
  • We engineers were regularly asking to do something about the silos between IT department and the rest of the organization. I reported them via Slack, lot of colleagues supported my initiative but it was backfired to me by management, because some things have to stay the way they are and transparency was not a priority, even if this contradicts the company values.
  • Our team was overloaded with shit tasks. We were executing the same manual instructions every day for helping the same group of people and after a few months, we had executed hundred of such requests manually without adding any value. I automated the process by allowing this group to solve this kind of task without the need to ask our team. It was applauded by those people, my manager and my direct colleagues, but the initiative was backfired to me by top management as they had decided in the past to never automate this, and killing this initiative was an opportunity to remind us of who is in charge. The automation was retired.
  • I got a warning that the new boss was in a mood to fire people so we had to keep a low profile and stop taking any initiative. Any new initiative should be validated via our managers.
  • We had no backup of our codebase (hosted on SaaS) thus in case one administrator would accidentally click on some delete button, everything would be lost. After fixing this with automation, I was asked to test if the backup could be restored, and I tested this on a test environment. Unfortunately, access to the test environment was not restricted, and a few secrets were found in the codebase. I was blamed for that initiative.
  • We had daily stand-ups, I was requested in private to rather shut up than speaking for more than one minute.
  • During those daily stand-ups, I was requesting help for our team as we were overloaded with work for a long time and we were in despair to get new people in our team. The manager and the rest of the people didn't react, only a fresh colleague helped.
  • My colleagues and ex-manager were praising my kindness, but new management was blaming me for being rude in public. What they really mean is that I was too honest (assertive), something that was not totally aligned with the new politics.
  • We had to keep management informed with a weekly report listing our planned activity, blocking issues, decisions to be taken etc. Despite I've sent a few of those reports, I never had feedback on the decisions nor blocking issues, so it seems it was just management covering their back with this.
  • The same discussions occurred over and over again with managers, it would be very common from them to ask us to explain everything again about our current infrastructure/architecture, without them showing any progress in the understanding of the system.
  • A lot of things were promised by the manager during the Sprint retro but those would never be done.

I ended up resigning, because I don't need micro management nor to be managed by fear, and I wanted to avoid burnout.

I expect the freedom and I need to be supported when speaking of problems, acting on them, taking initiatives, help other people and get helped. And I don't need managers in my way for that, especially managers abusing their power to kill initiatives and fire people.

Managers, please let us do our work. And if you notice the organization malfunctions, please blame yourself for bad leadership, don't threaten your employees and learn how to keep your best programmers.

What bugs me with tech recruiters.

The "10x Engineer" had become a meme, but some recruiters seem unaware of this.

I was recently surprised to get a job offer for a Software Engineer 2x. I told the recruiter it's legit to also expect the rate/income to be twice the equivalent of any other Software Engineer role.

If you get asked in an interview to perform the same job as any Site Reliability Engineer at Google, isn't legit to claim the same rates as Google provides for this job level ?

My LinkedIn profile mentions the types of job opportunities I don't want to hear about, but some recruiters will try to reach out to me for such job opportunities, and justify this by "I had to try".

When words are not taken seriously, or at least when the implications of those words are not commonly understood, this creates frustration. After a few years spent on LinkedIn, it really feels like more and more recruiters don't care enough, or that hiring is broken.

After I accepted a job offer recently (not via LinkedIn) I decided it was time for me to slowly turn my back to LinkedIn and prevent any recruiter from sending me anything too easily, this way I'll stop wasting so much time, and I don't feel I'll miss so many opportunities.

Level your productivity up with your shell’s history and aliases

Days ago I came across a blog post teaching about using your shell's history more intensively to boost productivity. I wanted to reflect on my own usage, and share some of my tips and tricks.

Over the time, I created a lot of aliases useful to me, and I also reused some from the community. In the end I accumulate so much aliases that I can't remember them all 🙂

I would spare keystrokes each time I use my favorite commands if I could remember the relevant aliases that would help me boosting my productivity :-), aliases which already exist on my local profile. Disclaimer: I'm bad a remembering them, my memory is full of other useless crap like passwords and movie quotes from pop culture.

Hence, I decided to develop a function to help identifying every possible undervalued aliases, based on my shell history. This function looks for the top commands I have used lastly and it lists aliases I could use to replace my commands and thus boost my productivity.

In my dotfiles, I named this function suggest_aliases.

Why is such function useful to me ? Let me explain with a concrete example:

In the past days or weeks, I frequently used some commands like git stash or ls -latr. Of course I have aliases for those commands, for instance the git plugin for Oh My Zsh provides useful aliases for git stash.

In this situation, my tool lists all the aliases matching to the commands I've given in my example above.

Here is a demo of the result it produces:

❯ suggest_aliases 30
==========  alias recommendations  ==========
 ✔ there is an alias for ls -latr :
 ➜ ltr='ls -latr'
 ✔ there is an alias for git stash :
 ➜ gsta='git stash push'
 ➜ gstaa='git stash apply'
 ➜ gstall='git stash --all'
 ➜ gstc='git stash clear'
 ➜ gstd='git stash drop'
 ➜ gstl='git stash list'
 ➜ gstp='git stash pop'
 ➜ gsts='git stash show --text'

This utility function returns several candidate aliases based on my recent commands usage. The parameter it takes is the size of the input data that is be used by the tool. The bigger the number, the more results are returned.

On a complementary note, Oh My Zsh includes the plugin alias-finder, which makes learning new aliases easier.

Example:

$ alias-finder "git pull"
gl='git pull'
g=git

For my taste, I've a different workflow to find such aliases, which returns more results:

Example:

❯ ag "git pull"
ggpull='git pull origin "$(git_current_branch)"'
gl='git pull'
glum='git pull upstream master'
gup='git pull --rebase'
gupa='git pull --rebase --autostash'
gupav='git pull --rebase --autostash -v'
gupv='git pull --rebase -v'

where ag is an alias for

alias | grep -i

In this case it returns the aliases provided by the git plugin for Oh My Zsh because that's what I get on my system. If I had created custom aliases for git pull, it would have listed them as well.

Finally, here is a demo of all the commands used previously 😉

That's all, folks. I hope this was helpful 😉 ! I would love to know if you get similar tips & tricks, if you do please share them 🙂 .

Links:

Hello world

For this first blog post, I want to encourage you to reflect and care more about yourself, be more aware of who you really are, what you really want and love, and instead of trying to please the entire world, try to first please you.

  • Don't chase for perfection.
  • Don't try to keep up with every trendy tool at your disposal.
  • Don't try to read every recommended book or watch every new TV show.
  • Don't take all advices, critics, judgments personally nor as if they were always true.
  • Dare to say no more often, say no to a proposal, say no to a request, say no when you are unsure, in order to protect your time and focus more on what you said yes to.
  • Don't obey to all advices and best practices, blindly. Take which applies best to your situation.
  • There is no standard for a curriculum vitae, it's supposed to be an extension of yourself, not a demo of a perfect template.

Be yourself.