I am switching my main backend language from Python to Go. Since it has been a while since I touched Go, I decided to refresh my memory of its syntax by building a wc clone from John Crickett's https://codingchallenges.fyi/.
I built the line, word, byte, and character count functionalities and wrote unittests using testify. I have also included the architecture documentation and an easy-to-follow Readme.
Here is my repo: https://github.com/abeni-al7/aben-wc
I would appreciate any feedback on my code and suggestions for improvement.
LinkedIn
X
I built the line, word, byte, and character count functionalities and wrote unittests using testify. I have also included the architecture documentation and an easy-to-follow Readme.
Here is my repo: https://github.com/abeni-al7/aben-wc
I would appreciate any feedback on my code and suggestions for improvement.
X
codingchallenges.fyi
Hello from Coding Challenges | Coding Challenges
Description will go into a meta tag in <head />
β€2π1
I just solved today's Advent of Code challenge. The second part took me a lot of time. Been staring and writing out the pattern on excalidraw for so long. My solutions are in my repo:
https://github.com/abeni-al7/advent_of_code
https://github.com/abeni-al7/advent_of_code
π2
Programmer Jokes
Photo
This is just a meme but eventhough programmers in rich countries get paid more than average salaries, they are usually in the middle class - upper middle class range in their countries. The cost of living is also very high in places where big tech companies are located making them spend more than people living in areas where the cost of living is lower. Meanwhile programmers in poor countries usually earn an amount of money small - medium sized business owners earn in their countries when they are employed at companies located in the rich countries remotely, which places them among the highest earners in their countries. Wealth is just relative and whenever salaries are considered, cost of living in the area should also be considered. When saying this, I'm not denying the fact that there are benefits that come with residing in the developed countries such as reliable electricity, reliable internet access and better systems and infrastructures. I'm just saying that everything is a tradeoff and there is no perfect scenario
β€4π1
In my current job, I am mostly refactoring previously written code to follow DDD (Domain Driven Design) principles. If any of you are experienced with DDD or Clean Architecture, you would know how much Interfaces are used for dependency inversion. This can usually be implemented in languages that support interfaces very easily. You define the interface you want in the domain layer, and you extend that interface and implement it in any of the layers that the domain should never depend on. But in Python, you don't have access to interfaces. So what I found out recently is the concept of Protocols in Python. Protocols allow you to define contracts that can be implicitly implemented by your layers. It works exactly like interfaces in Go. You don't have to explicitly inherit from or extend the protocol. As long as you implement all the methods defined in it, it just works. I hope this will be useful for anyone who is working on DDD with Python.
π2
I will be speaking on Clean Architecture & DDD on Monday at GDG AAU. If any of you guys are interested in the topic, you can join.
β€1
Forwarded from Google Developer Group AAU (Hira)
π GDG AAU Open Lectures:
Weβve all been there: a project starts off great, but as it grows, it becomes a "spaghetti" mess. You change one line of code, and three unrelated things break. Suddenly, adding a simple feature takes weeks because the logic is tangled with the database and the UI.
Join us for the very first GDG AAU #OpenLecturesβa new series of deep-dive technical sessions designed to bridge the gap between academic theory and industry practice.
Topic: #CleanArchitecture & DDD
Speaker: Abenezer Alebachew (Senior CS, AAU)
Key Highlights:
π The Problem: Why codebases rot and how architecture stops it.
π Core Concepts: DDD, Layering, and Dependency Inversion.
π Python Pro-Tip: Using Protocols for Go-style implicit interfaces.
π Practicality: Real backend examples and knowing when to keep it simple.
π Venue: 5Kilo Campus NB 107
π Date: Dec 22, 2025 G.C
π Time: 11:00 LT
Register Now: https://forms.gle/CqwZb4dbbr9HyidFA
Session #01Is your codebase working against you β
Weβve all been there: a project starts off great, but as it grows, it becomes a "spaghetti" mess. You change one line of code, and three unrelated things break. Suddenly, adding a simple feature takes weeks because the logic is tangled with the database and the UI.
Join us for the very first GDG AAU #OpenLecturesβa new series of deep-dive technical sessions designed to bridge the gap between academic theory and industry practice.
Topic: #CleanArchitecture & DDD
Speaker: Abenezer Alebachew (Senior CS, AAU)
Key Highlights:
π The Problem: Why codebases rot and how architecture stops it.
π Core Concepts: DDD, Layering, and Dependency Inversion.
π Python Pro-Tip: Using Protocols for Go-style implicit interfaces.
π Practicality: Real backend examples and knowing when to keep it simple.
π Venue: 5Kilo Campus NB 107
π Date: Dec 22, 2025 G.C
π Time: 11:00 LT
Register Now: https://forms.gle/CqwZb4dbbr9HyidFA
π₯6
For anyone who wants resources from the Clean Architecture lecture I gave, the GDG team has posted them in their group. It was a great session and I want to thank the GDG AAU
team and all who were there for making it possible
team and all who were there for making it possible
Telegram
Google Developer Group AAU
Hello, Google Developer Group is group where students who want to learn about Google's technology can get together. Any student can join. In this clubs, students help each other learn and work on projects for local businesses and their community.
π2
Forwarded from Google Developer Group AAU (Hira)
π Event Update
π GDG AAU Open Lectures: Session #01
Just a quick update from us β big thanks to our guest speaker Abenezer Alebachew for kicking off our very first open lecture session π
On Monday, Dec 22, we hosted Session #01, where the focus was on Clean Architecture and Domain-Driven Design. It was a relaxed session that introduced how these ideas help developers organize codebases in a clean, scalable, and maintainable way.
β¨ Key Highlights:
- What Clean Architecture is and why it matters
- Basics of Domain-Driven Design
- How these concepts apply to real-world projects
- Open discussion and Q&A with the audience
π’ Stay in the loop
If you want access to resources from the session and updates on upcoming open lectures, make sure to
ππΌ JOIN THIS GROUP
And Huge Thank You for everyone who was part of this session, we really hope to see you again, make sure to join the group to get access to all the resources.
β€1π₯1
Forwarded from Samson Endale πͺπΉ
Donβt let the gatekeepers slow your momentum
When someone looks down on you for using frameworks, open source code, or AI agents, remember that true innovation isn't about doing it the hard way β it's about how far you go with the tools you have.
As Carl Sagan famously said:
Unless youβre hand-soldering your own CPU and writing your own binary, weβre all standing on the shoulders of giants.
Donβt get stuck in the "from scratch" trap.
Use the tools. Leverage the tech. Ship the productπ
When someone looks down on you for using frameworks, open source code, or AI agents, remember that true innovation isn't about doing it the hard way β it's about how far you go with the tools you have.
As Carl Sagan famously said:
"If you wish to make an apple pie from scratch, you must first invent the universe."
Unless youβre hand-soldering your own CPU and writing your own binary, weβre all standing on the shoulders of giants.
Donβt get stuck in the "from scratch" trap.
Use the tools. Leverage the tech. Ship the product
Please open Telegram to view this post
VIEW IN TELEGRAM
β€2π1
Forwarded from Samson Endale πͺπΉ
βLetβs take a painful trip down memory lane
βThe year is 2016. I just graduated. My first fulltime salary?
βBut wait ... the dollar hasn't been sleeping either. Thanks to US inflation, that $245 in 2016 is worth about
βIf we take that inflation-adjusted $330 and convert it at todayβs CBE rate of 154 ETB, do you know what we get?
βπ₯ 50,000 ETB. π₯
βThe Conclusion:
To live the exact same lifestyle you had with 5,400 birr in 2016, you need to be earning 50,000 birr in 2026
βLet that sink in
βThe year is 2016. I just graduated. My first fulltime salary?
5,400 ETB. back then, with the rate at 22 ETB/USD, that was a respectable $245βBut wait ... the dollar hasn't been sleeping either. Thanks to US inflation, that $245 in 2016 is worth about
$330 todayβIf we take that inflation-adjusted $330 and convert it at todayβs CBE rate of 154 ETB, do you know what we get?
βπ₯ 50,000 ETB. π₯
βThe Conclusion:
To live the exact same lifestyle you had with 5,400 birr in 2016, you need to be earning 50,000 birr in 2026
βLet that sink in
π3
Interviewing is a very important skill to have as a developer. We need to actively practice for improving our interviewing skills as developers. The way to develop interviewing skills is not just solving questions on Leetcode and calling it a day. Interviewers care about how you communicate, what kind of clarifying questions you ask and the way you break down the problem just as much if not more than your coding skills. So mock interviews are the best way to work that interviewing muscle to improve your confidence while also communicating your solution under time pressure.
I use https://www.tryexponent.com/practice for conducting mock interviews with random people around the world every weekend. I noticed that Indians are the most active on the platform and I realized why they are getting much more opportunities in the international job market compared to any other country. I have conducted 9 mock interviews on the platform as of yet and 8 of them were with Indians.
If we want to get great opportunities in the international job market, being able to do the job is not enough. We first need to get our feet in the door. After all, we can't do the job, if we are not offered the job right?π
Let's focus on skills that get us the job just as much us the skills that allow us to be useful once we get the job.
I use https://www.tryexponent.com/practice for conducting mock interviews with random people around the world every weekend. I noticed that Indians are the most active on the platform and I realized why they are getting much more opportunities in the international job market compared to any other country. I have conducted 9 mock interviews on the platform as of yet and 8 of them were with Indians.
If we want to get great opportunities in the international job market, being able to do the job is not enough. We first need to get our feet in the door. After all, we can't do the job, if we are not offered the job right?π
Let's focus on skills that get us the job just as much us the skills that allow us to be useful once we get the job.
Exponent
Mock Interviews: Improve Your Skills By Practicing with Peers and AI - Exponent
Prepare with live mock interviews with thousands of tech professionals.
Get feedback from our AI interviewer while you practice real interview
questions.
Get feedback from our AI interviewer while you practice real interview
questions.
β€2