Don't let the titles of Junior, Intermediate, and Senior distract you
We are all learning no matter the experience.
After my flight lesson, the plan was to mow the lawns, hit the gym, have dinner and get into bed early.
What ended up happening was making tea, burning some pita bread (while making pita chips), and scrolling on my phone. It’s up to future Shivan to get those tasks done while Shivan-of-now tries to redeem himself by writing out this newsletter (it’s 9 p.m. right now and I’m also eating my dinner).
Just another aside, in further homage to my future self, I also got a new keyboard, ZSA’s Moonlander, which only arrived a few days ago.
Typing, I guess for most people, is one of the most important things I do. I do it for recreation as well as for income. So it’s a worthy investment.
Here is the difference in my posture with this new keyboard. Instead of my shoulders coming together with my old keyboard, I have a more natural posture thanks to the Moonlander’s split layout.
This is only one advantage of many.
If you are interested, please get in touch and I can report more on this topic. I am also getting a special chair as well, which will take about 2 months to get here.
To be honest, I haven't done much research and this could be all nonsense. Additionally, I don’t have any injuries due to repetitive stress (also known as RSIs), so this is all in an attempt to prevent future problems.
The experience of getting the Moonlander is quite unique. You fill out a questionnaire asking for specifics and you supposedly get a reply from the CEO of ZSA, Erez Zukerman.
You can even get into an email conversation with Zukerman.
My reluctance to call this keyboard ergonomic stems from my conversation with Zukerman.
My concern was that I was spending all this time and money on ergonomics just to prevent problems in the future that may not even occur. There is no immediate reward. But Zukerman assures me that ergonomics isn’t simply ergonomics. Improved ergonomics means better flow through comfort and removing awkward and repetitive behaviour. This is the immediate reward.
I won’t lie: using the Moonlander is hard at first and my productivity has taken a hit. Some of the keys are in different places to what I am used to, which involves unlearning older less efficient behaviour from previous keyboards I have used in the past. But patience and persistence will lead to rewards later on, right?
Junior, Intermediate, Senior
I want to reward your patience and persistence with the actual topic of this newsletter.
Last week we had a meet-up of programmers in Palmerston North. The topic of this talk is the differences between the job titles of Junior, Intermediate, and Senior.
There were some excellent points made during the talk. Some examples included how Junior developers aren’t expected to know a lot but are in a position to learn, while Seniors are developers who are experienced and are responsible for passing their knowledge down while also leading teams and coordinating with stakeholders. A difference between Junior and Intermediate tends to be the level of agency, where Juniors need more handholding while Intermediates tend to be more independent.
I have a take on this that might be controversial — these job titles are an illusion. Or if this is too extreme of a point of view, at least, you shouldn't get lost in this terminology — it’s not vital for your career.
I’m going to call on my limited experience in Brazilian Jiu-Jitsu (BJJ) to explain my point of view.
In BJJ, there are belts (going from less experienced to most): white, blue, purple, brown and black.
Belts are good in that they provide some evidence of experience and skill. Belts also provide practitioners with a sense of progression.
But there is also a downside to focusing on the belts too. The goal of BJJ is to get better at BJJ. Belt ranks are a proxy for this.
The side effect of belts is that you become too fixated on trying to get a better belt rank rather than actually improving.
You want to submit people to look good in front of your coach in hopes of a promotion. My friend has a great saying: if you are trying to go in the win, you have already lost — you should be going in to learn.
Remember, that it takes two years on average to progress from white belt to blue belt. Others progress faster and others slower.
Wondering why you aren’t getting promoted while all your partners are or not getting promoted in the prescribed time is a route to misery in the sport.
We can already draw parallels to a programming job — chasing the status of a better position, losing focus of a more important and fundamental goal: constant improvement.
Let’s say you do play your cards right, what happens when you do get promoted to a senior position?
Yes, you get a better paycheck and some more responsibilities, but does that stop you from learning? Does that mean you can’t learn from those who have less seniority or less experience than you?
Generally, more experience does mean you do know more, but it’s important to make sure that the learning does not stop. Help others along the way, but always have a beginner’s mindset.
I feel the same way about backend, frontend, development operations and so on. They are just limiting labels.
We are all programmers at the end of the day. We use code to solve problems. And having a generalist base that is always growing will take you very far.
How to get better?
Unfortunately, there is no cheat code. Getting better involves hard work.
I’m no expert but this is what I try and do.
The first step is focusing on my own journey. Don’t worry about being better than others or when others are better than you. Your opponent is your previous self. Day-to-day progress is often difficult to measure, so try and look back months and years into the past.
The next step is showing initiative.
Do you see problems in the codebase as a developer you want changed? Maybe, it’s a big change. Okay, what about scaling that problem down? What about from the perspective of a potential user? Create an issue on how you would improve it. Plan how you would take on that issue.
See an open issue to tackle? Go ahead and come up with an implementation and make a pull request.
Earlier when I started working, I would often wait for my team lead to assign work for me to do and then describe what I needed to do in detail. This was acceptable at the time because I was very new, but you shouldn’t be at this stage for long.
Take risks. If you are unsure if your implementation is worth pursuing or if you might be doing things wrong — it’s okay because action is better than inaction. Sometimes I would get stuck in paralysis of my analysis. I would get stuck and wait for the next standup to get the opinions of my colleagues.
Now, I go ahead with an implementation. One example involves writing end-to-end testing, instead of waiting to be told to do so.
Sometimes I would get the implementation wrong or I would introduce a bug into production. This can be embarrassing. And it can be a bit disappointing, but this just needs to be reframed into learning opportunities.
You will slowly get more comfortable with what you find uncomfortable while seeking more challenging problems.
This is continual improvement.
What impedes this is complacency — “just coasting”.
number type is a 64-bit float, while Python differentiates between integers and floats. And that this difference is causing type problems in our code. I also learnt that arithmetic is not so easy in programming (have you tried adding floats together and comparing those added floats together?).
It’s important to not make life about work but at the same time, you can’t just do the bare minimum.
I’d argue that most people do not enjoy work and just do it for the paycheck — which is another acceptable modality of life. But for me, I wouldn’t work just for the pay. Pushing oneself is important and makes life and work more enjoyable, especially when you have the choice between an easier path or a more difficult one.
Happy Fathers’ Day
It’s past midnight now, I’d like to say Happy Fathers’ Day!
I know my father reads this (I’m not sure if he would get this far!).
My father has been a great source of wisdom. He was the one who told me about showing initiative in work — don’t just do what you are told. Seek out problems as if you were the owner or customer and come up with a solution.
I hope you found this newsletter useful. Let me know what you think.
Stay focused and talk soon,
Favourites of the Week
This podcast discusses one of my biggest shames, not being able to speak my mother tongue, Tamil. What I took from this is that I know more about Tamil than a complete non-speaker. There is a lot of judgement from non-speakers and speakers that I should be able to speak Tamil despite trying to assimilate in my earlier years and only now connecting with my roots.