API design

This post serves as a walkthrough for noebs sdks. Noebs is an open source payment gateway with large support and adoption from many corporations in Sudan. Our goal is to make payments secure and simple, and we want to do that super fast. To this end, we started rolling out our sdks. SDKs are fancy way of saying libraries, a code that others can import to interact with our services. Noebs sdk is derived from our code, and it is being used in prod for a while now....

January 15, 2021

what is an api

So essentially your mobile is somewhere, with an ip address right? And we are pretty much familiar with ip addresses, domain names and stuff, we type in google.com and we are welcomed with google search, and so on. This process is technically called http request. Http cause is the protocol that was used to make the request happens, protocol is really just a fancy way of saying “hey dude, umm can you tell me how are you going to send me your bytes”–everythying is a byte....

January 9, 2021

The non-achievers

So it is a new year, huh? You suddenly find your friends achieving really cool things and you feel like you have not done any thing. This post is for you, for US. I don’t think life is a discrete function, and treating it that way might be the source of this optimizing for dopamine. Success is not linear, in the journey of your life you will have far more failures than your successes....

December 31, 2020

EEBAx: History

I surprisingly had a few jobs in my career. Beside my own startup, i only worked to Ashrafcom. EEBAx was my first startup that i build with Mohamed Jaafar, https://eebax.com. I’m going to go back to ~ 2013 and how it all started. This website was made by Mohamed Jaafar (the one on the left, obviously 😂), in 2015. In 2014, i had the shortest conversation with Mohamed. I told him i don’t think i can fit into Surveying and I want to shift career to software, in a professional way....

December 25, 2020

Capitalism, software and burnout

Or really, publish or perish. Let’s set the stage for this: you don’t have to learn a new thing every day. You don’t have to produce a fancy thing every day and you definitely don’t have to be at your best every day. People are humans, and humans by nature have their ups and downs. Chill, take some time off. Enjoy the little things, get away from your laptop. You are not a robot....

December 21, 2020

Communications ettiqute

Text based communication is far more difficult than verbal one. Context is mostly missing, and conversations can get heated faster than in verbal ones. It makes sense to suggest readers to always assume the best intent and be explicit and ask if they didn’t get the intent. But I want also to focus on the writer part. How do you communicate with text in ways that is clear and not rude to your readers....

December 18, 2020

Building against interfaces

This post discusses technical details

November 24, 2020

What are you testing

Testing in EBS Ultimately security tests in EBS are meant to assess PCI compliance of an organization, to this end, PCI DSS requirements are: Install a firewall Change all default passwords on network-connected devices Protect stored cardholder data via encryption, hashing, or other data protection methods Encrypt cardholder data in transit Install malware protection Patch vulnerabilities in all systems and applications Restrict access to cardholder data to authorized personnel Control and restrict system access Control and restrict physical access to cardholder data Monitor access to data Test security systems regularly Maintain an information security policy Let us go through them one by one, they are not that hard eh?...

November 10, 2020

Values and pointers: What could possibly go wrong?

This post highlights a weird and expected behavior we encountered while using Go’s encoding/json library. In go, we pass by value, that really means this: type User struct { Name string } func changeMe(u User) { u.Name = "New Name" } func main(){ u := User{Name: "mohamed"} changeMe(u) log.Printf("The user is: %s", u.Name) // mohamed } To change by value, we must pass a pointer, we can change the code to be something like this:...

October 30, 2020

9-5

I have not written any post recently (4 months since my breakup post). I want to use this article to discuss some of the ideas i have about “work”, and by work i mean professional work. I won’t be citing anything (at least for now since i’m using this post to get away from working so yeah), so take everything here with a hugge grain of salt. Corona has changed a lot and many of big software companies have moved to a permanent remote work setup....

September 4, 2020