Over the month, the need to learn, the urge to succeed will have to propel you towards this one universally-approved habit: reading. What are you reading today? What have you learnt today that you did not know previously.
In today’s article, its a curation of the articles i’ve read on the second half of June! The articles are classified to the few topics:
- General Technology and resources for video call
- Design patterns
- Management for tech
Technology and video call application resources
Software reuseability does not always allow you to copy code wholesale to be placed into another. It requires you to make tweaks and alterations to get it to work as intended in another application. It’s more of an organ transplant than a lego brick. An accurate illustration to share a point! (:
fly.io’s article is really interesting. It goes into the mechanics of how certifications are issued, and how does Let’s Encrypt verify your domain belongs to you. That is through the ACME protocol of course. Interstingly, they do provide free tier k8s services at $10/mth equivalent of paid services. Thats super decent. They seek to be competitive with the bigger players such as Google Cloud , Amazon Web Service and Azure.
If you heard about ansible, it seeks to serve the same role - configuration management. Maybe a good alternative to ansible if it has different dependences that VMs may not have for ansible.
Saw this and its interesting to see hacker news stream in a different format. It would be nice to have a refresh button instead of a manual refresh to get updates.
This website allows you to learn regex with good explanations with exercises that allows you to get your hands dirty. Being an advocate of learn by doing. I really like how learning has been made easier for people to pick up a skill in bite sizes. No we should not spoon feed people but neither do we give a medium rare steak to a baby. Everything requires a progress and a series of steps to learn the essential skills before proceeding to a higher level competency. Personally, this is a good example of what seems like a lightweight and highly reusable static site for learning a new skill. Definitely a reference for my next pet projects.
As i was talking about Nginx as a file server, Nginx configuration has always been done via the command line and CLI. This is really amazing to have a UI for you to do your configuration with nice buttons to enable or disable your nginx settings. Really neat and interesting for you to consider on your own project.
If you want to create a webRTC application, there are many architecture to consider. You can read up more about them in my previous post here. In order to scale one, you have to consider the Selective Forwarding Unit as the server to transmit your media from your device to your remote peers. One of the beliefs I have is “never reinvent the wheel”. We are in a technology era where many giants have gone before you and already created many tools available for use. So in the case of scalability, it is true that there is no one tool that helps you to address all the technical challenges, but knowing the components of a successful and scalable video call application allows you to then identify the right tools for its respective components.
You have to first identify the screw, in order to realize the need for a screw driver and not a hammer.
Here’s a video talking about mediasoup as well:
It is interesting to see how people across the world are also attempting to solve the same problem, and this time he was able to break down the entire technology stack he used for his video call application. I wonder if it is able to deal with its scalability issue? As well. Below are a TON of articles about video call application that people has so kindly shared with me and now it is my responsibility to delve deeper into this topic and make sense of it.
When you find the edge of current technology, what do you do? You choose to test new water.
Decentralized video chat github
Podcast about the tech stack
Meething project to deal with WebRTC scalability issue
Video chat tree
Twilio’s STUN and TURN servers
Hacker news thread on serverless video chat and data transfer to your site
Article on Icecomm video chat
credits to Lin Clark
You wouldnt want to “move fast and break things” when it actually harms the user experience.
If we want software engineering to be considered an engineering practice (as it deserves) we need to start building robust, resilient and long-lasting systems, and stop dropping any piece of code we come across into our project.
Use code smartly. And this includes finding alternatives to the first library you find that fits your use case and do a simple comparison to understand each of their pros and cons and weight your options.
Chanced upon this simple gadget - a full size 50 keys keyboard with a grey screen that is only about to contain 6 lines of words at any one point. This gadget was created as a way to focus on one thing - typing. For those that are in need for productivity, perhaps such a gadget can help you on that. Beyond productivity, i always wonder if students that are just starting out on their english education could start with such a gadget as well. Simple and straight to the point. It is a keyboard and all you can do is to type and make sense of what is written. But of course, english language goes beyond just stringing words together, that is only the outcome of many other fundamental skills such as grammar and understanding verbs, nouns, pronouns etc.
Mapillary is a geospatial company that strives to create a global street-level imagary dataset to rival Google Street View. Of all company to acquire such as Google, Apple and Microsoft, apparently facebook is the one to acquire them. Facebook actually has been actively involved in the mapping space, contributing over 800,000 kilometers of mappred roads to OpenStreetMap. It is an opensource crowd funded application that builds a community of mappers that contributes and maintain data about roads, trails, cafes, railway stations and more.
Data is asset. As with all things, once we start to put our own agenda over the rights (privacy rights in this case) of people, thats where the problem starts. Although there are clause to indicate that they may still collect data from you in incognito mode, i guess this violation of rights still stands. In the realm of technology, its all chill and breezy until you start collecting data from users. That’s when you are in for a whole new ball game. Does your entire architecture considered the suite of security measures before your collect your customers first data? Like a ship, you cannot just leave the back portion of the ship unbuilt or complete before you put the ship into waters.
Always love to hear people or organizations pooling in resources to equip and train individuals through challenges. Starting up a company is definitely a trying time and we have to gather as much meaningful knowledge and skills else we will risk bringing the company down. Community support is also crucial for us to exchange experiences and more importantly lessons from one another’s mistakes. This will definitely be something one should put some serious thought if you wish to start your own
Like the ascend of a mountain, it’s difficult to climb, but all it takes is a tumble and you find yourself at the foot of the mountain all over again. Worst, wounded and incapacitated
Telegram has always been my go to for numerous reasons: speed, ease of use, multi device login, PIN MESSAGE feature, games, platform for bot creation and games. These are just the perks experienced by an end user myself. The security and secret channel provides a nice option for more confidential conversations as well. All powerful tools can be disastrous if it lands onto the hands of scheming ones. So i always wonder how telegram seeks to address issues of users utilizing such a powerful platform for destructive goals. Till today, this question seems to be unanswered.
When we want to grow, more often than not, we choose skirt the challenge before us and find easier alternatives because we feel inadequate. Here’s an example, if you want to learn a language, lets say korean, and somehow you managed to have a job offer that allows you to speak korean, but you choose to turn down that job because you dont feel confident enough in your language yet. So instead, you choose to listen to podcast at home everyday until you feel you are ready. You know what could have helped you to get better in korean? Working at a job in korean.
This is a common tendency as we make crippling decisions if these decisions are directed by fear. Fear has its own way to manipulate us to find alternatives with its fair share of difficulty to substitute the real thing itself. If you want to growth and succeed? There is no other way, but one way: fail forward.
Insightful to a life without Facebook collecting your personal content and clicks on their site. That is something that I’m yet convinced to do but its always interesting to see perspectives. Especially those that differs drastically from yours. One thing is clear:
Free applications are not that ‘free’ after all.
One thing is clear: the code is not the product. The product includes the usability of it. The process to utilize the product. Does this process help to save cost and team for clients? Ultimately, customers will pay for solutions that save them time, regardless of the origins of the technology.
Definitely worth a read if you wish to make sense of open source and its perplex contradiction to commercial money making models.
To get people into space is no easy feat. And one often wonders how much code goes into the software. Especially the ones that gets the rocket to fly back into earth and land vertically upright. Check out this video here!
To even do that, the way to do that is simple: redundancy. They have 3 processors that are making decisions on the next course of action. If any one of the 3 processors do not agree with the next action, that action will not be executed and will proceed to execute teh correct command based on what the last processor
Distributed denial-of-service is to spam one’s server with such huge and purposeless requests that the servers no longer have sufficient resources to attend to the legitimate requests for the service. For example you want to go to Amazon website, but because the servers are so overwhelmed with requests (purposeless ones especially), it no longer has the ability to attend to your request for the web page and return you the site. As a reason, what you will see is a blank page with a loading icon that goes on forever. Its waiting for your request to be served and returned back to you.
With that spoken, of course there are many architecture and security measures set in place to avoid a DDoS. This will definitely be an interesting topic to delve into if you want to create a secure and reliable service that can stand under the test of fire.
Management for tech
Forecasting how long a feature will take from idea to production ready has always been an issue all developers will face. Estimations are often difficult because one usually does not know the complexity of the feature. The technical challenges one may face. To overcome these uncertainty, usually one approach is to consider some key factors which are often overlooked. One of them is wait time. More often than not, developers typically spend more time waiting for requirements, iteration feedbacks or even to get their review reviewed and approved.
In your estimation, always strive to be data driven. Look at team’s historical statistics of your entire development cycle. Identify your start and end, so you can start measuring the duration of each of the features that are developed. When you have this average duration of each feature, use your initial estimated number of days for your feature and adjust that number towards your average day proportionally according to how complexity of the feature you understand it to be. This usually helps you to get a better estimate of the time required to get work done.
Getting this feature out always helps to estimate the amount of throughput you can expect from your team as well. Overall, seek to make data-driven decisions. In order to do that, start measuring and collecting data!
Pink suggests that money isn’t the main driver for highly skilled workers who choose to stay in their jobs. But a combination of three factors: the ability to be self-directed, getting better at the job, and having a purpose in one’s endeavors.
In other words, once a person’s basic financial needs are met, money starts to become less and less relevant as a criterion for job satisfaction, especially compared to purpose, self-improvement and self-direction.
the best engineers I’ve met through the years are curious, meticulous problem solvers.
- For some engineers, that’s expressed as a desire to optimize existing systems for better performance,
- while for others it may mean creating new software from scratch.
- Still others thrive in creating automation — ensuring the seamless roll-out of new versions of a product
- while some groups would most thrive by architecting complex multi-service solutions.
For the manager, that means building a structure that facilitates learning and self-growth. Most importantly, it means respecting the art of software engineering, allowing for sensible timeframes for software development and not skimping on quality.
A manager’s understanding of the team specifically, and of software engineering in general, is what really makes the difference.
It means a place where the engineers can grow and perfect their craft, flexing their brain muscle while keeping their natural curiosity satisfied.
The demands of the business is rapidly changing due to the strong growth. What you are doing now will and may be drastically different 6months from now. In order for you to keep with the fast scaling startup, you too have to scale just as fast, if not faster than the company as well. That will be reading voraciously, finding opportunities to put new skills into practice. In a startup in growth mode, there are always way more opportunity than what you wish you can do, so see that as an advantage for leverage.
Consistently have an idea where you see the team to be in 6 months time. How different and what are the different types of problems you want to see your team solving from now till then. If the startup is scaling, so does the code base need to scale both in cleanliness and maintainability. In a growth startup, however is not enough. You need to find mentors who are at least 2-3 years ahead of you in terms of their own career.
As you find time to self-scale yourself, you have to also develop the skill to look around corners for potential potholes to avoid. Startups are constantly on fire, and it’s important to see and foresee such fires so you can learn to response proactively instead to react passively.