Week 15: Reflections on Learning and Living in Colombia
Share
Welcome to week 15 of the Hack Reactor documentation. I had many new learnings this week in Hack Reactor and outside Hack Reactor. In addition, our friend Andres Ospina visited us from MedellĆn, Colombia, and saw Val and me on Tuesday evening. We went to the Santa Rosa de Cabal hot springs, about a 20-minute drive outside of Santa Rosa De Cabal, and spent the evening soaking in a hot spring next to a beautiful waterfall for about four hours. The hot springs are open till midnight, and I can see us getting a car in the future and going there at least once or twice a week in the evening to relax.
Termales Santa Rosa de Cabal - termales.com.co
En termales Santa Rosa de Cabal podrĆ”s disfrutar de comodidades exclusivas mientras te cuidamos por medio de unā¦
termales.com.co
My other friend Raz who is from Scotland and lives in Medellin, spent Friday and Saturday here in Santa Rosa. We showed him around, took him to eat, and introduced him to Colombian culture! We spoke on numerous topics about the culture here, and he told us that this was his first time sitting down to eat with a Colombian family, my girlfriend, myself, and her parents. He enjoyed coming here and was interested in the much lower cost of living and highly affordable properties compared to MedllĆn.
Earlier this week, Santa Rosa De Cabal was without natural gas because one of the local gas companies had to turn off the gas line that provides over 300,000 residents with natural gas. This was due to an unusual heat reading where the gas line is located. Santa Rosa De Cabal was affected for several days. The entire town was without natural gas, involving all restaurants and inhabitants. We couldnāt cook on the stovetop because most things are just natural gas, which is cheaper. If you had an electric stove or a propane tank, you would be able to cook. This was also the case for restaurants that didnāt have propane tanks. We had to find a restaurant that had the means to cook. We went to celebrate my girlfriendās recent promotion and had to spend time walking around and asking the staff of restaurants if they had gas to cook with.
Thankfully, after almost two days, natural gas was returned. However, I am still determining what will occur over the next several weeks if they must stop natural gas again. I found out through this process that many taxi drivers are using natural gas because itās a more cost-effective alternative than just using regular vehicle gas. But as you can imagine, many taxi drivers get scared and frustrated when natural gas is shut off. I read one article that said 70% of taxi drivers switch their cars to natural gas because itās more cost-effective for them.
Limitan suministro de gas en suroccidente del paĆs por anomalĆa en un volcĆ”n
Los departamentos de Caldas, Tolima, Risaralda, QuindĆo, Valle del Cauca y Cauca en el suroccidente del paĆs enfrentanā¦
www.elheraldo.co
We handled the situation with adaptability and perspective. Like everything, we find ways to adapt, and itās just part of the living process. No matter where you are in the world, things will always happen. Infrastructure is never constant. The day infrastructure is built, itās already depreciating. This isnāt necessarily the cause, but no one could say itās not declining because itās on top of the earth. The earth is constantly changing, evolving, and shifting, whether itās an earthquake or, in this case, tied to a volcano.
Now, letās get into this weekās learnings
React Redux
Iāve realized that React Redux libraries intend to manage the state in React applications. It offers a centralized and predictable solution for handling complex conditions. Redux simplifies the development and maintenance of large-scale React applications by keeping all application state in a single store and modifying it through dispatched actions. Moreover, Redux allows middleware to be applied, which can be utilized for tasks such as error handling, logging, or asynchronous data fetching. With components able to subscribe to the store and receive updates when the state changes, sharing the state between multiple components has become a breeze. React Redux has proven an indispensable tool for managing conditions in larger React apps.
When should you use React Redux?
I have discovered that React Redux is a valuable tool for large-scale React applications with complex state management requirements. This library can help share the state between multiple components and handle asynchronous data fetching. Additionally, Redux can improve debugging and testing processes since it provides predictable state changes that can be easily traced through actions and reducers.
During my research, I learned about the Redux Toolkit, a collection of tools and utilities for using Redux. One of its features is creating Redux slices, which are smaller pieces of the Redux store that handle a specific part of the state. The Redux Toolkit also simplifies creating a Redux store with middleware and other configuration options through the configure store function. The Redux Toolkit is designed to make writing Redux code more straightforward and faster, with fewer lines of code and less boilerplate. You can find more information about the Redux Toolkit in the official documentation, like all good libraries and frameworksš
Bubble Sort
I have learned that bubble sort is a basic sorting algorithm that involves swapping adjacent elements if they are not in the correct order. This process causes more minor details to ābubbleā up to the top of the list as the algorithm runs. While bubble sort is straightforward to comprehend and execute, it could be more efficient for sorting large lists. Therefore, it is mainly used for educational purposes or when the list is already mostly sorted.
Merge Sort
I recently learned about merge sort, a sorting algorithm that breaks down the input array into smaller subarrays sorts them, and then merges them back together. This approach is highly effective for handling large lists and is widely utilized in computer science.
WebSockets
I learned that WebSockets is a protocol that enables real-time communication between a client and a server. With WebSockets, a client can establish a persistent connection to a server and communicate with it bi-directionally. This means the server can push data to the client as soon as it becomes available without the client requesting it. WebSockets are ideal for applications that require real-time updates, such as chat applications or online games.
However, I also discovered that WebSockets can have higher latency than traditional HTTP requests and require a persistent connection, which can be resource-intensive for both the client and server. Additionally, some proxies and firewalls may not support WebSockets, which can limit their usefulness in specific environments.
Disadvantages to WebSockets
Iāve researched WebSockets and found that certain drawbacks must be considered before implementing them. One significant disadvantage is the issue of security. Since WebSockets allow bidirectional communication, securing connections can be more challenging than standard HTTP requests. Moreover, WebSocket connections are kept open constantly, which can cause performance problems and make it hard to scale applications. Lastly, not all browsers support WebSockets, which can limit their usage in some environments. Despite these drawbacks, WebSockets are still a potent tool for developing real-time applications. To mitigate these issues, itās crucial to follow security best practices like encryption and authentication, use a WebSocket library that can aid in developing secure and efficient WebSocket applications, and thoroughly test the app in all browsers to ensure compatibility.
Alternatives to a Websocket
There are several alternatives to WebSockets that you can consider, including:
Server-Sent Events (SSE): This simple protocol allows a server to send data to a client without the client having to request it. SSE can be useful for applications that need to send updates to the client in real-time, such as a chat application or a stock ticker.
Long polling: This technique allows you to keep a connection open to a server and wait for data to be available. Long polling can be helpful for applications that need to send updates to the client, but only occasionally, such as a weather application.
MQTT: This is a lightweight protocol that is designed for machine-to-machine communication. It is often used in IoT applications, such as smart home devices.
WebRTC: This is a technology that allows browsers to communicate with each other without the need for a server. WebRTC can be helpful for applications that need to send real-time audio or video data, such as a video chat application.
The best alternative to WebSockets will depend on the specific needs of your application. SSE or WebSockets are good options if you need to send updates to the client in real-time. Long polling may be a better option if you only need to send updates occasionally. MQTT may be a good choice if you are developing an IoT application. And if you need to send real-time audio or video data, then WebRTC may be the best option.
Can a server establish a WebSocket connection to a client?
In the WebSocket protocol, the client initiates the connection by sending a handshake request to the server. The server responds with a handshake response, and the connection is established. Once established, both the client and the server can send messages to each other.
Although it is possible to simulate a server-initiated WebSocket connection using workarounds, such as creating a long-polling request, this is not a genuine WebSocket connection. A long-polling request keeps the link open until the server has some data to send. At this point, the client can poll the server periodically to check for new data. However, this method can be less efficient than a real WebSocket connection.
Articles that I read this week
Nervous ChatGPT Will Steal Your Programming Job?
A Guide to Coping with AI for Anxious Software Developers
levelup.gitconnected.com
The article above intrigued me after first learning about
Adam Hughes, who discusses the potential impact of AI technology on the job market for software developers. His perspective is on ChatGPT and that this technology could decrease demand for human coders. But after a previous article that outlines the complete loss of demand for software engineers, this article shares his perspective on how developers/engineers are processing the anxiety and stress that comes from talk and news in the industry portraying the end of coders because of this technology. The article notes that while AI can automate some aspects of coding, it is likely to replace human programmers partially. It also emphasizes the importance of developing new skills and keeping up with technological advancements to remain competitive in the job market. Iām grateful for Adam taking the time to reply to my lengthy commitment, and I will follow up with him and his writings. I appreciate individuals who formulate their thoughts and present them for the public to learn and discuss.
ChatGPT spells the end of coding as we know it
When ChatGPT was released to the world in November, most of us marveled at its ability to write rap lyrics and coverā¦
www.businessinsider.com
This Business Insider article above is where I first learned of the article Adam had written on the doom for coders/programmers; This article discusses the potential impact of AI technology on the job market for software developers. Listening to all sides of a topic with profound implications is essential. In this case, we are talking about society and humanity radically changing. No one can predict the future, and history has many examples of incorrect predictions. At the same time, with data and knowing that history does react, many signals show that the world is in store for a change of life habits for being a human in the 21st century.
Two Informational Interviews this week
I chatted with Maximilian Kwok, founder of JobFit. This platform provides free company research for skilled operators from non-traditional backgrounds to showcase their value in a way that makes hiring managers hire them on the spot.
We discussed the importance of understanding the hiring managerās needs and creating content that addresses those needs. We also discussed the similarities between building a pitch deck and a resume/cover letter and how to utilize tools best to communicate with investors and hiring managers.
Maximilian suggested that graduates should communicate their personal and capsule projects in a way that resonates with the hiring manager, such as by integrating tech stack elements into their experience section, creating solutions to the hiring managerās problems, and framing their projects as if they are launching an app in the App Store. He also suggested networking by motivating the person asking for help, such as by offering a solution to a problem based on the companyās characteristics. We also discussed the importance of solving problems to get hired, the post-bootcamp depression, and Maxās upcoming program to help bootcamp graduates.
Here is my recommendation for Max that I wrote about him on LinkedIn:
"During my coaching session with Max, we explored the nuances and benefits of understanding the hiring managerās perspective within the software engineering industry. Maxās insights were invaluable as he emphasized the importance of frequent and open communication channels to address current and relevant business challenges. He provided practical solutions that can be easily implemented.
As a passionate business owner with years of experience, Max is dedicated to helping boot camp graduates develop the communication skills they need to excel in the ever-evolving tech industry. He is committed to ensuring that they are well-prepared for the opportunities and challenges that lie ahead. Maxās company is unique in that it provides value upfront, evident in its list of hiring companies and the current problems they need to solve. This empowering perspective in the business world shows that finding solutions to individualsā problems is the language of āI will hire youā or āI will pay for your product or service.
I highly recommend Max for his practical insights, dedication to helping others succeed, and unique perspective in the tech industry and coding bootcamp graduates."
Maxās Linkedin Profile to connect
My other informational interview this week was with Joyce Ma on the topic of coding assessments and her experience with them in the past and currently, in additional helping to share her service when viewing work opportunities and what are good leads on Linkedin for assessing if a Hiring team manager is active on Linkedin and what is a good sign for when to send a direct message with a high likelihood of response. Here is Joyceās LinkedIn. She also shared with me a company gaining more usage as a technical assessment provider for companies hiring software engineers called WovenTeams.
Technical Interview Software for Developers | Woven Teams
Our technical assessment is the only platform to evaluate the whole candidate and provide same-day feedback and resultsā¦
www.woventeams.com
Learning how to customize the Chrome DevTools
How to Customize Your Chrome DevTools to Have a Material Design Look
When you spend most of your working time on a computer, itās essential to be able to customize visuals and colorā¦
xanderclemens.medium.com
Thoughts going into next week
To sign off for this week, I am officially getting baptized in the Catholic Church. My name will be written somewhere, and the documentation will be entered into a database to show that I have been baptized. This by no means represents my beliefs regarding religion, but itās more about being on good terms with my family here in Colombia. Nonetheless, I always find value in activities and experiences in my life, and I always look for the good in things.
As Jocko Willink, the former US Navy SEAL Commander says: āGood.ā Itās an excellent time to gain a different perspective, meet individuals you wouldnāt usually meet, and have conversations with others or yourself. Next week, Iāll have some documentation and video footage showing that process. My girlfriendās father, Orlando, may be able to sing at the event. Currently, itās just another kid and me, as generally, for babies, this takes place within the first 40 days of life to get baptized. Nonetheless, itās a unique experience to share.
Tomorrow, weāre going with some friends to a small town where the regional coffee of Colombia is called Silento. Iām looking forward to going as it will be my first time, and our team will be looking to develop more of the front end for our project. Iām also constantly learning and staying consistent with good, healthy habits.
My girlfriend and I celebrated a year of knowing each other and nine months together as a couple. Weāre looking forward to another year of getting to know each other and another nine months together.
Thank you so much for reading, and if you have any comments, questions, or perspectives, please send them my way. Xander, the software engineer, is signing off for now.
Ready to work with Xander Clemens?
I'd be happy to discuss your project and how we can work together to create unique, fun and engaging content.
Go ahead and click here to be taken to my business service page and see what I can do for you. Book a call with me now. Looking forward to chatting soon!
