Coding is not Enough
For someone to be successful as a Software Engineer, the current market demands other things in addition to coding. Most people focus on their coding skills when they try to grow in their career as a Software Engineer. Although coding is a great skill to have, in today's market, it is not the most important one. The AI models that exist today can write good code as long as they are properly guided in the right direction. The following skills are great to focus on moving forward.
1. Architecture
Architecting systems for performance, scalability, security, and user experience is a very important skill to develop. Anytime we think of building a project, we should first think of the architecture. Planning should take most of our time rather than coding. We should not start coding unless we know exactly what we are going to do, at least at a high level.
2. Tools and Technologies
There are many tools and technologies out there that make our lives easier as Software Engineers. We should read about these tools and understand them. Understanding the tools and technologies we use would help us make decisions about which tool or technology aligns more with our goals whenever we plan our projects.
3. Communication and Collaboration
As Software Engineers, we have to communicate and collaborate with clients, managers, designers, and cross-functional team members. For this communication to be effective, we have to improve our skills of speaking and writing clearly in a way that is unambiguous. We should learn to explain technical things to non-technical people in a way they can understand. We should learn to write clear documentation that is very easy for our team members to understand. We should also learn to ask questions whenever we don't understand something. We should avoid assumptions and communicate clearly.
I would love to hear your thoughts on whether there is anything I missed or if there is anything you want to add.
For someone to be successful as a Software Engineer, the current market demands other things in addition to coding. Most people focus on their coding skills when they try to grow in their career as a Software Engineer. Although coding is a great skill to have, in today's market, it is not the most important one. The AI models that exist today can write good code as long as they are properly guided in the right direction. The following skills are great to focus on moving forward.
1. Architecture
Architecting systems for performance, scalability, security, and user experience is a very important skill to develop. Anytime we think of building a project, we should first think of the architecture. Planning should take most of our time rather than coding. We should not start coding unless we know exactly what we are going to do, at least at a high level.
2. Tools and Technologies
There are many tools and technologies out there that make our lives easier as Software Engineers. We should read about these tools and understand them. Understanding the tools and technologies we use would help us make decisions about which tool or technology aligns more with our goals whenever we plan our projects.
3. Communication and Collaboration
As Software Engineers, we have to communicate and collaborate with clients, managers, designers, and cross-functional team members. For this communication to be effective, we have to improve our skills of speaking and writing clearly in a way that is unambiguous. We should learn to explain technical things to non-technical people in a way they can understand. We should learn to write clear documentation that is very easy for our team members to understand. We should also learn to ask questions whenever we don't understand something. We should avoid assumptions and communicate clearly.
I would love to hear your thoughts on whether there is anything I missed or if there is anything you want to add.
👍4❤1
Forwarded from Mira
came across this service which provides thousands of models just for free with unified single API just like the vercel ai-sdk. downside: only 1 concurrent request, but no restriction on usage, and tbh fast inference given that you got unlimited requests. you can access 141k models (including gpt 4.1 and many multimodals) on the free tier. they got both python and js sdk. cool stuff to experiment with
models: https://bytez.com/models
docs: https://docs.bytez.com/model-api/docs/welcome
#resources
models: https://bytez.com/models
docs: https://docs.bytez.com/model-api/docs/welcome
#resources
Bytez
Bytez - open source AI
Keep up with AI. Discover, demo, and deploy open source models
❤2
https://www.linkedin.com/posts/a2sv_a2sv-education-generation7-activity-7388960222482079744-6DrE?utm_source=share&utm_medium=member_desktop&rcm=ACoAAD7wiqoB3AP7D1_JY_SDhbFUN4lWRrmeKDI
For anyone who is interested A2SV has opened the G7 applications phase
For anyone who is interested A2SV has opened the G7 applications phase
Linkedin
#a2sv #education #generation7 #toptech #applicationsareopen #softwareengineering #africatech | A2SV | Africa to Silicon Valley
Are you an African who dreams of building Google-level software engineering skills?
Applications are now open for A2SV G7 Education!
This is your moment to learn, grow, and prepare for the top tech companies you’ve always aspired to join.
At A2SV Education…
Applications are now open for A2SV G7 Education!
This is your moment to learn, grow, and prepare for the top tech companies you’ve always aspired to join.
At A2SV Education…
👍1
If you want a simple LLM framework that allows you to build AI workflows and agents, here is one I recently found:
https://github.com/The-Pocket/PocketFlow
The framework itself is literally just 100 lines of code. And the repo contains links to a great tutorial video and a link to their docs.
It even has a .cursor_rules directory which explains the framework and how to use it to your coding AI agent. I hope you'll find it useful.
https://github.com/The-Pocket/PocketFlow
The framework itself is literally just 100 lines of code. And the repo contains links to a great tutorial video and a link to their docs.
It even has a .cursor_rules directory which explains the framework and how to use it to your coding AI agent. I hope you'll find it useful.
GitHub
GitHub - The-Pocket/PocketFlow: Pocket Flow: 100-line LLM framework. Let Agents build Agents!
Pocket Flow: 100-line LLM framework. Let Agents build Agents! - The-Pocket/PocketFlow
❤1
Forwarded from SeeFun.Dev (Sifen Fisaha)
So basically, let’s start from what authentication is…
Authentication simply means verifying or proving the identity of a user before giving them access to a resource.
In the real world, it’s like showing your ID card when entering a restricted place like a university. The gatekeeper checks two things:
If the ID is valid and issued by the university.
If it’s not expired meaning it’s still active.
If both are true, you’re allowed to enter.
Now, in the digital world, this same idea applies but digitally. There are many ways to authenticate users, and the two most common ones are Session-based authentication and JWT (JSON Web Token) authentication.
Let’s talk about JWT, since it’s one of the easiest to implement.
In any digital product, there are two main sides:
- The Client (the browser or app that users interact with).
- The Server (where we store all our data — posts, images, user info, etc.).
Let’s imagine a social media website.
When someone wants to post, like, or edit something, we need to know who the user is so others can’t edit or delete someone else’s posts. That’s where authentication comes in.
So, how do we verify a user’s identity?
👉 We use JWT Authentication.
JWT stands for JSON Web Token it’s basically a digital ID in the form of a long string that holds user information (like ID, username, and expiration time).
Here’s how it works step by step:
When a user signs up, they enter an email and password.
We save those details in our database on the server.
When they log in, we check if the email exists and if the password matches.
If it’s valid, we generate a JWT token containing the user’s info (like ID and username).
We then encrypt this token using a secret key and send it to the client.
This makes sure only we (the server) can read and verify it later.
Whenever the client makes a request (like fetching their posts), they send this token along with it.
The server decrypts the token using the secret key and:
- Checks if it’s valid.
- Checks if it’s expired.
If all is good, it uses the user’s ID from the token to fetch and return their specific data.
And that’s the basic idea of JWT Authentication a safe and efficient way to verify users and control access in modern web apps
@sifendev
Authentication simply means verifying or proving the identity of a user before giving them access to a resource.
In the real world, it’s like showing your ID card when entering a restricted place like a university. The gatekeeper checks two things:
If the ID is valid and issued by the university.
If it’s not expired meaning it’s still active.
If both are true, you’re allowed to enter.
Now, in the digital world, this same idea applies but digitally. There are many ways to authenticate users, and the two most common ones are Session-based authentication and JWT (JSON Web Token) authentication.
Let’s talk about JWT, since it’s one of the easiest to implement.
In any digital product, there are two main sides:
- The Client (the browser or app that users interact with).
- The Server (where we store all our data — posts, images, user info, etc.).
Let’s imagine a social media website.
When someone wants to post, like, or edit something, we need to know who the user is so others can’t edit or delete someone else’s posts. That’s where authentication comes in.
So, how do we verify a user’s identity?
👉 We use JWT Authentication.
JWT stands for JSON Web Token it’s basically a digital ID in the form of a long string that holds user information (like ID, username, and expiration time).
Here’s how it works step by step:
When a user signs up, they enter an email and password.
We save those details in our database on the server.
When they log in, we check if the email exists and if the password matches.
If it’s valid, we generate a JWT token containing the user’s info (like ID and username).
We then encrypt this token using a secret key and send it to the client.
This makes sure only we (the server) can read and verify it later.
Whenever the client makes a request (like fetching their posts), they send this token along with it.
The server decrypts the token using the secret key and:
- Checks if it’s valid.
- Checks if it’s expired.
If all is good, it uses the user’s ID from the token to fetch and return their specific data.
And that’s the basic idea of JWT Authentication a safe and efficient way to verify users and control access in modern web apps
@sifendev
❤4
Whenever you are doubting whether to use pointers or values in Go, default to values. Using values is simpler, and it is easier to switch to pointers in the future. It is also easier to reason about. However, there are some clear signs to indicate when to use one or the other.
Use values when
1. You are working with primitive data types and small structs that do not require modification
2. If you want to prevent data manipulation during compile time
Use pointers when
1. You are working with big structs
2. Your struct requires modification
3. If one of your methods accepts a pointer, use pointers for all others for consistency.
Use values when
1. You are working with primitive data types and small structs that do not require modification
2. If you want to prevent data manipulation during compile time
Use pointers when
1. You are working with big structs
2. Your struct requires modification
3. If one of your methods accepts a pointer, use pointers for all others for consistency.
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