It has never been easy to keep up the habit of reading. It is good for you, but it’s not easy. You have social media to tune out. You have to exercise discipline to put your phone away, put social vices, and other video streaming platforms on-hold and take the mental capacity to read articles. Interesting or not, you scroll and you find the ones which are meaningful for you.
But once you achieve that habit of reading, you find yourself on track to be at least 1% than the person you are yesterday.
Does that matter to you?
In this article, there will be no topics, so you can just browse as you please! (:
Understanding trends in social products can help you to focus on the factors that actually makes the difference.
- Do not go against human nature
Key Question: Is my product catering to the most primal instincts of human nature or looking to serve a higher need?
If you want to make a positive impact, you find a human vice first - create a toy first. Get traction and then focus your content on whatever that creates positive outcomes.
Companies like YouTube, Apple, Google and Netflix, may have started out as toys, but arguably, they have contributed more to education and learning than a lot of smaller companies focused on education.
- Make it dead simple for your users to create content
You have to address the cost of production to the value of consumption. Instagram / tiktok does well because they reduced the hours required to produce a good content to mere hour(s) which potentially millions of users can consume the video.
Key question: Can my users create content (or complete action) while watching TV?
- Focus on young people for social products
Teenagers in US tend to spend all their time on social media nad sharing with their friends, hence the low cost of acquisition.
Key question: is my product social or new? If so, I should probably target teens.
- Social Platforms must have a connection to real life
Big platforms like Facebook, Instagram, and Snapchat have a common factor, they enable interaction between your real friends
Key question: Is my product social at it’s core? Am I aiming to get to 100m DAU? if so, there has to be a link to the user’s real life.
- Focus on a niche during 0 - 1 phase, then diversify the use case.
Find your first 1000 truest, most obsessive fans and you can make a living off that group.
Key question: Am I narrowing down my audience sufficiently?
This is an insightful article, readers! Do take the time to read this.
Obviously, products get better inasmuch as the designer adds features, but this is a relatively weak force. Much more powerful are external forces: microchips getting cheaper, bandwidth becoming ubiquitous, mobile devices getting smarter, etc. For a product to be disruptive it needs to be designed to ride these changes up the utility curve.
But startups with sustaining technologies are very unlikely to be the new ones we see on top lists in 2020. Those will be disruptive technologies – the ones that sneak by because people dismiss them as toys.
There are a few list you can have, should you choose to use GTD framework. Check out the article to understand more about these categories of tasks.
- Next actions
UX of website has been deprioritized in lieu of heavier JS functions - real time data updates, data push from server. Reload without having to refresh.
Those are good, but bad if at the expense of UX.
If its easy, lets try to do. add component to dom, remove component from dom, move components in dom, animation can be applied to them.
A place for you to play lofi music
Names have content and form. When you mention you have a name, typically a name follows certain formats. You have first-name, last-name, middle-name is optional.
Variable names also have its own forms. Code smells are not typically wrong, but they do not feel right. Some examples: long method, long parameter list.
Linguistic smells: they are similar to code smell, where is less about structure and more about the name.
When you see def isValid(eid), what could be the return type? Boolean. This is correct, but we decides to be smart to add in something addition
iid = convert(eid)
return iid, True
This example above is common but actually creates code smells. There are 6 examples:
Methods that do more than they say
methods that do less than they say
methods that do reverse than they say
identifiers that hold more than they say
identifiers that hold less than they say
identifiers that hold reverse than they say
What is the impact of code smell?
Your brain have to process harder to understand the code
Suppose you are storing maximum number of orders per month?
What could be the variable name?
If 2 engineers have to create the same variable name, what is the chance of picking the same name? Its only 7% probability. (did not explain how its derived)
But if you use molds, the name quality will improve.
How to get better at naming things?
Avoid linguistic smells
Agree on name molds
Intersting how hotels located in places with poor cellular connections can rebrand or market themselves as technology-free hotels so they can focus on connecting with their families
How to do a frontend system design interview
All frontend engineers should be aware of this difference.
The poor quality of google search along with advertisement pushes the need for an alternative
Its good to remind yourself that you don’t really know that much of a language you may dare say you are proficient in.
How you can improve your collaboration with engineers to get the most business value out of your engineering team. Help them to focus on business value instead of just the completeness of the feature. Being logical individuals, planting the necessary information to help them see the big picture can guide the conversation to more meaningful feature alternatives or quick solutions yielding 80% value from 20% of allocated time.
In code, typically you can add in TODO as a way to flag out a piece of code to be worked on later.
But overused with different implicit context can result in information loss. You don’t want that for a running code base.
There are alternative naming you can consider:
FIXME: something is broke
HACK/OPTIMIZE: the code is suboptimal and should be refactored
BUG: there is a bug in the code
CHECKME/REVIEW: the code needs to be reviewed
DOCME: the code needs to be documented
- Although if we could utilize existing auto documentation tools to handle this.
TESTME: Specific code needs to be tested or test need to be written
Consider this if you want to more concise context updates.
Don’t use infinite spinning loaders. It gives no clue to the user, resulting in ‘surprises’. Good UX is not surprising for the user. the user knows what she could expect. The user knows when the application can be loaded. The user can also find a way out of the loading situation if faced with an error.
The two use concepts at hand are:
- Skeleton Loaders
- Empty States
4 fits to could position you and your product for $100m
Market Product Fit
Product Channel Fit
Channel Model Fit
Model Market Fit
Domain-Drive Design(DDD) - Entity (sometimes Aggregate) - Domain Layer
Clean Architecture (CA) - Entity - Domain Layer
“An Entity is an object within our computer system that embodies a small set of critical business rules operating on Critical Business Data.”
“The interface of the Entity consists of the functions that implement the Critical Business Rules that operate on that data”
The quote above is talking about intention revealing interfaces.
Domain Service => with you have use-cases that involves more than 1 entity. Then it does not exactly belong to either the entities. Rather, it belongs to a domain service. An example will be upvote. You have the vote entity, and you have the user entity which the vote belongs to.
In the Application Layer
DDD => Application Service
CA => Use-cases
Intention Revealing interfaces are simply put as:
Name classes and operations to describe their effect and purpose, without reference to the means by which they do what they promise. - Los Techies 1
It helps you know what the code is intending to do without actually looking at how it is done.
When your ability to express intention is lost?
If a developer must consider the implementation of a component in order to use it, the value of encapsulation is lost. - Evans (DDD)
We should aim to be writing code that is irrefutable about what it is and what it does.
The code has to be a form of documentation for the developers down the road.
Cyber security emphasis
To be honest, it is tough to consistently write good articles throughout the year, especially if you have a challenging career which will take up the bulk of your day’s time and energy. But I proport that you just write your articles anyways; however bad you think they may be. You keep moving forward, even if its not a leap, it could be a step forward. And what matters is you moving forward. You should never get into the habit of a pause.