8000 syedhassaanahmed (Hassaan Ahmed) · GitHub
[go: up one dir, main page]

Skip to content
View syedhassaanahmed's full-sized avatar

Organizations

@microsoft

Block or report syedhassaanahmed

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
syedhassaanahmed/README.md

Hi there 👋

I'm a curious Engineering Manager with 19+ years of experience in developing software products and leading people. Having lived in 5 countries, I've learned to collaborate effectively with multi-disciplinary and geo-distributed teams. Having worked across industries such as Retail, Energy, Manufacturing and Gov, enables me to drive business outcomes and engineering excellence in the age of AI.

Values of well-rounded Software Engineers in my opinion (in no particular order)

General

  • Learn multiple ways of solving the same problem and know the pros and cons.
  • The term best practices is relative. Best practices constantly evolve over time.
  • Never settle in learning in-depth how something works. Embrace unlearning and re-learning.
  • Instead of only doing your part, help out in dependent workstreams too to fully understand the E2E. Aim to solve the "whole problem".
  • The most dangerous phrase: "we've always done it this way".
  • Never be too busy to improve. Don't get stuck in a hamster wheel of inefficiency.
  • Avoid unearned complexity by practicing YAGNI.
  • Beware of the sunk cost fallacy.
  • Out of all the agile practices commonly used, estimating work items and trying to measure project velocity is the least productive.
  • Looking at GenAI solely for speed gains misses its deeper value, which lies in decision intelligence, and uncovering quality gaps rather than just doing old tasks faster.

People

  • Put people over processes.
  • Assume best intentions.
  • Maintain awareness of your own biases.
  • Judge people on their contributions, not on how confident they seem.
  • Don't let your own desire to get things done quickly, turn into undue pressure on colleagues.
  • Success is not a zero-sum game, so be happy and content with others' success.
  • Customer is not a monolithic entity, it's a mosaic of individuals with vastly different motivations, habits, and expectations.
  • New systems are best designed by a small number of minds, not committees.
  • Leaders model calm. When you stay calm under pressure, your team follows suit.
  • As a Manager/Lead, if things go well, give your team the credit. If things go sideways, take the blame yourself.

Code

  • Code is a liability, not an asset. Each meaningful piece of code has to be version controled, tested, secured, deployed, monitored and documented iteratively throughout it's evolution.
  • Code is just one of the many ways of achieving a solution.
  • You own the code and are responsible for it, whether it was written by you, copied from Stackoverflow or generated with AI.
  • Your team is only as good as the weakest code reviewer.
  • Large PRs increase the cognitive load on human code reviewers. Be kind to them by attaching a proof that your PR actually works (e.g. screenshots or short videos).
  • Don't get sucked into hyped/fashionable tech. Internalize that CS fundamentals haven't changed much over time.
  • Knowledge of specific frameworks, libraries or tools is not that important in the long run.
  • Keep the docs as close to the actual source code as possible.
  • All code in the critical path should have good tests, regardless if the tests were written first, last, or in the middle.
  • Deploy from a main branch to an environment from the very beginning of a project.
  • Don't implement in the app code, what can be configured in the infra.
  • Automate all the things that are worth automating as early as possible.
  • Ensure the system is observable so that you can enquire at any time what is happening.

Pinned Loading

  1. databricks-notebooks databricks-notebooks Public

    Collection of Databricks and Jupyter Notebooks

    Jupyter Notebook 22 15

  2. neo-to-cosmos neo-to-cosmos Public

    Copy Neo4j data to Azure Cosmos DB

    C# 13 3

  3. azure-kusto-load-test azure-kusto-load-test Public

    Containerized tool for load testing Azure Data Explorer (ADX)

    Python 6 2

  4. northwind-sql-db-container northwind-sql-db-container Public

    Docker container which initializes SQL Server with the Northwind database

    Shell 2

  5. iot-simulator-influxdb iot-simulator-influxdb Public

    Simulate synthetic IoT telemetry and ingest into InfluxDB

    Shell

  6. spark-with-engineering-fundamentals spark-with-engineering-fundamentals Public

    E2E Spark data pipelines with engineering fundamentals

    HCL 1 2

0