November learning month

1 Dec 2021    

Figuring out what you have to do to stay ahead of the curve has to be intentional. Figuring out how to scale your architecture from 500 concurrent users to 2000 requires you to first understand how it has been done by the giants gone before you. One of the best ways to learn is to find out what challenges these technology giants have faced and overcome. And hopefully willing to share with the open community their learnings.


General


Website with a battery status


Interesting concept of showing the battery status of the server and showing it at the forefront of the website as part of the background


Free puzzle website


You can piece your puzzles together online. That is quite interesting! To have a UI UX that allows you to do that feels really good


Trying something new in your technical role every week


When it comes to code, learning comes with experiment. You want to learn through experimenting with new tools. To expand the learning scope, you can also experiment the process in which you do your work. In this article, it neatly share some things you can try different in your day2day coding habit to learn a new concep. For example, try to git reset every week to understand the concept of short-lived branches.


How to build your second brain as a Software Engineer?


This second brain refers to your own notes management system. One where you can collate your information for easy retrievals in the future. Think of it like a cache system, where its easier to access than to search for it on the net. This assumes that the initial search you is not easy to remember because it is either an uncommon solution or the initial searches you made did you get what you want (warrants a deeper/more specific keyword search)


Booking.com got hacked and kept silent about it


Booking.com mentioned about the legal requirement to make hacking incidents known to public. What are the thoughts regarding the ethical need to report incidents to your customers?


How do you define genius?


“ingenious: having or showing an unusual aptitude for discovering, inventing, or contriving an ingenious detective. 2 : marked by originality, resourcefulness, and cleverness in conception or execution an ingenious contraption.”


OKRs VS KPIs


  • Objectives and key results are there to help you focus on business outcomes.
  • KPIs are there to help you keep track of how your results are performing.

OKR examples


Macbook memory leaks


Apparently the M1 chip has experienced some errors the past months. Excessive SSD usage, and now memory leak from applications that aren’t that intensive on RAM.


Buy Alogrithm accurately predicts teen behaviours


Researchers then applied various algorithms to the data and found a machine-learning model that accurately predicted which adolescents went on to have suicidal thoughts and behaviors (STB) based on the data provided.
The data showed females were more likely to experience suicidal thoughts and behavior (17.7%) than males (10.8%), and that those adolescents without a father in the home were 72.6% more likely to have suicidal ideation than those that did.


This article helps to articulate the importance of family fabric to protect our wellness and mental wellbeing.


three of the top ten predictive factors for STB were tied directly to family situations: 1) being in a family where there are serious arguments, 2) being in a family that argues about the same things over and over and 3) being in a family that yells and insults each other.


Why you should repeat yourself


Writing motivations
This article hits the spot on the struggles you face as a writer - the struggles with content creation, with the way you write your initial few articles.


Its practical to share how you can overcome these obstacles. Frankly speaking, just write. Just keep writing everyday and you find your thoughts more coherent and you can think deeply about different topics


How engineering teams learned helplessness


It is not okay to have an inefficient process in the company. An inefficient process becomes a blocker for the company to be productive. Consistently review these processes, keep an open ear to feedback from the ground. If you encounter a consistent inconsistency, ask ‘why’ is the process created as such.


Technical


What is a message queue?


Message queue addresses the following issues:


  1. Removes strong dependences between services

What does this mean? Having a service to work, it does not have to be heavily reliant on other services to work for it to execute what it is intended to do.


  1. Performance

it helps to ensure that additional requests coming into your service are noted and are queued up to be served by the service while your application can proceed to do other activities.


  1. Allows your application to scale

Given a queue, you can now have multiple consumers to address your request. Think of going to a telcom shop, when you first enter, you will be given a queue number. There will be a screen to show which number is serviced by which counter at the moment.


Your customer service counters are your consumers. Each are equipped to service any requests that comes into your queue. If you want to serve more concurrent requests, increasing your number of counters (consumers) will allow you to handle requests at scale.


RabbitMQ has the following features:


  1. Delivery acknowledgement

Using the same analogy, it is your customer service counter indicating to the queue manager that he has successfully received and is currently attending to the customer’s request.


Clean code, what does it mean?


Clean code improves readability, lower cost of maintenance, gives you room for flexibility in specific usecases.


In this article, abstraction can seem to be implemented at the expense of cleanliness of code. I guess this balance is like a dance. You have to find the right balance to find the optimized trade off.


I implement clean code at the architectural level which is called clean architecture.


I’ve gotten question on why am I duplicating so much code instead of abstracting them for reuse. Considering that, you should abstract duplicated logic. But setup code should have their own room for customization across different usecases


microdiff


if you want to build the essence of a git, where you are able to compare the difference between 2 objects, you can consider this library microdiff. Self claimed optimization with benchmarks against other libraries.


Software Developer to Software Engineer


Engineers: Understand why the solution is created as such. You iterate with reason based on the business objective. No solutions are valuable if it does not solve the problem.


This new application has the coolest AI technology but you just need to organize your shopping list for your grandma. A piece of paper works fine.


The use of speedkit to improve your website speed


You probably have heard of lighthouse Test. This test is used to test the accessibility of your website. Allowing you to work on aspects of the application that can improve your website’s overall experience for your users.


Its also important not to get too caught up with the test result.


You should therefore not ask yourself the following question: “How can I fully optimize my JavaScript to achieve a Lighthouse score of 100/100?”. You have to ask yourself much more the question: “What is especially important to a user with low bandwidth or weak hardware on my site?”.
The user doesn’t need any fancy slider animations and parallax effects that can only be implemented with certain libraries. Or a softload mechanism to get to more pages in a more elegant and animated way, but which initially needs an increased amount of javascript logic. All he wants is that information is retrievable reasonably fast and he can click through the presence. Among other things, he doesn’t need full retina images, which simply take a long time to load with 3G.


Culture


How to wfh without diluting your corporate culture.


Is daily standup hurting your engineering team?


The key to Alfred Sloan’s success was a mix of centralized control by senior leaders, together with decentralized decision-making by those closest to the customers.


Is it okay to leave the company only 6 months in?


Sustainability is important. A culture of open communication is important. A culture of mutural learning is important. When an engineer raises up his frustration, take it in, understand how to ease that tension. This is especially important if you were previously the only engineer. Whatever works then will probably not work in a team, so make the necessary adjustments.


How to build a winning engineering culture


  1. Engineering culture: hype or neccessity

If you have poor performing engineers whom are not handing in tasks as expected. How will such behaviour affect the morale of the other team members? How would it also affect the final product?


Engineering culture is a set of collectively shared values and expectations of each team members that promotes teamwork and improves performance. Its an implicit code of conduct explaining what is accpetable and unacceptable behaviors in the company.


Such code of conducts apply to everyone in the organisation including management. Its vital for startups or even MNCs.


  1. Importance of building an engineering culture

key benefits * Relevant.software


  • Product innovation
    Healthy engineering culture breeds creativity and innovation. Liberates engineers to find new and better wayts to solve problems. It results in a quality product that addresses client pain points.

  • Attracts and retains the right talents
    People love to work in an environment where they feel valued and are allowed to express themselves in meaningful ways.

  • Career Development
    Engineers come into your company with their own personal goals and ambitions. Splitting up your tracks to individual contributors or managers can help to to realise their personal career goals with your company. Support and celebrate their personal successes in ways they feel appreciate.

  • Seamless processes
    Good culture encourages team autonomy and ownership of processes from design to implementation. You want to pass down authority to make decisions to the teams.


Emphasise on cross function collaboration. Spotify view their engineers and teams metaphorically as a jazz band. Each musician plays a different instruction, they all listen to each other and focus on the same song.


  • Custom Satisfaction
    Good engineering culture makes employee happy, promotes creativity and innovation.

  1. The 4 examples of good engineering culture

  • Google
    Project Oxygen to create best practices - including collaboration and strong decision-making

The top 10 are primarily soft skills and utilize more emotional intelligence than computer or systems training.


  1. they are good coaches
    Good managaers don’t necessarily solve problems on the spot. They use challenges as eachable moments to guide their teams, focus on furthering the team’s ability to solve problems.

  2. They empower teams and avoid micromanaging

  3. Create inclusive team environment

The workplace is psychologically safe.

  1. They focus on productive behaviour and results.
    Good managers are productive. They get in the trenches with their employees if necessary. They focus on results.

  2. They communicate well
    Both listens and share information. They seek to understand team members and be empathetic when appropriate. Use communication skills for transparency and to grow team’s network of information

  1. They support career development and performance
    Recognize work when its good. Provide feedback when performances are dipping as well.

  2. They know their vision and strategy
    Leader needs to have clarity. Where do you want to bring the team? The last thing you can do for your team is to cruise

  3. They have technical skills to lead the team
    As a manager, people look to you for guidance when needed. Look to you for resources if they have blockers.

  4. have collaborative skills

  5. Make firm decisions.
    Great managers are decisive, weighing decisions and consider them carefully.


Warning signs of bad engineering culture


  1. Leader Dependence
    the team is dependent on the leader for decisions. Not given sufficient freedom, engineers will have their creativity dampen. Give your team the liberty and autonomy they need to drive innovation. A good engineering culture values autonomy.

  2. Formality in communication
    Communication helps to refine ideas, improve processes and output.

  3. Engineers and leadership dichotomy.
    Managers tell engineers what to do, and how to do it. No or little interaction of collaboration on decision-making.

  4. Monotonous culture
    In such a culture, there is no diversity in the team, and this lack of diversity stifles tolerance and acceptance of different points of view.


5 steps to build a strong engineering culture


  1. Develop a mission statement
  2. Identify important values
  3. Setup mechanism
  4. Live your values

Product


Simple Product Management Tricks


Use a grid to prioritize your tasks


Time box hard to estimate work


  • Pick an arbitrary time say 1 - 2 weeks and see how far you get. by the end of the timeline, you have more knowledge about the work and then to make more informed decisions.
  • Doing timebox takes estimation from a different angle. Instead of how long will X take?, timeboxing asks questions like “What can we do in 2 weeks?”
    Timeboxing is great approach to make progress despite the huge amount of uncertainty

Write playbooks before automation
XKCD #1319: Automation


When we encounter situations where we can possibly automate, instead of coding, write a playbook instead.
Write down a set of instructions for performing the task - a recipe that is as specific as possible, if there is some sort of task task that involves code, you can include that bit of code or shell command for someone else to just copy and paste.


This helps you to move towards: consistency, repeatability, reliability - at the fraction of effort. When you find this playbook used often and reliably to get the task done, then you can consider automating this task.


How to become a peak product manager


Good PMs don’t just ship features, they do whatever it takes to deliver valuable outcome for their users, team and their company. They do whatever it takes to deliver business impact.


4 areas critial to drive business impact


  1. Product Execution (the ability to build exceptional products)
    Having the ability to work with a cross-functional team to define, build and launch well-designed stable products. Striving to execute flawlessly, they know there are already enough risk understanding customer’s needs and crafting the product strategy to execute around those needs. They cannot afford unforced errors.

  • Feature specification - APM - PM
    Spec your feature requirements. A good spec rallies the team around a goal and provides enough details for the team to execute flawlessly.

  • Product Delivery - GPM
    Turning your specs into working products. THis requirement a combination of organization skills, leadership savvy, attention to details, and willingness to adapt.


The highest performing team works quickly; knowing that speed wins. You can typically move fast you have sharp clarity on what you set out to achieve and knowing whether you have archived it or not.


You can check out this article sharing the thought process around speed in a company: here


When a decision is made is much more important than what decision is made.


A quick decision does not imply a lack of insights. Speed does not require one leader to make all the calls top-down. The art of good decision making requires you to gather input and perspective from your team, then push towards a final decision in a way that makes it clear all voices spoken were heard.


Sit on decisions made in meetings 24hours, give it time for you to figure out what kind of decision you should be making; especially so if its an important decision.


You know you’re going fast enough if there’s a low-level discomfort, people feeling stretched. But if you’re going too fast, you’ll see it on their faces, and that’s important to spot too.


Come out of meetings setting due dates on actionables. Don’t let things hang, execute sooner if possible and gather user feedback on the decision. You get an additional insight for the same amount of time when you were to wait for a perfect plan.


You know you’re going fast enough if there’s a low-level discomfort, people feeling stretched. But if you’re going too fast, you’ll see it on their faces, and that’s important to spot too.


Once you have committed to an actionable, find out what are the dependencies that need to be addressed.


When things are not moving fast enough, ask questions. Questions are your best weapon against inertia.


  • Product Quality Assurance - GPM - Director
    Poor quality product eats away at customer delight, trust and loyalty, poor quality may not drive your customers away today, but it will make them switch into a hurry when a better competitor comes into play tomorrow.

Focusing on quality before you ship out features is key


  1. Customer Insight (the ability to understand and deliver on customer needs)
    Learning how to empathize with the people your product serve, and care deeply about whether that product improve people’s lives or not.

customer insights


  • Fluency with Data - PM - SPM
    Ability to use data to generate insights, to leverage on these insights to achieve goals set for the product, and to connect those quantified goals to meaningful outcomes for the business.

Reporting results is not the end. Digging deep to understand why the trends observed happened, they can then translate these reporting into actionable learnings, and use these learning to guide iterative product development.


Seek out causal relationships between user behavior and valuable outcomes.


  • Voice of the Customer - PM
    Ability to leverage user feedback in all its form to understand how to engage with the product > make better decisions and drive meaningful outcome for the business.

Understand the difference between different types of feedback - quantitative and qualitative feedback. What does each of these type of feedback do for you?


Data is good at describing customer’s behaviour, but it fall shorts in explaining why customers behave the way they do. They only way to tryly understand and empathize with customers is to talk to them.


They approach user research creatively and they foster a close relationship with customers through multiple channels: casual conversations, customer support tickets, app reviews, surveys, usability tests, focus groups, co-creation sessions, and any other ways they dream up


  • User Experience Design
    The ability to define requirements and deliver UX designs that are easy to use, leverage UX best practices, and combine predominant UX patterns present in the product to create a consistent UX throughout the solution.

PMs don’t just understand and describe customer needs, they work closely with design to translate those needs into an easy-to-use experience. Interaction design phase is crucial.


How to use affordance in your UI


What is affordance? It is a property of feature of an object that presents a prompt on what can be done with this object.


Affordance are cues which give a hint how users may interact with something.


Explicit (Obvious) and Implicit (Hidden) Affordances


  • Explicit is the looks of a button; with text it gives a strong signal of clickability.
  • Implicit is tooltips or hovering explanations

  1. Product Strategy (the ability to drive business impact via product innovation)

“Unlike a stand-alone decision or a goal, a strategy is a coherent set of analyses, concepts, policies, arguments, and actions that respond to a high-stakes challenge.” - Good Strategy bad Strategy


Good product strategy comes in the form of delivering features consistently to build towards a coherent roadmap that enables a company to achieve its overall strategy.


Think of product strategy as the glue to put product development and company strategy together.


  • Business Outcome Ownership
    The ability to drive meaningful outcomes for the business by connecting product functionality and goals to the strategic objectives of the PM’s team

Understand that product is a means to the end of creating value, not the end in itself. Hold yourself accountable to deliver valuable outcome over output. And good valuable product comes with many iterations against user feedback and UT.

  • Product Vision and Roadmapping
    Ability to define an overall vision for the PM’s area of product.

Understand how features connect to each other. How features ladder up to a clear, compelling, cohesive vision for the product.


  • Strategic Impact
    Create product that are valauble to the customers and also the company creating it. Else it will just die because the company can no longer sustain the workability of the product.

  1. Influencing people (the ability to rally people around the team’s work)

  • Stakeholder Management
  • Team Leadership
    See yourself as a coach first and foremost. Give your direct repots the tools and autonomy to succeed. Reserve the micro-management for cases where performance is lackluster and needs to be improved.

  • Managing up

Communication is important to Managing Up, but the key is alignment. Peak PMs understand what their boss and other leaders are trying to achieve, and they align their work to those objectives.


The product competency circle