# Sajjad Arif Gul - Full Professional Context
> Senior .NET Software Engineer based in Jeddah, Saudi Arabia. Sajjad builds enterprise software, AI-powered applications, APIs, and distributed systems with ASP.NET Core, C#, React, and modern AI tooling. He is open to senior software engineer, staff / lead engineer, AI engineer, and technical consultant roles.
## Key Info
- **Name:** Sajjad Arif Gul
- **Alternate Name:** Sajjad Gul
- **Role:** Senior .NET Software Engineer
- **Location:** Jeddah, Saudi Arabia
- **Availability:** Open to onsite opportunities in Jeddah, Saudi Arabia. Remote considered based on role and compensation.
- **Work Authorization:** Transferable Iqama
- **Notice Period:** 30-60 days
- **Languages:** English, Urdu, Pashto, Arabic (Conversational)
- **Email:** sajjadarifgul@gmail.com
- **Phone:** +966 53 481 5457
- **LinkedIn:** [LinkedIn](https://linkedin.com/in/sajjadarifgul)
- **GitHub:** [GitHub](https://github.com/SajjadArifGul)
- **Resume PDF:** https://sajjadgul.com/cv/Sajjad-Arif-Gul-Resume.pdf
- **Personal Website:** [sajjadgul.com](https://sajjadgul.com)
## Executive Summary
Sajjad Arif Gul is a Senior .NET Software Engineer based in Jeddah, Saudi Arabia with more than 10 years of experience building enterprise software, financial platforms, AI-powered applications, APIs and distributed backend systems.
His expertise spans ASP.NET Core, C#, React, AI engineering, Retrieval-Augmented Generation (RAG), enterprise architecture and technical leadership.
He has delivered software for universities, financial institutions, ERP vendors and commercial software products used by thousands of users across Saudi Arabia and internationally.
He has shipped 100+ production releases, built systems serving 5,000+ users, and achieved 700+ sales of commercial web products on Envato CodeCanyon (powering client websites).
## What Sajjad is known for:
- Enterprise .NET Architecture
- Backend Engineering
- Technical Leadership
- AI Product Development
- Production RAG Systems
- ASP.NET Core APIs
- System Design
- React Applications
- Legacy Modernization
- ERP Development
- Payment Gateway Integration
- Digital Transformation
- Software Consulting
- AI Integration
## Skills used professionally in production:
### Backend Engineering
Designing scalable enterprise .NET backend systems with a focus on performance, maintainability and long-term evolution.
**Tags:** C#, .NET, ASP.NET Core, ASP.NET MVC, REST APIs, Microservices, System Design, Clean Architecture, Dependency Injection, EF Core, Dapper, Authentication, Authorization, JWT, SignalR, Background Services, Third-Party Integrations
### Frontend Engineering
Developing TypeScript-based frontends with React and Vite for enterprise and AI-driven applications.
**Tags:** React, TypeScript, JavaScript, HTML5, CSS3, Tailwind CSS, Bootstrap, Astro, Vue, Vite
### Databases
Database design, SQL performance optimization, caching strategies, and data modeling for high-load systems.
**Tags:** SQL Server, Oracle, MySQL, SQLite, Redis
### Payment Integration
Integrating secure, robust and compliant payment gateways for local and international transactions.
**Tags:** HyperPay, Amazon Payment Services (PayFort), Authorize.Net, Al Rajhi BPG, KuPay
### AI Engineering
Engineering production-ready AI applications with LLMs, RAG and agentic workflows using provider-agnostic architectures.
**Tags:** LLM Integration & Development, OpenAI, DeepSeek, Ollama, Retrieval-Augmented Generation (RAG), Semantic Search, Vector Databases, AI Agents, Model Context Protocol (MCP), Function Calling, Prompt Engineering
### Engineering Workflow
Collaborative engineering practices including version control, CI/CD, code reviews and automated delivery.
**Tags:** Git, GitHub, GitHub Actions, Jenkins, CI/CD, Agile, Code Reviews, Technical Mentoring
## Why Companies Hire Sajjad
- Delivers enterprise software from architecture to production.
- Bridges traditional .NET engineering with modern AI.
- Experienced in fintech, higher education and ERP platforms.
- Strong backend engineering and API architecture.
- Proven technical leadership and mentoring.
- Successfully modernizes legacy enterprise systems.
- Designs production-ready AI applications using RAG and LLMs.
## Sajjad's Work History (Detailed Experience)
### Senior Software Engineer (Enterprise Applications & AI)
**Company:** University of Business and Technology (UBT) (https://www.ubt.edu.sa)
**Period:** Oct 2023 - Present
**Location:** Jeddah, Saudi Arabia | **Type:** Full-time - On-site
*Company Context: A leading private higher education institution located in Jeddah, Saudi Arabia.*
**Responsibilities:**
- Design, develop, and maintain enterprise applications supporting more than 5,000 students, faculty, and administrative staff.
- Lead code reviews, onboard new engineers, and mentor junior developers to improve code quality and engineering practices.
**Key Achievements:**
- Independently architected [APCG 2026](https://apcg2026-saudiarabia.org/)'s full digital platform - conference website (React/TypeScript), OpenConf paper submission, registration, PayFort payments, and digital ID generation - supporting 1,000+ attendees from 40+ countries at the 19th Asia Pacific Conference on Giftedness.
- Designed and delivered UBT's digital certificate issuance platform, automating certificate generation, approval workflows, and digital signing while replacing a manual process. Leveraged AI-assisted development tools (Cursor and Claude Code) to accelerate delivery.
- Developed 30+ secure ASP.NET Core REST APIs powering the MyUBT mobile application for academic services.
- Modernized 8 legacy applications by migrating critical modules to ASP.NET Core, improving performance, maintainability, and long-term support.
- Migrated 60+ repositories from TFS and local servers to GitHub, modernizing source control and improving team collaboration.
- Awarded a Certificate of Appreciation from the UBT President for exceptional contributions to UBT's digital transformation.
**Technologies Used:** .NET, C#, ASP.NET Core, Oracle, SQL Server, React, TypeScript, Tailwind, Vite, Visual Studio, VS Code/Claude Code/Cursor, Git/GitHub, Asana, Postman
### Senior Software Engineer
**Company:** Inventor Tech (https://www.inventortechinfo.com)
**Period:** Mar 2023 - Jul 2025
**Location:** Jeddah, Saudi Arabia | **Type:** Part-time (Concurrent with full-time role at UBT) - Remote
*Company Context: A technology solutions firm specializing in software consulting and development services.*
**Key Achievements:**
- Led the modernization of the company's flagship Visual Basic WinForms ERP, re-architecting and rebuilding it as a modern ASP.NET Core web application with browser-based access and improved long-term maintainability.
- Implemented new ERP modules for a web-based ASP.NET Core platform supporting more than 1,200 paying customer organizations.
- Built a customer support and ticketing platform featuring workflow automation, role-based access control (RBAC), and reporting dashboards.
- Introduced modern .NET engineering practices - including Clean Architecture, Repository Pattern, and Dependency Injection - to improve maintainability, consistency, and long-term extensibility across the ERP platform.
**Technologies Used:** ASP.NET Core, C#, RESTful API, SQL Server, Workflow Automation, ERP Systems
### Senior Software Engineer | Web Team Lead
**Company:** Argaam (https://www.argaam.com)
**Period:** Jul 2018 - Oct 2023
**Location:** Riyadh, Saudi Arabia | **Type:** Full-time - Remote (Previously On-site)
*Company Context: Saudi Arabia's leading financial market intelligence and business news platform.*
**Responsibilities:**
- Built scalable backend services and REST APIs powering Argaam's financial platform and products.
- Led a team of five software engineers through mentoring, code reviews, architecture discussions, and technical planning to improve engineering quality.
- Collaborated with product managers and business stakeholders to translate complex financial workflows into reliable software solutions.
**Key Achievements:**
- Architected and led development of Argaam's Data API platform comprising more than 120 REST endpoints, powering internal systems, partner integrations, and customer-facing financial applications serving thousands of investors across Saudi Arabia and the GCC.
- Led development of Argaam Charts, transforming large-scale financial and economic datasets into interactive visualizations for investors and analysts.
- Redesigned the IPO and Mergers & Acquisitions (M&A) reporting systems, improving maintainability and expanding financial market coverage.
- Led major enhancements to Argaam Subscriptions, improving the subscription checkout experience and reducing support tickets.
- Developed Argaam Polls, enabling investor engagement through real-time polling and voting features.
- Led the migration from TortoiseSVN to GitHub, modernizing source control workflows and enabling CI/CD.
**Technologies Used:** .NET Core, ASP .NET MVC, C#, SQL Server, RESTful APIs, Microservices, Postman, Git/Github, YouTrack, Jenkins, Fintech Systems
### Software Engineer
**Company:** Danat FZ LLC (Argaam Contractor)
**Period:** Dec 2016 - Jul 2018
**Location:** Karachi, Pakistan | **Type:** Full-time - On-site
*Company Context: A contractor group based in Dubai, UAE, delivering tech development and infrastructure for Argaam's financial platform.*
**Key Achievements:**
- Developed and maintained business-critical financial market applications for Argaam while employed by Danat, Argaam's outsourced software development partner. Transitioned to Argaam as a direct employee in July 2018.
- Played a key role in developing Argaam Tools, a suite of analytical dashboards, financial calculators, and data aggregation services used by executives, analysts, and investors.
- Implemented Lableb Search into Argaam, enhancing the search experience for Arabic and English users across the website.
- Integrated multiple payment gateways - HyperPay, Al Rajhi Bank BPG, Authorize.Net, and KUPay - to support secure online subscription payments.
- Optimized backend data procedures to improve data accuracy and speed for high-traffic financial services.
- Promoted to Senior Software Engineer, Argaam (Jul 2018)
**Technologies Used:** ASP.NET MVC, C#, SQL Server, Web APIs, Data Processing, Payment Gateway Integration, JavaScript/jQuery, Bootstrap CSS
### .NET Web Developer
**Company:** ComSouls Technologies (https://comsoulstech.com)
**Period:** Feb 2016 - Nov 2016
**Location:** Karachi, Pakistan | **Type:** Full-time - On-site
*Company Context: A technology engineering firm delivering custom software and web solutions.*
**Key Achievements:**
- Developed ASP.NET MVC web applications and REST APIs for clients across education, retail, and customer service domains.
- Contributed to the development of client web applications including Tutor Finder, Pakimandi, MartX, and ComplaintMS.
**Technologies Used:** ASP.NET MVC, C#, SQL Server, JavaScript, HTML5/CSS3, REST APIs
### Founder - Freelance Web Developer
**Company:** Website Developers Pakistan
**Period:** Dec 2015 - Dec 2018
**Location:** Karachi, Pakistan | **Type:** Freelance - On-site
*Company Context: A freelance software development and engineering agency founded by Sajjad.*
**Key Achievements:**
- Founded and grew a digital company delivering custom web solutions to businesses across Pakistan, initially alongside full-time roles and university studies, later as an ongoing venture.
- Delivered commercial projects covering e-commerce, custom CMS, educational platforms, and corporate portals.
- Boosted client search visibility through technical SEO implementation, achieving first-page Google rankings for multiple client sites.
**Technologies Used:** Web Development, PHP, WordPress, WooCommerce, Technical SEO, CPanel, Cloudflare, Hosting/Domains, SSL
## Detailed Case Studies of Projects Built By Sajjad
### sajjad.ai
- **URL:** [sajjad.ai/projects/sajjad-ai](https://sajjadgul.com/projects/sajjad-ai/)
- **Link:** [Launch sajjad.ai](https://sajjad.ai)
- **Role:** Solo architect & full-stack engineer
- **Timeline:** 2025-07 - present
- **Stack:** .NET Core 8, ASP.NET Web APIs, React (TypeScript), OpenAI API, DeepSeek API, Ollama (Local LLMs), RAG Architecture, Vector DB, Clean Architecture
**Summary:** An end-to-end, multi-lingual (English, Arabic, Urdu) AI-driven platform built from scratch.
**Context:**
A personal product to explore production AI engineering end to end: a multi-lingual assistant that can chat, reason over uploaded documents, and generate code or content - without leaning on a single model vendor.
**Challenge:**
Most AI apps lock into one provider, leave latency and cost unmanaged, and treat retrieval as an afterthought.
I wanted a system that could switch between hosted and local models, ground answers in user documents, and serve English, Arabic, and Urdu cleanly - including right-to-left layouts.
**Approach:**
- Built a Clean Architecture .NET Core 8 backend with a provider-agnostic abstraction over OpenAI, DeepSeek, and local Ollama models.
- Implemented a Retrieval-Augmented Generation pipeline: document ingestion, chunking, embeddings, and a vector database for semantic search to ground responses.
- Designed a React (TypeScript) frontend with streaming responses, conversation history, and full RTL support for Arabic and Urdu.
**Outcomes:**
- A working multi-lingual platform handling real-time chat, document Q&A, and code generation.
- Provider switching keeps responses resilient and cost-aware, with local Ollama as a fallback.
- Serves as a reference implementation for the production AI patterns I bring to client and employer work.
### APCG2026 Conference Platform
- **URL:** [sajjad.ai/projects/apcg2026](https://sajjadgul.com/projects/apcg2026/)
- **Link:** [Conference Website](https://apcg2026-saudiarabia.org/)
- **Link:** [Arab News Coverage](https://www.arabnews.com/node/2631453/corporate-and-sponsored-content)
- **Link:** [SPA Press Release](https://www.spa.gov.sa/en/N2508681)
- **Role:** Technical lead & full-stack engineer
- **Timeline:** 2026-02
- **Stack:** React / Vite, .NET Core APIs, OpenConf, Amazon Payfort, Tailwind CSS, SQL Server
**Summary:** Digital infrastructure for the 19th Asia Pacific Conference on Giftedness at UBT.
**Context:**
The University of Business and Technology (UBT) hosted the 19th Asia Pacific Conference on Giftedness (APCG2026) in Jeddah under the patronage of the Minister of Education. The event required a complete, highly secure digital backbone to coordinate paper submissions, peer reviews, attendee registrations, and global payment processing on a fixed conference timeline.
**Challenge:**
Coordinating a complex academic review workflow alongside a public-facing attendee registration experience.
Handling secure, multi-currency credit card transactions from global attendees reliably.
Accelerating the development and styling of highly polished, responsive layouts under strict deadline constraints.
**Approach:**
- Adopted OpenConf to manage the academic paper submission and peer-review processes, integrating it with custom .NET Core APIs for registration data flow.
- Implemented Amazon Payfort SDK to handle global payments with 3D Secure verification, ensuring compliance and transaction reliability.
- Built a modern, highly responsive frontend using React and Vite, utilizing Cursor, Gemini, and v0 by Vercel to speed up design and component development.
- Conducted performance and load testing on administrative registration portals to ensure stability under peak concurrent traffic.
**Outcomes:**
- Successfully supported submissions, program scheduling, and registrations for over 1,000 global delegates from 40+ countries without downtime.
- Processed global credit card transactions securely with zero payment failures or auditing errors.
- Awarded a Certificate of Appreciation by the President of UBT for outstanding contribution to the university's digital transformation initiatives.
- Established a reusable .NET/React software template for hosting future academic and corporate conferences at UBT.
### Argaam Data APIs
- **URL:** [sajjad.ai/projects/argaam-data-apis](https://sajjadgul.com/projects/argaam-data-apis/)
- **Role:** Senior software engineer & team lead
- **Timeline:** 2018 - 2023
- **Stack:** C#, ASP.NET Web APIs, SQL Server, Redis
**Summary:** A suite of 120+ data API endpoints powering financial tools for C-level executives and investors.
**Context:**
Argaam is a leading source of financial market data in the Gulf. C-level executives and investors needed fast, reliable programmatic access to market, IPO, and M&A data.
**Challenge:**
Serve large volumes of financial data to demanding investor-facing products with low latency and high reliability across 120+ endpoints.
**Approach:**
- Led a team to design and build Argaam Tools and the Argaam Data APIs on .NET Web APIs.
- Used Redis caching and tuned SQL Server queries to keep response times low under load.
- Redesigned IPO and Mergers & Acquisitions reporting services and shipped the Argaam Subscriptions system.
**Outcomes:**
- 120+ data API endpoints powering tools used by C-level executives and investors.
- Recognised as Employee of the Year (2021) for engineering leadership during this period.
### CodeCanyon Commercial Scripts
- **URL:** [sajjad.ai/projects/codecanyon-scripts](https://sajjadgul.com/projects/codecanyon-scripts/)
- **Link:** [View CodeCanyon shop](https://codecanyon.net/user/sajjadarifgul)
- **Role:** Solo developer & product owner
- **Timeline:** Ongoing
- **Stack:** ASP.NET, JavaScript, SQL Server
**Summary:** Personal commercial web projects and scripts sold 700+ times on Envato CodeCanyon.
**Context:**
A long-running track of building and selling self-contained commercial web scripts on Envato CodeCanyon to a global customer base.
**Challenge:**
Ship polished, well-documented products as a solo developer - and support real paying customers across many environments.
**Approach:**
- Designed, built, documented, and maintained each product end to end.
- Handled customer support, updates, and compatibility across ASP.NET and Web stacks.
**Outcomes:**
- 700+ sales across commercial scripts on Envato CodeCanyon.
- Years of direct experience owning products and customer relationships, not just code.
## Detailed Achievements & Recognition
- **AI Product Launch - sajjad.ai** (Jul 2025): Designed, built, and launched sajjad.ai, a multilingual AI platform integrating OpenAI, DeepSeek, and Ollama with document RAG, semantic search, AI agents, and real-time chat. ([Link](https://sajjad.ai/))
- **Certificate of Appreciation - UBT President** (Feb 2025): Awarded a Certificate of Appreciation by the President of UBT for outstanding contributions to the university's digital transformation initiatives. ([Link](https://sajjadgul.com/blog/ubt-certificate-appreciation/))
- **Financial Data API Platform - Argaam** (Feb 2023): Built the foundational API platform that enabled partner integrations and powered multiple investor-facing financial products across Argaam's ecosystem, serving thousands of investors across Saudi Arabia and the GCC. ([Link](https://sajjadgul.com/projects/argaam-data-apis/))
- **Employee of the Year - Argaam** (Feb 2022): Awarded Employee of the Year 2021 for engineering excellence and leadership while working remotely during the COVID-19 period. ([Link](https://sajjadgul.com/blog/employee-of-the-year-argaam/))
- **700+ Software Product Sales on CodeCanyon** (Ongoing): Designed, developed, and commercially sold web applications and developer tools, achieving more than 700 product sales through Envato CodeCanyon. ([Link](https://codecanyon.net/user/sajjadarifgul))
## Detailed Education & Certifications
### BSc. Software Engineering - Bahria University, Karachi, Pakistan
*Sep 2012 - Jun 2016*
Bachelor's degree in Software Engineering from one of Pakistan's leading engineering universities, establishing strong foundations in software architecture, object-oriented programming, database systems and software engineering principles.
**Certifications:**
- ChatGPT Prompt Engineering for Developers (issued by DeepLearning.AI, 2024)
**Currently deepening expertise in:**
- Large Language Models
- AI Agents & MCP
- Retrieval-Augmented Generation (RAG)
- System Design
- Distributed Systems
- Clean Architecture
## Professional References & Testimonials
> "Sajjad was the driving force behind our digital transformation at UBT. From modernizing legacy applications to delivering the APCG2026 conference platform end-to-end, he consistently showed strong technical leadership and ownership. He's a rare engineer who combines architecture thinking with fast, hands-on execution."
> - **Hamid Anjum**, Head of Software Development at UBT
> "Over the years we worked together, Sajjad grew from a strong individual contributor into a dependable technical leader. His ownership of our API platform, subscriptions system, and financial reporting tools had a lasting impact on our engineering org. He delivered under pressure and could be trusted with our most complex products."
> - **Omer Khan**, Software Development Manager at Argaam
> "Sajjad played a key role in introducing AI-assisted development to our engineering workflows. His practical grasp of LLMs, paired with solid enterprise experience, helped us adopt tools that genuinely improved developer productivity and sped up delivery. He bridged cutting-edge AI with stable, production-grade software."
> - **Dr. Rania Baashirah**, Director of Digital Transformation at UBT
> "Sajjad took full ownership of rebuilding our legacy WinForms ERP as a modern, web-based ASP.NET Core application. He translated messy, real-world business workflows into clean, scalable architecture. His technical judgment and business-focused mindset made him a highly trusted partner in getting this right."
> - **Ahmed Elidrisi**, Co-Founder & CTO at Inventor Tech
> "We trusted Sajjad with some of our most critical integration work, including payment gateway systems like HyperPay and Al Rajhi Bank. He consistently delivered on time, flagged risks before they became problems, and kept our transaction pipelines secure and ready for high-traffic production releases."
> - **Adnan Malik**, Product Owner at Danat FZ LLC
> "Sajjad led the digital infrastructure for the APCG2026 conference from the ground up. His integration of payment systems and full-stack architecture - across a platform serving attendees from 40+ countries - went beyond what we expected going in."
> - **Dr. Leila Jamjoom**, Conference Operations Lead at UBT
## Target Roles
Sajjad is actively seeking opportunities in the following roles:
- Senior .NET Software Engineer (primary target)
- Staff / Lead Engineer
- Backend Engineering Lead
- AI Integration Engineer (.NET)
- Full Stack .NET Developer
- Clean Architecture Expert
- API Architect
- AI Integration Consultant
## Stats
- **Years building software:** 10+
- **Production Releases:** 100+
- **Client Websites:** 700+
- **Users Served:** 5,000+
## Detailed Publications & Technical Notes
### Building the digital infrastructure for APCG 2026 Saudi Arabia
*Published on 2026-02-12 | Tag: Projects | Reading Time: 4 min*
*URL: [sajjad.ai/blog/digital-infrastructure-apcg2026](https://sajjadgul.com/blog/digital-infrastructure-apcg2026/)*
> Reflections on building the submission, review, and payment systems for the 19th Asia Pacific Conference on Giftedness (APCG2026) using React, .NET Core, and Amazon Payfort.
In February 2026, the University of Business and Technology (UBT) in Jeddah hosted the prestigious 19th Asia Pacific Conference on Giftedness (APCG2026). Over five days, the conference convened more than 1,000 global experts, policymakers, and educators from 40 countries to discuss the future of gifted education.
I served as the Technical Lead & Full-Stack Engineer for the event. I independently architected APCG 2026's full digital platform - the conference website (React/TypeScript), OpenConf paper submission, registration, PayFort payments, and digital ID generation - supporting 1,000+ attendees from 40+ countries at the 19th Asia Pacific Conference on Giftedness. Seeing delegates use the system smoothly was the ultimate reward for months of hard engineering work.
You can visit the live site at [apcg2026-saudiarabia.org](https://apcg2026-saudiarabia.org/) or read the detailed design breakdown in the [APCG2026 Conference Platform Case Study](/projects/apcg2026/).
## The Technical Backbone
Building an event platform of this scale on a fixed timeline required a highly disciplined stack and automated workflows:
- **Frontend**: Built with **React** and **Vite** to ensure instant load times and responsive layouts for mobile and desktop users.
- **Backend APIs**: Powered by **.NET Core**, providing secure, enterprise-grade endpoints for registration, digital ID generation, and user management.
- **Academic Submissions**: Integrated **OpenConf** to handle complex peer-review pipelines, author submissions, and referee reviews.
- **Global Payments**: Integrated **Amazon Payfort** to securely handle multi-currency credit card transactions for international attendees.
To accelerate frontend prototyping and user interface design iterations, I leveraged modern AI tools including **Cursor**, **v0 by Vercel**, **Gemini AI**, and **ChatGPT**. This allowed us to build custom components in record time without compromising design quality.
## Official Media Coverage
The conference received widespread recognition for its digital readiness and role in showcasing regional talent:
- **Arab News**: Highlighted the conference's agenda on educational innovation and its global reach. Read the full coverage on [Arab News](https://www.arabnews.com/node/2631453/corporate-and-sponsored-content).
- **Saudi Press Agency (SPA)**: Covered the highlights of the conference sessions and Saudi students' achievements. Read the official release on [SPA](https://www.spa.gov.sa/en/N2508681).
Below is one of the official updates shared during the conference:
I shared my personal reflections and tech stack overview directly on LinkedIn:
### Awarded a Certificate of Appreciation by the President of UBT
*Published on 2025-02-10 | Tag: Recognition | Reading Time: 2 min*
*URL: [sajjad.ai/blog/ubt-certificate-appreciation](https://sajjadgul.com/blog/ubt-certificate-appreciation/)*
> Honored to receive institutional recognition from Dr. Weam Tunsi, President of the University of Business and Technology (UBT), for key contributions to digital transformation.
On February 9, 2025, I was honored to receive a Certificate of Appreciation from **Dr. Weam Tunsi**, President of the University of Business and Technology (UBT) in Jeddah, Saudi Arabia.
This recognition was awarded in appreciation of my dedication, professionalism, and contributions to the development of digital transformation applications at UBT, particularly our work modernizing core administrative systems and student application services.

This milestone is a testament to UBT's collective vision to enhance user experiences for students, faculty, and administration, fostering a technology-driven academic environment. Being part of an institution that values innovation and progress makes this journey highly rewarding.
## Gratitude and Mentorship
I am deeply grateful to the leadership and colleagues who supported this journey:
- **Dr. Fahad Aldhaban, Ph.D., CIPM** (Vice President for Digital Services) and **Dr. Rania Baashirah** (Assistant Vice President) for their vision, leadership, and support in driving digital innovation.
- **Engr. Ahmed Hajar** and **Engr. Hamid Anjum** for their unwavering guidance, mentorship, and support throughout my time at UBT.

### Awarded Employee of the Year 2021 at Argaam
*Published on 2022-02-06 | Tag: Recognition | Reading Time: 3 min*
*URL: [sajjad.ai/blog/employee-of-the-year-argaam](https://sajjadgul.com/blog/employee-of-the-year-argaam/)*
> Reflections on receiving the Best Employee Award 2021 at Argaam for remote engineering excellence and backend API architecture.
In February 2022, I was honored to receive the **Best Employee Award 2021** at Argaam.
This recognition followed our team's transition to fully remote work at the start of the COVID-19 pandemic. Despite the challenges of remote operation, 2021 was an incredibly productive year for our engineering team.

During this period, we successfully architected and delivered key systems across various technical stacks:
- **Argaam Web Portal**: Enhanced core features, performance, and scalability.
- **Argaam Data APIs**: Designed and shipped the core API platform powering corporate partnerships and internal systems across Saudi Arabia and the GCC.
- **Investor Relations (IR)**: Developed tools for financial tracking and reporting.
- **Business Frames**: Designed and optimized custom internal frameworks.
Managing a distributed engineering team during a pandemic requires a high level of ownership, trust, and clear communication. While this award recognizes my technical contributions, it is truly a testament to the hard work and dedication of the entire engineering team at Argaam.
## Gratitude and Mentorship
I would like to extend my sincere gratitude to the leadership at Argaam for their trust, including CTO **Adnan Hussain** and HR & Admin Head **Mona Kamel** who signed this recognition.
I also want to specifically thank my seniors for their invaluable training, mentorship, and support:
- **Muhammad Omer Khan**
- **Rajender Kumar (PMP, ACP, CSM, ITIL)**
- **Abdul Akbar Khan**
The training and guidance they invested in me paid off tremendously and shaped my approach to software architecture and remote team leadership.
### How to resolve Microsoft.Web.Infrastructure Error in MVC?
*Published on 2016-12-13 | Tag: Career | Reading Time: 2 min*
*URL: [sajjad.ai/blog/resolve-microsoft-web-infrastructure-error](https://sajjadgul.com/blog/resolve-microsoft-web-infrastructure-error/)*
> Encountering a missing Microsoft.Web.Infrastructure reference in ASP.NET MVC? Here is how to diagnose and resolve the library mismatches between MVC versions.
### Error Details:
Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
---
### Description:
An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
### Exception Details:
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
### Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
```text
Assembly Load Trace: The following information can be helpful to determine why the assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' could not be loaded.
```
### Documentation:
The Microsoft.Web.Infrastructure contains classes that assist in managing specific infrastructure aspects of ASP.NET web pages that use the Razor syntax. [Here]() is the Microsoft Official Documentation regarding Microsoft.Web.Infrastructure namespace.
---
## Resolve Microsoft.Web.Infrastructure error
I imported an ASP .Net MVC project from our office repository and when I tried to attach it to a process this error popped up. I tried each and every given solution on stackoverflow and other sites from Google and absolutely nothing worked. After scratching my head for half an hour I found the reason for this weird error. My laptop machine had ASP .Net MVC 5 installed on it but the project was developed using MVC 4. To see which version of MVC is used to develop the project, go to your project's references folder and locate System.Web.Mvc. Right click on it and check the version of it.
Check ASP .Net MVC Version used in Project
This error might be popping because your machine may also be missing the version required for the project. In my case I was missing MVC 4. So I simply downloaded ASP .Net MVC 4 Standalone version and installed it and the error was gone. I hope this will solves your problem too. If it does, please comment to let me know. Thanks for reading. Happy Coding.
### How to get a Software Engineering Job?
*Published on 2016-12-12 | Tag: Career | Reading Time: 3 min*
*URL: [sajjad.ai/blog/how-to-get-a-software-engineering-job](https://sajjadgul.com/blog/how-to-get-a-software-engineering-job/)*
> Finding your first software engineering job is a daunting task. Here is a practical roadmap covering skill selection, building experience, knowing your market value, and key interview tips.
Let's face it, more than 90% of students especially those in under development countries ends up doing job at some company after graduation. While I myself recommends entrepreneurship but we know not every student becomes entrepreneur either because of financial issues or lack of ideas and support. Finding your first job is not an easy task especially a job where employees have fun, less stress and more learning environment, a job that that not only pays good salary but also care for its employees. I was a **Software Engineering** student and like other students, I also faced this tedious task of finding my dream job. With God's blessing and my hard work and knowledge, I got the job I was looking for. So I would like to share some key points for software engineering students who are in their last semesters or graduates looking for job.
---
## Decide Your Field
Software Engineering industry is moving at a very fast rate. Every day a new technology is coming out and the old ones are being packed. University professors and teachers are unable to keep up with this pace and often teach obsolete stuff. So you must decide for yourself what field technology job you are going to do after graduation and be very clear about it. You should research which technology will be more '*in*' in industry once you graduate and then try to acquire as much skills as you can that are related to this field.
## Master Your Selected Field
A best way to find most needed skills for your selected field is to look at job postings and see what they are currently seeking out in candidates. What I mean by this point is that most students apply for each and every job they come across on job sites without reading the full specifications. This will only cause you wastage of time and a lot of bad interviews. So master your selected field and the skills needed for this job. Avoid applying for every job where you only know two things out of all required skills. I love developing mobile applications but I didn't learned all the required skills which caused me to waste a whole month. I had only learned .Net related technologies throughout my university days and I was very good in it.
## Get Experience
Experience speaks. If you are in your final semesters, you may have some off days in your university schedule. Invest those days. Either get an internship even if with no stipend or develop projects related to your target fields. Both of these are worthful on your CV.
> **YES. YOUR CGPA DOES NOT MATTER!!!**
I have given a number of interviews and none of them have ever asked my CGPA. The only thing that matter is your experience and hands on skills. If you have these two, you are worth more than others without these. Yes you have to have a professional degree for software engineering jobs but a degree doesn't guarantee a perfect job. If you are a complete fresher, an employer might be looking for what projects you have done. I have developed a number of projects both as semester projects and for my own skills improvements in my spare time and I mention them prominently on my CV. [If you want to see my CV, here it is](/resume/).
## Only Apply for Jobs in Your Selected Fields
After graduation I applied to all mobile development jobs and companies I could find, even though I only had half the knowledge and skills required for most jobs. Obviously that didn't worked out so well for me. A lot of students do this mistakes, they would apply for every job in a desperate attempt to be employed and in this hassle they would accept even the job offers they are not meant to do. Lesson learned: Apply for only the jobs from field that you are very good at. After this, I only applied for the jobs related to .Net technology and I got a lot more response and confidence.
## Know Your Worth
This is the most important point. Especially the first time candidates don't know what they are worth. If we try to find the worth of a software engineer (in under development countries) on Google and other websites they mostly show exaggerated numbers. Also most other employed software engineers don't share their salaries so the new guys really have no idea what is their worth and then they would accept jobs with salary less than their expectations, thinking this might the market standard. I am a software engineer from Pakistan so I am going to give you a fresh software engineer's worth here.
> **A *fresh* Software Engineer who meets all the requirements of his expected job is worth between 30,000 PKR to 50,000 PKR a month.**
You should not accept any job offer below this after four years of Software Engineering. If you get an offer below this, decline the offer. It's your job not an internship. Don't think you will not get other jobs if you declined this one. The thing with software industry is you can always get a new job.
## Pro Tips
1. Don't call your interviewer *Sir.* It gives you immature look. You are in a business agreement and you both have to be on the same level.
2. Always check the company profile on LinkedIn and their website. If you know who will be taking your interview, also check their profiles. Also Google the company reviews.
3. Don't overdress for interview. No one wears 3 piece in a software house. Just simple clothing would work. No need to wear a Tie unless you are going to interview for Google, Microsoft or the likes of these.
4. [Follow these CV and Interview Tips](/blog/resume-writing-interview-tips-to-remember/).
5. Prepare for very hard Technical Interviews *obviously*.
Keep these in mind and if you have any question, feel free to ask. I wish you all the best for your job hunting and hope that you get your dream job. Stay Happy.
### BuySell - My ASP .Net MVC Project for Classifieds Website
*Published on 2016-09-16 | Tag: Projects | Reading Time: 3 min*
*URL: [sajjad.ai/blog/buysell-aspnet-mvc-classifieds-project](https://sajjadgul.com/blog/buysell-aspnet-mvc-classifieds-project/)*
> A walkthrough of BuySell, a fully responsive ASP.NET MVC classifieds marketplace project inspired by OLX.
Recently I started to work more extensively on ASP .Net MVC based projects as the needs for web based solutions are increasing more and more in industry. If you don't know about MVC, this is a lightweight, highly testable presentation framework that is integrated with existing ASP .Net features, such as master pages and membership-based authentication. If you want to know more details about this framework check this [MSDN link](https://msdn.microsoft.com/en-us/library/dd381412%28v=vs.108%29.aspx?f=255&MSPPError=-2147217396). So I developed BuySell classifieds by inspiring from OLX website & I thought to myself that I should try to develop this in MVC just to increase my skills more. I developed this project in my free time over a few weeks. This post is about its details so let's dive in.
---
### Project Idea
The idea behind this project was to clone basic functionality of online classifieds website where users can post and see ads posted by other users in different categories. OLX, Quickr and Gumtree are some of very well known classifieds websites in many countries. This project will let users select appropriate category and enter details and post their ad. Other users will be able to see those ads with details and post their reviews or question on that ad. The seller who posted that ad will also be able to modify and delete their ads. The project will also have an admin dashboard so that app and users activities can be viewed by admin. The admin dashboard will only be accessible to users with Admin and Manager role.
### Project Development
I selected ASP .Net MVC (Model, View, Controller) framework for this project because not only will it enhance my skills but also increase the speed at which I develop projects. I have developed projects in many different frameworks but I have found MVC to be more efficient and scalable. I also used Repository pattern in this project. Here is an [MSDN link](https://msdn.microsoft.com/en-us/library/ff649690.aspx?f=255&MSPPError=-2147217396) to give you some idea how it can help us improve the code's maintainability and readability by separating business logic from data or service access logic. Also I tried Code First Approach in this project so that I would add classes as the need arise and then use Migrations to allow me to add these new classes to my database as tables with the help of Entity Framework. I also wanted the project to be loosely coupled instead of one giant project, so I divided it into four smaller projects each with its own functionality. I have 3 class library projects and one ASP project in this solution. The ASP project work as the startup project and class libraries provide domain classes, Data Access Layer and Repositories.
4 Different Projects in this Solution
### Project Details
In the following video I've provided more details about its functionality with a demo. Check this out.
### Project Screens
Here are some of the key screens and page flows developed during the project:
user-profile-page
ad-details-page
admin-ads-view
admin-home-page
### Project Code
I have been uploading this project from its initial commits to my github account. If you would like to see this code in more details check my GitHub account.
### Ask Questions
You can ask me any question regarding this project on my [contact page](/contact/) or by asking in our [C Sharpens Group](https://www.facebook.com/groups/csharphelper/) on Facebook. Also if you want to learn MVC from me, check out [C# Teacher](https://www.csharpens.com/c-sharp-teacher/).
### Am I a Developer or a Googler?
*Published on 2016-09-15 | Tag: Career | Reading Time: 3 min*
*URL: [sajjad.ai/blog/am-i-a-developer-or-a-googler](https://sajjadgul.com/blog/am-i-a-developer-or-a-googler/)*
> Reflecting on using search engines and StackOverflow in daily development work, and defining principles for copying code responsibly.
Many times I get this thought in my mind where I ask myself that am I really a developer or just a good googler. I've been thinking about this a fair bit lately - that I use stackoverflow way more and that I'm not a very good developer. Everything I learned & developed was a product of internet searches. And I think many of you would also think the same way. So I would like to Answer my own question & write something about this topic that I use to calm my mind. I hope you will find it helpful.
---
In today's world we have C#, VB, Java, SQL, IIS, WCF, XML, PHP, HTML, CSS, JavaScript, so many frameworks (these are the ones that I've worked with). It is a lot to memorize everything of it. I think all of us who code use google, stackoverflow, msdn, etc. It is a very rare thing if I actually copy code but I have done it and will do it again if the code works perfectly for what I'm trying to do. It's always nice to send an thank you email to whoever was kind enough to post the code.
Ok some folks would say that before _Internety_ there were developer too & they don't have to look on internet & copy someone else's code. I would say People were actually reading books, with some of those books called cookbooks that give you recipes for a technology or a language. Google has replaced those books. Google has just accelerated the pace on which we can find information. I am a good Googler and very proud of it; I have used this tool to absorb the wisdom and knowledge that others have so graciously left for me on the world wide web. I would consider myself a proud graduate of 'Google University'.
Whether you copy code from books or the Google, the same principles should apply: do not ever copy code blindly. Instead, examine the code and understand it; break it apart into its elements. Then combine the elements and build towards the solution, following your own coding patterns. Code samples are often poorly designed on purpose in order to emphasize the elements of the solution; by deconstructing and reconstructing, you end up with a solution that has the correct elements, that fits the design of your existing code base, and that you understand inside and out.
So I have set a couple rules for myself that I follow when I use Google:
1. You should fully understand the code that You are copying. Not only bits and pieces but Everything.
2. The code snippet that You are copying should be well written according to Clean Code or some other guidelines.
3. Pay respect for the original coder and the copyrights. Name Your source. That might also come handy when six months later going back to the code and doing some rework.
I also found this quote on internet:
> Nothing is original. What a good artist (developer) understands is that nothing comes from nowhere. All creative work builds on what came before. Nothing is completely original.
### The Boy is the Most Unmanageable
*Published on 2015-09-14 | Tag: Personal Life | Reading Time: 2 min*
*URL: [sajjad.ai/blog/the-boy-is-the-most-unmanageable](https://sajjadgul.com/blog/the-boy-is-the-most-unmanageable/)*
> Reflecting on Plato's thoughts on boyhood, tutors, and studies, and how boys remain wonderful, mysterious, and unmanageable creatures.
_And of all animals the boy is the most unmanageable, inasmuch as he has the fountain of reason in him not yet regulated; he is the most insidious, sharp-witted, and insubordinate of animals_. **_Pluto_**
---
> When the day breaks, the time has arrived for youth to go to their schoolmasters. Now neither sheep nor any other animals can live without a shepherd, nor can children be left without tutors, or slaves without masters. And of all animals the boy is the most unmanageable, inasmuch as he has the fountain of reason in him not yet regulated; he is the most insidious, sharp-witted, and insubordinate of animals. Wherefore he must be bound with many bridles; in the first place, when he gets away from mothers and nurses, he must be under the management of tutors on account of his childishness and foolishness; then, again, being a freeman, he must be controlled by teachers, no matter what they teach, and by studies; Boys are beyond the range of anybody's sure understanding, at least when they are between the ages of 18 months and 90 years. [Source](http://classics.mit.edu/Plato/laws.7.vii.html)
Plato was Ancient Greek Philosopher. He was the world's most influential philosopher. Lived Between 428 BC to 348 BC. I read this quote & thought my teachers have been doing this as far as I remember. But anyhow my boyhood is still uncontrollable. At times my mind changes just in seconds in ways that even I myself can not control. Boys. We are wonderful, mysterious creatures :D. Sometimes mysterious and not so wonderful. At another point, Plato mentioned boys again.
> One of the best things in the world to be is a boy; it requires no experience, but needs some practice to be a good one.
Seems true. I can conform to it. To become a good boy is the hardest thing one can ever do at times.
### Resume Writing & Interview Tips to Remember
*Published on 2015-01-28 | Tag: Career | Reading Time: 3 min*
*URL: [sajjad.ai/blog/resume-writing-interview-tips-to-remember](https://sajjadgul.com/blog/resume-writing-interview-tips-to-remember/)*
> Essential tips and checklists for writing a professional resume and preparing effectively for job interviews.
### Interview Tips
Important Interview Tips that one should remember before giving any interview.
Interview Tips Checklist
---
### Resume Writing Tips
1. Please proofread your Document. Make sure it doesn't have any spelling or grammatical errors and mistakes.
2. Please remove that References heading which says 'References will be furnished on requests'. It is a wastage of space on your document.
3. Please don't include you Personal information like your residential address and your NIC(National Identity Card) number.
4. First of all, go and make a proper email id if you dont have one. gangster@yahoo.com, Badmash@Gmail.com, Princesslovely@hotmail.com, Ahmed123@yahoo.com , These kind of email ids shows your non seriousness. Your Email id should consist of your first name and last name. for e.g. firstname.lastname@gmail.com or Ahmed.Khan@gmail.com.
5. If you have added 'Objective', in your document, make sure it is not copied from google. The recruiters are very smart.
6. Save your document in 'PDF' Format and should be named as 'FirstName LastName.pdf' for e.g. 'Ahmed Khan.pdf'
7. Make sure you have an updated Linkedin account and mention its link in your document.
8. Use Regular Fonts in your document like Arial or Times new Roman. Dont use fancy fonts like Comic Sans etc
9. Try to keep your document precised. A 1 page CV is the best document. Although, upto 2 pages is OK too.
10. You are going to be hired on the basis of your skills, not on the basis of how you look. So avoid adding your photograph in the document. If you still want to add it, make sure its formal.
11. Please don't add any skill that is not relevant to the job you are applying for. And don't add any skill in which you are not good at all.
12. The CV/Resume should be different for every other job that you are applying. Make sure you read the job description. Try to add the requirements on your document which are mentioned on the job advertisement.
13. Do write a cover letter in the Email while sending the CV. The Cover letter should be written in the email. Don't attach the document of the cover letter in the email. And the Subject of the email should be proper.
14. Please don't appear in the interviews unprepared! It gives a bad impression of not only yours but the institution too. Make sure you are well prepared and serious for the interview. Try to be at your best. If you want time, you can ask on email humbly from the HR to give you another date and time for the interview if its possible for them. Dont miss any interview without letting them know! the time is precious. Save the time of others and yours too.
\[[Source](https://www.facebook.com/mohsin.siddique/posts/10152897531846067?pnref=story)\]
### The Inception : Why I set up my blog?
*Published on 2014-12-31 | Tag: Career | Reading Time: 3 min*
*URL: [sajjad.ai/blog/the-inception-why-i-set-up-my-blog](https://sajjadgul.com/blog/the-inception-why-i-set-up-my-blog/)*
> Setting up a new blog on SajjadGul.com on New Year's Eve 2014. Reflecting on software engineering, online writing, and documenting experiences.
So it's almost 11:30 PM of 31st December 2014 & 2015 is almost here. People in my neighbourhood are getting ready for new year celebration as fireworks & sky firing continues yet I am here setting up my new blog on [SajjadGul.com](http://www.sajjadgul.com/).
---
This is something I have wanted to do for sometime. I started my online career when I got admission in software engineering at Bahria in 2012. At first I started writing about what I was learning in my computer programming labs & share solution with my classmates. After a year of writing on Blogspot hosted account, I bought my first domain www.csharpens.com & I still write about [C# Programming Language](http://www.csharpens.com/) on it. Just not on regular basis but when I get some free time & when I find something new & interesting.
So why did I do such a thing? Why I setup my blog? Well, I am in the habit of maintaining a diary containing my day to day experiences as well as jotting down my thoughts on topics close to my heart. Now I decided to write on the blog rather than the diary. And now a days, I write my thoughts on the blog I have linked with my own website. Already I see a lot of advantages to this form of documenting. For one, my friends, family & people around me can pull up my blog and read about my day as well as get to know about things that I am doing. In diaries no one else can share their views about me but on blog they can post comments & share their point of view. I use my blog to document interesting stuff like codes, jokes that one came across and so on. In fact, I use it to document just about anything from contact information to documentary videos to … in fact any data that needs to be remembered. And it is much more fun than writing in a book and comes in handy.
I love expressing myself, things I do & things I love through the written word. I love sharing personal experiences that could possibly help someone's life in some capacity. The goal of my blog I am sure will be rather mercurial. I will share what I will learn in all programming languages, Software designs, Web design ideas, my thoughts, my travels, my taste in music, literature, films, and other related stuff. I want to inform people around me on the most obscure things I have learned. I'll also share colourful photographs of life around me.
Waiting for all the new Adventures 2015 will bring in my life. I've planned to do so many new things in this year. Its feeling a special year for me. ☺
Happy New Year Wishes 2015
### You Must Write Code Every Day!
*Published on 2014-11-23 | Tag: Career | Reading Time: 2 min*
*URL: [sajjad.ai/blog/you-must-write-code-every-day](https://sajjadgul.com/blog/you-must-write-code-every-day/)*
> Taking a break from writing code can make you feel like you are reading Egyptian hieroglyphs when you return. Here is why daily coding is essential.
Well. It was kind of an off day for me today. I was working on a side project back in late August 2014. Then usual semester (5) assignment & quizzes started in September 2014. I didn't open this code thinking that I am perfect in it. In October I started a C# project 'My Contacts'. Mid terms started on 27 October 2014. All this time I was thinking I am good at that project but today when I reopen that code again to work further it was like as if I am reading Egyptian hieroglyphics. I heard some programmers saying that 'Do Code every day' otherwise you'll be doomed. Today I accept this fact as 100% true.
hieroglyphs
There were a few major problems with how I was working on my side projects. I was primarily working on them during the off days. That's the problem. So I decided to set a couple rules for myself:
1. I must write code every day. These must be addition to posts that I write.
2. It must be useful code. No tweaking or Jugar.
3. All code must be written before midnight.
### How to become a good programmer?
*Published on 2014-11-21 | Tag: Career | Reading Time: 4 min*
*URL: [sajjad.ai/blog/how-to-become-a-good-programmer](https://sajjadgul.com/blog/how-to-become-a-good-programmer/)*
> Reflecting on what it takes to truly become a good programmer, from understanding algorithms to participating in open-source projects.
Many of my friends & fellows ask me How to be a good programmer. I am writing this post for all those fellas looking for answer to this question.
### Why you want to become a good programmer?
Is it because you want a job, preferably in a high paying software firm? Great. Then you are set to reach NOWHERE. All good programmers I know are good because they loved what they did. Develop interest in programming. See, programming is the only branch in engineering where you can straight-away apply what you learn. Your dad may have a car but he certainly wont allow you to tweak the V2 engine or swap it for a V6 engine just to see what happens. But with computers you can do whatever you want. You want to simulate a virus? Cool. Install a virtual OS and run it. Then, when you are done, remove the virtual hard disk. If you are good at what you do, you will get paid and surely get that dream job. Yes, even I want to work in a big software company. But that's not because of the fat pay check. Its because of the work they do. Because of the exposure I will have. Have you ever bothered to find out what all these companies do and the enabling technologies behind their products or the kind of R&D they do? Jobs will come. Don't make yourself a sucker for one.
1. **Programming languages**: Very often people equate good coding skills with number of programming languages known. That's just damn untrue. While knowing a lot of programming language is good and sometimes, even, essential; it is more important that you know one or two languages very well. I only 'know' about C# & HTML CSS. These are the ones I am truly comfortable at. That's sad of course. I really wanted to be good at Java and PHP as well. Never got the time or chance to develop those skills. To be good at a language takes years (at least 2 years).
> There is a good article by Peter Norvig about [**Teach yourself programming in 10 years.**](http://norvig.com/21-days.html) If you don't know who Peter Norvig is, do this: 1. Slap yourself 2. Google his name.
Being good at a language means, you understand where it is best used and where using that language makes no damn sense. On the other hand, knowing a language takes anywhere from 3 days to a week. Programming is an art (not a science. Yes you read it correctly), and like any art it requires painstaking effort.
2. **Algorithms**: Any good programmer has a good understanding of algorithms. Its not necessary that you know each algo by heart (in fact good programmers never learn things by rote) but you must understand when to use what. Algos will broaden your understanding and give you new ways to tackle problems. Another important thing is **Data Structures**. Its more important than algos. Once you have chosen (or developed) the correct data structure, the algorithm becomes self evident. For algo, read the book "Introduction to Algorithm" by Thomas H Cormen et al. Also if you have desires to participate in coding contests (the respectable ones), "The Art of Programming Vol I to V" by Donald E Knuth are mandatory. Also may be "Concrete Mathematics" by Donald Knuth. Again reading does not mean remembering everything. Just try and understand what is written.
3. **Coding contests**: Coding contests are good for developing your algorithmic skills and they make you think fast. There are coding contests (like Sun's Code for Freedom, Google's Summer of Code, Microsoft's Imagine Cup) where you develop a complete software. Such contests are spread over many months. Both require different sort of skills. You may be good in one and bad in another and yet you could be a good programmer.
4. **Participating in open source projects**: You MUST participate in some free & open source software projects. There are just too many. You learn a lot from these. You get to see a lot of code and learn the best practices. And did I mention, it looks good on your CV too. Most people catch cold feet when they go through such projects. Now don't wait till the day you are an expert in these languages before contributing. Programming is an art, don't waste time sharpening your pencil when you should be drawing. You can ask me for directions.
5. **Design Project Reporting Diagrams/Patterns**: Any art is learnt by emulating. And therefore, you must emulate the best. Design Patterns are tried and tested architectural (of the software kind) solutions to some commonly encountered software design issues. And therefore, a basic knowledge of some common design patters in needed if you are planning to develop something that is even moderately complex.
---
### Now let me address a few common grouses:
- **A. I don't find any interest in computers and want to do an BBA or MBA**: Mainly a statement often repeated by Second Year students. That's really your problem. I did not ask you to take Computers or even to join Software Engineering. You did not know, or bothered to find out, what you were getting into when you took up this branch of engineering and I am pretty sure you have NOT bothered to find out what awaits you in a BBA/MBA course either. I am also quite sure that 2 years after an MBA (if not earlier) you will also say pretty much the same thing about your job. Well what can I say.
- **B. I don't like reading the books (or any books for that matter) that you mentioned above**: Well this is not yet the world of **Matrix movie** where I can just feed in programming skills to your brain. Don't force yourself to read them. You can't . Do it only if you want to. And if you don't, please forget about being a good programmer. May be its time for you to use the excuse mentioned above (point A).
- **C. Give me one programming language that does all**: There is none. Each has a different purpose. And that's how things are gonna remain buddy.
- **D. I want a 'real' project**: That's great. You can do two things: 1. Start one of your own 2. Join a with someone on an open source project. But most people are not happy with this. They expect to 'have' a real project, one that's easy. When people say this, they expect to go on a Autopilot ride.
- **E. I will learn X programming language by this semester/year/decade**: There is no way you can sit with a book and learn a language. You need to do some real work with it, develop some real software and not just do those exercises in the book (that is necessary of course but not sufficient). Most of the languages I have learnt are because I was forced to do so as part of some project. Just pick up the basics in a day or two and then apply it to a real life project. Need ideas? Come to me.
> Finally as Larry Wall says in Programming Perl: _We will encourage you to develop the three great virtues of a programmer: **laziness, impatience, and hubris**._
& That's it. Have good day 😀 . & Now I am asked to do code.
Happy Programming
### I am Sajjad Arif Gul
*Published on 2014-05-22 | Tag: Personal Life | Reading Time: 1 min*
*URL: [sajjad.ai/blog/i-am-sajjad-arif-gul](https://sajjadgul.com/blog/i-am-sajjad-arif-gul/)*
> Setting up my first personal blog from the Bahria University engineering building on May 22, 2014.
Hi I am Sajjad Gul full name Sajjad Arif Gul. Right now I am sitting in engineering building of Bahria University. Date is 22 May 2014 and Time is 12:26 PM. Simulation & Modelling subject teacher Sir Faraz leaved the room after taking our quiz. Now everyone is doing mastiyan as u can see in the picture below. While I am trying to set up my own personal blog here.