Steve Hook

Steve Hook Sharing my software engineering experience through videos

02/05/2022

Ain't nothing better than chilling and writing a highly efficient log reader from scratch, using file binary search and the Go programming language. Find yourself a set of headphones and let's chill
together, while coding a bad ass CLI program in Go. In this video we'll be coding an efficient Apache Log Reader from scratch.



✍ RESOURCES:
https://github.com/chill-and-code/apache-log-reader

💰 Support me on Patreon:
http://patreon.com/steevehook
💰 Paypal Donation:
http://paypal.me/steevehook
💰 Buy me a Coffee:
https://www.buymeacoffee.com/steevehook

I have good news for you 🎉🎊Like I promised, today I'm launching the Steve Hook Academy mentorship program. It's a small ...
08/04/2022

I have good news for you 🎉🎊

Like I promised, today I'm launching the Steve Hook Academy mentorship program. It's a small step towards making Education better, that also rewards my invested time and effort. 🎓

If you're an individual just playing with the Go programming language, or thinking seriously about making a career change, I have good news for you. I want to become your personal mentor. No bu****it, I will personally guide and help you through your journey. 👨‍💻

Today is still a very good time to become a Go professional and run the market while it's still pretty young and small. If you want to become a Go professional today, go ahead and schedule a call with me, where we can talk some real business. 📞

Steve Hook Academy. Become a Go (Golang) professional with Steve Hook and apply for 1:1 Go Mentorship program

Like I said before, I want to start doing Go Programming 1:1 Mentorship sessions and I need your input on how to make th...
15/03/2022

Like I said before, I want to start doing Go Programming 1:1 Mentorship sessions and I need your input on how to make the best out of it. So here's a small Google Form you can fill in to help me out make a final decision 😇

https://forms.gle/ynrQAxQroBwBPSkv5

Collecting anonymous information on how to make the best out of the Go Programming 1:1 Mentorship

Another Code Time about Concurrency in Go. As Go developers, we all know Atomics and Mutexes both can be used to prevent...
31/01/2022

Another Code Time about Concurrency in Go. As Go developers, we all know Atomics and Mutexes both can be used to prevent Race Conditions, and they both provide ways to make sure our Go programs execute correctly. The question is, can we mix the 2 primitives to achieve Correctness? What do you think will be the result of this program when executed with the -race flag?

▶️ go run -race main.go

1️⃣
Race Condition
Print → count: 100000
2️⃣
No Race Condition
Print → count: 100000
3️⃣
Race Condition
Print → count: anything up to 100000
4️⃣
Race Condition
No Race Condition
Print → count: anything up to 100000

Keeping up with the Matrix be like 😎
24/12/2021

Keeping up with the Matrix be like 😎

In concurrent computing deadlocks can happen for various reasons, most of which fall under 4 conditions also known as th...
24/12/2021

In concurrent computing deadlocks can happen for various reasons, most of which fall under 4 conditions also known as the Coffman Conditions ⬇️

Feels good to be back after some time taken off. I'll start things slow with a good old Code Time post. While slices are...
06/12/2021

Feels good to be back after some time taken off. I'll start things slow with a good old Code Time post. While slices are a simple and useful data structure in Go, they can give you a headache, if you're not aware of their internals. So what's it going to be? 🤔

✅ 1
✅ 3

Early Autumn is one of my favorites ❤️😌
17/10/2021

Early Autumn is one of my favorites ❤️😌

Back with another quiz. This time around, let's see what's your experience with Mutex Lock Starvation. Let's imagine bot...
28/09/2021

Back with another quiz. This time around, let's see what's your experience with Mutex Lock Starvation. Let's imagine both of the snippets below run in their own go routines and they receive the same instance of Mutex. Which snippet will successfully acquire the Mutex Lock more often? 🤔

✅ Snippet A
✅ Snippet B

As usual, your weekly quiz. This time around let's see if you're familiar with type aliases and basic rules when creatin...
06/09/2021

As usual, your weekly quiz. This time around let's see if you're familiar with type aliases and basic rules when creating methods in Go. Will the below code compile? 🤔

✅ Yes
✅ No

The Software Engineering industry is changing at a very fast pace and it can be exhausting for many of us. As developers...
18/08/2021

The Software Engineering industry is changing at a very fast pace and it can be exhausting for many of us. As developers, we must always keep up with the technology, we're in a never ending learning business. The problem is, there's too much new/experimental/trendy stuff happening, which can burn you out 🔥

My take on this one is, keep an eye on what's coming up, but don't spend your time & energy on catching up with all the trends. Focus on you as an Engineer. Become a better Thinker, better Problem Solver & only adopt trends as they become a standard 👀 💪

Every single time I find someone who's better than me, I start comparing myself, thinking I'm not enough. My math is wro...
16/08/2021

Every single time I find someone who's better than me, I start comparing myself, thinking I'm not enough. My math is wrong most of the times though, you can't compare somebody's 10 years of experience with your 2-3 years of experience. It does not work that way, even if you had the same experience in terms of years, that's still a wrong approach. We're all different, we function differently 🙀

Bottom line: The only person you must ever compare yourself with is YOU. Do it daily, become better than you were yesterday 💪

I know this sounds crazy, but it works. From my experience so far, correcting a bad negotiation can be done by simply mo...
14/08/2021

I know this sounds crazy, but it works. From my experience so far, correcting a bad negotiation can be done by simply moving on. Hate it or Like it, Raises & Upgrades are usually up to 15-20% (if you're lucky) If we're talking higher raises the business won't like you, so it's just easier to leave. Negotiation is Key, Don't Mess it Up 💪😉

The tip of this week, is nothing fancy. It's about Persistent TCP Connections. If you've ever created TCP servers & clie...
13/08/2021

The tip of this week, is nothing fancy. It's about Persistent TCP Connections. If you've ever created TCP servers & clients, you probably considered the idea of reusing the same TCP connection for efficiently using the networking resources. There are a set of issues that come with this approach, which can cause reading & writing to block forever.

To solve this we need to satisfy 3 things:

✅ TCP Stream Delimiter Defined
Because we want to reuse the TCP Connection, we must have defined some kind of delimiter/separator based on which we scan/read a single message from the TCP Connection. The default one (bufio.Scanner) is scanning lines (by \n separator).

✅ The Delimiter MUST be Bidirectional
The separator/delimiter must be supported on both ends, the client & server on both operations: the read & write to the TCP stream. If at least 1 is not implemented, the reading/writing process is going to end up blocking forever.

✅ Rate Limit TCP Connections
Because we don't close the TCP Connections, we might run into physical limitations, as to how many connections can be open at the same time. This is why we must have some kind of rate limiting implemented to make sure our system is not breaking.

We can't make use of util functions like ioutil.ReadAll, because we rely on not closing the TCP connection. Plus pretty much all Readers (io.Reader) supported by Go, will read till they reach EOF. An EOF is never written to the TCP stream, because we don't close the connection 🤔

Go Playgrounds ▶️
https://play.golang.org/p/sdE635R6dqS (server)
https://play.golang.org/p/vXOMfqbg-cs (client)

This one's very opinionated, but that's my conclusion. You will never get fully tested in an interview, nor will you get...
13/08/2021

This one's very opinionated, but that's my conclusion. You will never get fully tested in an interview, nor will you get a super objective appreciation. It very much depends on who's interviewing you & how they do it. At the end of the day, just be cool & don't stress it. Some people will barely touch you, others will shred you. The point is, stay working & don't stress too much
about how an interview went 💪🎯

On this one I'll be the Developer's Advocate. What's worse than a missing feature that makes you money? Probably a featu...
12/08/2021

On this one I'll be the Developer's Advocate. What's worse than a missing feature that makes you money? Probably a feature which is buggy or has future limitations. Deadlines & Delivery are important but, Quality takes time. 🎯

As usual your weekly quiz, this time around let's exercise your knowledge on gob encoding. Go has most encoding standard...
11/08/2021

As usual your weekly quiz, this time around let's exercise your knowledge on gob encoding. Go has most encoding standards supported, including its own encoding gob: for communicating between Go processes. So what's going to be the value of q?

✅ Q{A: 1, B: 2}
✅ Decode Error

Being part of the Code Review process does not only make you a better Software Engineer, but also a better human. I won'...
11/08/2021

Being part of the Code Review process does not only make you a better Software Engineer, but also a better human. I won't make this one too long & I'll just say this: DON'T MAKE CODE REVIEWS MEANINGLESS. Try and bring as much value to the table, and be Humble. Admit when you're wrong. We're all wrong at some point, we all make mistakes, that's not the point. Code Reviews are a Team Effort 💻❤️

We're past the times when Memorising was a thing. CREATIVITY & CRITICAL THINKING are way more important, so don't waste ...
10/08/2021

We're past the times when Memorising was a thing. CREATIVITY & CRITICAL THINKING are way more important, so don't waste your time on memorising what automated tools, docs & specs already do fo you. Work Efficiently, not Hard, Be a real Problem Solver 💪🎯

As much as like Quotes that Inspire, Nothing is more inspirational than the Actual Work. Nothing will ever work, if you ...
09/08/2021

As much as like Quotes that Inspire, Nothing is more inspirational than the Actual Work. Nothing will ever work, if you don't Start. So go ahead and close this tab/application & start becoming the better you 😉❤️

I'm a huge fan of the Hustle Culture, but the Software Engineering game is like sports. You Workout, you Rest, then Get ...
08/08/2021

I'm a huge fan of the Hustle Culture, but the Software Engineering game is like sports. You Workout, you Rest, then Get Back to Workout.

It's just part of the process, make sure to put in as much work as possible, but Don't Burn Out. Enjoy the PROCESS, take some time to chill & get back in 💪😌💪

This is slowly becoming a brand ❤️🤟
07/08/2021

This is slowly becoming a brand ❤️🤟

This post is not about me bragging or licking my past scars, It's about Speaking for others, Encouragement & Love. I've ...
07/08/2021

This post is not about me bragging or licking my past scars, It's about Speaking for others, Encouragement & Love. I've only shared this with a small number of people, so a small number of you may know, however the majority of you don't know.

And now, to anyone who wants to become a Software Engineer, let me tell you something which you won't hear from many.

You're now looking at the kid who grew up without both of his parents, lived in a dorm with only $9/week, was constantly told that Software Engineering is a joke while being in the orphanage & In the End I STILL MADE IT.

I am thankful & grateful to all the people who helped me & supported me. I appreciate the hard times & the people that showed up in those hard times. I had a high chance of not making it, but at the end of the day in the worst moments, we can still make the best choices.

Find the Strength & Motivation within you & You'll Achieve ANYTHING. IF IT WORKED FOR ME, IT HAS TO WORK FOR YOU TOO 💪

The greatest enemy of Growth is the Comfort Zone. There are stages in our careers when we reach a level of comfort, and ...
07/08/2021

The greatest enemy of Growth is the Comfort Zone. There are stages in our careers when we reach a level of comfort, and we slowly stop growing. The key is to always find new things to do/learn, that light up that spark, that keep you as hungry as you were in the beginning.

Learning really has no levels, maybe only Chuck Norris has passed all the levels twice, for the rest of us, find what sets you on fire 🔥

Following the 10,000 hours rule. If you work 14h/day you become a Senior in 3 years, instead of 5 years. 🙀There’s NO SEC...
06/08/2021

Following the 10,000 hours rule. If you work 14h/day you become a Senior in 3 years, instead of 5 years. 🙀
There’s NO SECRET, it’s just Difference in WORK 💪

Mutexes can go wrong in so many ways, it's just stuff you always have to manage correctly, otherwise you run into a bunc...
06/08/2021

Mutexes can go wrong in so many ways, it's just stuff you always have to manage correctly, otherwise you run into a bunch of Concurrency Issues. Here's an example of Bad vs Good usage (reducing mutex holding time) ⬇️

❌ AVOID GENERALISING the SCOPE.
A top level call to Lock() and defer Unlock() will make things slow, especially in a production environment

✅ Always NARROW DOWN the SCOPE as much as you can
This will release the lock faster and thus allow the new acquire of the lock much faster

Go Playground ▶️
https://play.golang.org/p/vqMRc5eK8ku

Vlogging be like 🤣
05/08/2021

Vlogging be like 🤣

The Software Engineering game can be wild, but it's not about that. Most of the times it's emotionally hard to deal with...
05/08/2021

The Software Engineering game can be wild, but it's not about that. Most of the times it's emotionally hard to deal with Rejection & Self Doubt, which happen often in our careers.

It's important to understand that part of any success, there's a ton of failure, rejection & self doubt. It's how we all grow.

A REJECTION can mean one of the 2:
1️⃣ You Need to Grow
2️⃣ They couldn't handle your Honesty

Don't discourage yourself, it's all gonna be alright, you'll look past this after some time and understand it's always been part of the process, part of your successful journey.

Stay Strong, Love y'all ❤️

As perfect as we all try to be 😇, especially myself, I had to say it.F**K PERFECTION 🤬. Go ahead and put in the WORK, MA...
04/08/2021

As perfect as we all try to be 😇, especially myself, I had to say it.
F**K PERFECTION 🤬. Go ahead and put in the WORK, MAKE MISTAKES and REPEAT the damn process. It's the way, it's the silver bullet.

There's NO SECRET or SHORT PATH towards anything. WORK is the only decisive factor in any sort of SUCCESS.I don't care w...
03/08/2021

There's NO SECRET or SHORT PATH towards anything. WORK is the only decisive factor in any sort of SUCCESS.

I don't care who you are:
man / woman / LGBT+,
black / white / asian,
religious or not,
speak perfect / broken English,
dress well
how old are you
or really anything that makes you different.

I DON'T CARE, that's just irrelevant,
You get my respect, if you're a hustler & put in the hard work.
Keep grinding & improving the game. 👨‍💻

Been a while since I hit ya with another code time. Here we go again. You might think locks in Go are re-entrant, to you...
02/08/2021

Been a while since I hit ya with another code time. Here we go again. You might think locks in Go are re-entrant, to your surprise they're not. So what's it going to be? 🤔

✅ Works fine
✅ Deadlock

02/08/2021

Communication in Software Development Teams & Corporate Companies a lot of the times goes wrong, resulting in inefficient use of money & time. In this video Roman Gluck, who has a wide experience in the Project/Product Management area will share his experience on how to improve your Communication skills in your team/company.

If you're a Developer, Team Lead, Product/Project Manager or really have any role in you team this video will help you level up your communication skills and get rid of the main bottleneck which usually are present in teams.

Enjoy 😎

Roman Gluck was a pleasure listening to you, both when I recorded/edited the video ☺😇

YouTube Link:
https://youtu.be/uShMHVtHW_w
Discord Server:
https://discord.gg/tprewQu
Patreon:
http://patreon.com/steevehook
Paypal:
http://paypal.me/steevehook

The way I feel after my code compiles & runs after a long tutorial coding session for YouTube 🆒💻
02/08/2021

The way I feel after my code compiles & runs after a long tutorial coding session for YouTube 🆒💻

The way I look when I realise I've been talking for 30m without pressing the ⏺ button 💢💢
02/08/2021

The way I look when I realise I've been talking for 30m without pressing the ⏺ button 💢💢

Address

Natalia Gheorghiu 30

Alerts

Be the first to know and let us send you an email when Steve Hook posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Contact The Business

Send a message to Steve Hook:

Videos

Shortcuts

  • Address
  • Telephone
  • Alerts
  • Contact The Business
  • Videos
  • Claim ownership or report listing
  • Want your business to be the top-listed Media Company?

Share