Latest Insights
Explore our curated collection of cross-shared social media posts on software engineering and development.
I've got the Upwork's Top Rated Plus Badge!
Finally, it's happening... I never expected to get the top-rated-plus badge when I got started at Upwork
I didn't get that encouraging email from Upwork though...
Finally, i'm a Software Engineer
I'm finally a certified software engineer!
Just got my masters and graduation certificates after submitting my two thesises.
My graduation thesis was titled:
Leveraging @GeminiApp and BERT for automated IMRAD classification: A novel dataset and SaaS Platform.
My master thesis was titled:
Leveraging BERT and data augmentation for robut classification of IMRAD sections in research papers.
Mac vs Windows for Web and Mobile Development: My Journey to the M1 MacBook Pro
Mac or Windows which one is better for web/mobile development?
I've been a PC user for my entire life basically starting from my childhood when I've been extensively playing MMORPG games to the current time as an under graduate software engineer.
for the past two years, I've been freelancing, studying, and working on my final-year projects in parallel.
I worked on many cool projects mainly using Nextjs, @nestframework , express, @laravelphp with a blade, and Laravel with inertia...
Currently, I'm single-handedly working on my graduation project which is a full functional Saas platform with AI and microservices while doing some freelancing tasks in parallel.
I've been using vscode with the Vim extension enabled.
I'm running different types of microservices in parallel:
-
@nextjs microservices ( the dev server eats more than 1GB RAM alone ) which is responsible for the frontend, authentication & authorization, and handling subscriptions with stripe.
-
Express microservice which is responsible for managing user data and ai generated predictions.
-
Tensorflow/serving image: to expose my custom-based AI models in an optimized way
-
@FastAPI microservice which communicates with the TensorFlow serving image and Gemini API to handle all Ai-related tasks.
-
Fast API pdf extractor microservice which is responsible on parsing a pdf and extracting the introduction part from a research paper.
-
Spring Cloud eureka server: handle microservices instances registrations.
-
Nginx as an API gateway.
The windows experience was smooth initially i rarly had system total freezing issues but sometimes the screen freezes for some time.
After some struggle, I decided to switch to Linux again find a cool Neovim config, and import my vscode vim keybindings into it.
I found a cool config here: https://github.com/nikolovlazar/dotfiles when I was watching a the clean architecture series published by https://youtube.com/@NikolovLazar .
I also learned Tmux ( a big saver for someone working with microservices and gets annoyed by constantly switching between microservices using his mouse) and decided to install Kitty terminal for fast GPU rendering.
I had so much fun until my 16 GB RAM i7 CPU PC started slowing down again. I was using Linux Mint as a distro, it's a really lightweight distribution but it has a lot of stability issues for example when my system freezes it do not respond until I restart it again.
I kept working and restarting my pc anyway and completed the whole platform and ignored that. In my graduation project I had to prepare for 2 presentations and a live demo.
So I decided to cease this chance to shoot my first ever YouTube video with both my voice and webcam.
I started playing around with a screen recording software called Obs Studio. I trained myself for my presentations ( my voice, way of speaking, and confidence) I wanted to break that introvert barrier and shoot my first YouTube video before my graduation.
I stumbled upon a cool software called @screenstudio and oh man I was really hyped to try it out. it's recording your screen and webcam and automatically adds animations, fancy cursor movements and animations, and a lot of other cool stuff.
When I tried to download @screenstudio . I've found that it's a software which is built and optimized for Mac.
That was a +50 points to my desire to buy a new mac and benefit from the cool ecosystem around it.
I like the stability and GUI of Windows and the flexibility of Linux especially for low-level languages like C or Rust and for Python libraries which are compiled into a low-level language. So what's the only operating system that combines all of this? The answer is MacOs.
I ordered a new Macbook m1 Pro from an Algerian reseller ( as we don't have any apple centers in Algeria).
Will retrieve it today and share my experiences about it after that.
If I had time I might shoot a review video using @screenstudio as well :).
5 microservices, 5 docker containers, and 4 Fine-tuned AI models were exposed via TensorFlow serving and fast API.
All running in parallel without a single sign of slowness and instability.
Goodbye PC, I'm pretty happy with my new m1 Mac, I'm now officially an Apple fanboy.
Missing TypeScript
They say you can't understand the value of something until you lose it.
i'm working on a project without typescript Inference. i'm really starting to miss my autocompletes on my own objects , maybe I should give js doc a try.
Why You Shouldn’t Use Email as a Foreign Key: A Case for Integer IDs in Database Design
While watching a youtube video with a pretty high number of views i noticed that the instructor was using the email field as a foreign key to reference the users table.
You may say that it's fine the email field is unique and it make sense to use it as a primary key.
Or if i introduced an argument like string comparison is slower than int comparison you may say that it still fine to do so because generally we use uuid for security & scalability reasons
Well yeah but imagine that you are in a scenario were your app has 114 tables referencing the user table.
Then a user decided to update his email , imagine how inefficient that will be!