Profile picture of M.Hassan Nadeem

M.Hassan Nadeem

Software Engineer

New York, NY

M.Hassan Nadeem — Software Engineer
About

Not looking for external opportunities at the moment!

Hi, my name’s Muhammad Hassan Nadeem. I prefer to go by Hassan. I’m a software and hardware engineer. I have designed various products from ground up - all the way from pcb layouts to writing code. I have worked at a number of companies gaining teamwork and leadership skills.

I write clean and secure code.

I am most skilled in: Python, TypeScript and C. At my current job, I work on OpenFIGI — building full-stack platform services with Python, TypeScript, React Router Framework, React and Apache Solr.

M.Hassan Nadeem — Software Engineer
Work

Software Engineer — OpenFIGI

New York, NY

2024 - Present

Core engineer on OpenFIGI (openfigi.com) — Bloomberg’s open financial instrument identifier platform serving the global financial industry.

  • Spearheaded the full website redesign of openfigi.com using React Router Framework/React/TypeScript with Python backend services — delivering auth flows, search UX, FIGI detail pages, and stress/load testing.
  • Designed and shipped user authentication system: sign-up, login, API key generation, two-factor auth, and user profile management.
  • Expanded platform coverage and timelessness of data across website and API.
  • Built operations dashboard for identifier lookup, Solr search diagnostics, data copy workflows, and rich content management.
  • Maintained Apache Solr search infrastructure — improved search relevance and performance.
  • Actively monitored and remediated security vulnerabilities across the platform.
  • Active code reviewer — reviewed 1,200+ PRs across the team.
React Router FrameworkReactTypeScriptPythonApache Solr

Software Engineer

New York, NY

July 2019 - 2024

Full-stack engineer across Bloomberg Enterprise Data (data.bloomberg.com, >2M API requests/day), DevX Spaces, and terminal widgets.

  • Built the Bulk Datasets platform from scratch — query backend, file preview viewers (.csv, .json, .parquet), snapshot selection modals, download workflows, and history/archive tabs using TypeScript and React.
  • Led the cloud infrastructure migration end-to-end — TLS encryption, Nginx cluster setup, domain redirects, and API gateway migration with IAM policies.
  • Built backend REST API micro-services using Python, Flask, FastAPI, Gunicorn, Apache Solr and Apache Kafka serving >2M API requests/day.
  • Implemented JWT authentication on the web platform, trial account permission logic, and credential management for the data portal.
  • Built sitewide navigation components, breadcrumbs, and container architecture for microfrontend integration.
  • Containerized services with Docker, implemented CI/CD on Jenkins, set up alerting rules and Grafana dashboards for production monitoring.
  • Used locust.io to benchmark and stress services before major releases.
TypeScriptReactPythonFlaskFastAPIDockerApache SolrApache Kafka

Research Assistant - SSRG

Blacksburg, VA

August 2017 - May 2019

Worked on computer security under the supervision of Assistant Professor Ruslan Nikolaev in a group led by Professor Binoy Ravindran, resulting in a publication in ASPLOS 2022.

  • Improved OS security by implementing Linux Kernel Module continuous address space re-randomization to defend against Just-In-Time ROP attacks.
  • Added support to compile and load Linux Drivers as position independent code, extending KASLR to 64 bits.
  • Implemented lockfree, high performance algorithm for stack and code re-randomization.
  • Experiments with ethernet driver re-randomized at 1ms period resulted in negligible impact on CPU utilization and network throughput.
Linux KernelCSecurityASPLOS

Software Engineer

Lahore, Pakistan

August 2016 - June 2017

Worked as a contractor in a team led by Ahmed Majeed.

  • Worked in a team to implement features and maintain AUTOSAR OS for automotive ECUs.
  • Responsible for maintaining AUTOSAR OS port on ARM Cortex processors.
AUTOSARARM CortexC

Software Engineer

Lahore, Pakistan

May 2015 - July 2016

Worked independently to design and code a hardware gadget for GPS Tracking, Salt Tracking and Field Crew Management for North American municipal industry. These devices are operational on the field today.

  • Developed firmware for ARM Cortex M4 processor with fixed-priority preemptive scheduling featuring support for file system and over the air updates.
  • Wrote drivers to interface with various sensors over a variety of communication protocols.
  • Wrote simulators to simulate various sensors and developed a hardware testing setup for quality assurance of our products.
  • Developed Python based framework to build, package and deliver over the air updates via TFTP.
  • Designed multi-layered PCBs. Including circuit design, component selection, schematic design and PCB layout.
ARM Cortex M4FirmwarePythonPCB Design

Teaching Assistant

Lahore, Pakistan

Fall, Spring 2014-2015

Introduction to Programming in C++, Microcontrollers and Interfacing.

  • Worked under the supervision of Prof. Jahangir Ikram to design development boards that were used in lab exercises and course projects (~150 pupils).
  • Updated Lab Manuals, delivered lab lectures, evaluated students’ lab performance and supervised their course projects.
  • Designed and graded assignments and quizzes.
C++MicrocontrollersTeaching
M.Hassan Nadeem — Software Engineer
Studies

M.S. Computer Science

Blacksburg, VA

August 2017 - May 2019

Courses: Linux Kernel Programming, Computer Architecture, Multiprocessor Programming, Systems Security, Data Analytics, Info Visualization, Urban Computing.

Got degree in Computer Science but did thesis with the Computer Engineering Department. Also employed part-time as a research assistant.

Linux Kernel ProgrammingComputer ArchitectureSystems Security

B.S. Electrical Engineering

Lahore, Pakistan

August 2011 - May 2015

Courses: Microcontrollers and Interfacing, Embedded Systems, Computer Networks, Data Structures, Advanced Programming.

In senior year, employed part-time as a teaching assistant. Also assumed various positions as an unpaid research assistant.

MicrocontrollersEmbedded SystemsComputer Networks
M.Hassan Nadeem — Software Engineer
Projects

pigeon (minimal twitter clone)

2017

Minimal Twitter clone built with Flask/SQLite as a security education tool — demonstrates common web vulnerabilities with intentionally exploitable code alongside secure implementations.

  • Users can register, post, follow/unfollow, search, and view feeds — full social media functionality.
  • SQL Injection: search endpoint uses string interpolation; safe parameterized alternative (db_execute_safe) provided side-by-side for comparison.
  • XSS: posts rendered with Jinja2’s | safe filter, allowing arbitrary script injection. Includes a self-propagating Samy-style XSS worm that auto-follows a user and copies itself into new posts.
  • CSRF protection (Flask-WTF) is present but intentionally disabled to demonstrate the attack surface.
  • Passwords stored in plaintext with commented-out generate_password_hash showing the secure alternative.
PythonFlaskSQLiteWeb Security

Parrot AR Tracking Drone

2015

Visual servoing system for Parrot AR Drone 2.0 — autonomously tracks a nested square fiducial marker using onboard camera.

  • Captures video via TCP stream, processes with OpenCV using Canny edge detection, multi-level thresholding, and contour approximation to detect nested square markers.
  • Proportional control on 3 axes (forward/back, left/right, up/down) with deadband filtering — error derived from marker center offset and area-based distance estimation.
  • Multi-threaded architecture (Boost): main vision loop, AT command sender at 33 Hz over UDP, and watchdog keepalive thread.
  • Direct AT command protocol over UDP port 5556 with float-to-int encoding for motor velocities constrained to [-1.0, 1.0].
  • Frame decimation (every 4th frame) for real-time performance on constrained hardware.
OpenCVC++BoostUDPVisual Servoing

Digital Logic Circuit Simulator

2013

Interactive digital logic circuit simulator built in Java with Swing and Graphics2D rendering.

  • Full set of logic gates (AND, OR, NOT, XOR, XNOR, NAND, NOR) in 2, 3, and 4-input variants, plus D Flip-Flop for sequential logic.
  • Drag-and-drop component placement with orthogonal wire routing via click-to-place waypoints.
  • Debugging tools: Logic Probe (real-time signal display), Logic Toggle (manual switch), configurable Clock oscillator, and 7-segment display for 4-bit binary output.
  • Event-driven simulation with tri-state logic (true/false/undefined) and short circuit detection.
  • Save/load circuit designs to .isee files via Java object serialization.
JavaSwingGraphics2D

Line Follower Robot

2013

Autonomous line-following robot built entirely with discrete logic ICs (no microcontroller) as a Digital Circuit Design course project.

  • 4 sensor inputs with comparators for line detection, feeding into counter ICs and ROM-based decision lookup tables.
  • 16-level high-frequency PWM motor speed control using 555 timer ICs for smooth operation.
  • Detachable ROM for reprogrammable behavior without modifying the circuit.
  • Custom chassis built from recycled materials with machined motor mounts.
  • Full schematic design in Proteus ISIS with separate sensor, control, and indicator circuits.
Digital Logic555 TimerPWMPCB Design

Bomberman Game

2013

Classic Bomberman arcade game in pure Java Swing — single player vs 3 AI enemies on a 15x15 grid.

  • Bomb placement with 2-second timed detonation and cross-shaped explosion propagation.
  • Collision detection using Rectangle-based AABB intersection for walls, bombs, fire, and enemies.
  • Animated sprites: 5-frame directional movement, 6-frame death sequences, bomb pulsation.
  • Power-ups (speed boost, extra bombs, explosion range) spawned from destroyed blocks.
  • Game save/load via Java serialization and MIDI sound effects.
  • Architecture separates rendering (MapGui), logic (MoveEvaluator), and execution (MoveExecutor).
JavaSwingGame Development
M.Hassan Nadeem — Software Engineer
Publications

Adelie: Continuous Address Space Layout Re-randomization for Linux Drivers

27th ACM ASPLOS

2022

Adelie overcomes KASLR limitations, increases KASLR entropy, and makes successful ROP attacks on the Linux kernel much harder to achieve. Enables position-independent code (PIC) model so that the kernel and its modules can be placed anywhere in the 64-bit virtual address space, implements stack re-randomization and address encryption, and enables efficient continuous KASLR for modules.

ASPLOSLinux KernelSecurityKASLR

Linux Kernel Module Continuous Address Space Re-Randomization

Virginia Tech Electronic Theses and Dissertations

2019

Added support for position-independent kernel modules to Linux so that the modules can be placed anywhere in the 64-bit virtual address space and at any distance apart from each other. Enabled continuous KASLR re-randomization for Linux kernel modules. Experimental evaluation shows overhead of position-independent code and re-randomization is very low even at high frequencies.

KASLRLinux KernelSecurity
M.Hassan Nadeem — Software Engineer
Skills
  • Proficient in Python, TypeScript and C.
  • Experience in React Router Framework, React, Flask, FastAPI, Node.js, JavaScript, Java, C++, ReScript, Apache Solr, Apache Kafka, Docker, Playwright, Jenkins, OpenAPI, REST, Nginx, Linux Kernel, Git, Assembly Language, Linker Scripts, Makefile, MATLAB, Hardware Communication Protocols, Debugging
M.Hassan Nadeem — Software Engineer
Files

Resume

View and download my resume by clicking on the button below

M.Hassan Nadeem — Software Engineer