Umer Arshad, Software Developer in Lahore, Punjab, Pakistan
Umer Arshad

Software Developer in Lahore, Punjab, Pakistan

Member since October 5, 2021
Umer is a lead software engineer with experience in working with multiple multinational companies and freelance projects. His experience ranges from low-level embedded systems to high-level application software. Umer is an active learner constantly recognized by both clients and colleagues as a problem solver who can successfully manage complex engineering problems and tackle strict deadlines and customer pressure issues.
Umer is now available for hire

Portfolio

Experience

Location

Lahore, Punjab, Pakistan

Availability

Part-time

Preferred Environment

Linux, Visual Studio Code, Git, Embedded C, C, C++11, Python, Data Structures, REST APIs, Android Studio

The most amazing...

...thing I've developed is a high-availability system with multiple nodes responsible for managing a telephony operations service, along with a monitoring system.

Employment

  • Senior Software Engineer

    2021 - PRESENT
    Afiniti
    • Owned a telemetry service that offers multiple telemetric operations using the Pistache framework for C++ and REST APIs. Developed new features and fixed bugs in the high-availability part of the company's product.
    • Tracked and traced the development of the product using Jira, the established mechanism.
    • Led a team of engineers and supported different teams in designing and fixing bugs of individual services in a microservices-based architecture.
    Technologies: C++, Docker, REST APIs, Microservices, Telemetry, C++11, C++14
  • Software Engineer

    2020 - PRESENT
    Afiniti
    • Developed a high availability system responsible for managing multiple nodes in different configurations, which involves a very fast switching rate and requires individual services monitoring.
    • Worked on the telephony feature server dealing with SIP 2.0 based message sending and handling.
    • Designed and fixed bugs of individual services in a microservices-based architecture for the high-availability system.
    • Played a key role as a project manager tracking bugs and features using Jira as a reporting tool.
    Technologies: C++, Docker, Microservices, C++11, C++14
  • Firmware Developer for ESP32-based Systems

    2022 - 2022
    INDG Digitale Communicatie B.V.
    • Implemented captive portal for AP mode. Added Firmware over the Air (FOTA) support. Created a flask server to send commands, downloaded and displayed pictures from an external server on screen, and added support for deep sleep mode.
    • Displayed low battery levels on screen and tracked tasks milestones and issues using GitHub issues.
    • Worked directly with the client providing milestone-based updates, and conducted weekly meetings to discuss progress.
    Technologies: C, ESP32, C++, Flask, PlatformIO, Firmware over the Air (FOTA)
  • Senior Software Development Engineer

    2018 - 2020
    Siemens Digital Industries Software
    • Developed an in-house inter-vehicle system (IVS) embedded software and bootloaders for different microcontrollers and architectures based on ISO specifications for automotive software and multiplexed communication network protocols (CAN and LIN).
    • Engaged directly with clients for debugging sessions and support.
    • Played a key role as a project manager tracking bugs and features using Jira as a reporting tool.
    Technologies: Embedded C, C++, Visual Studio, Debugging Tools, Vault, Makefile, Microcontroller Programming
  • Embedded Systems Developer

    2017 - 2017
    Siemens Digital Industries Software
    • Developed program applications for different embedded hardware platforms and simulators.
    • Worked on Kernel porting for Nucleus RTOS as part of my role.
    • Developed UART and SPI device drivers for different hardware platforms.
    • Tracked and fixed bugs using Jira as a reporting tool.
    Technologies: C, Embedded C, ARM, Atmel, RTOS

Experience

  • High Availability System

    The company needed a high availability system that could ensure continuous operations and eliminate single points of failure.

    As the C++ developer for this project, I built the core service. I used the POSIX library to create TCP/UDP and multicast-based server/client. I additionally included a ping-pong mechanism to monitor the status of the nodes in the cluster continuously.

    Besides that, I developed a monitoring system that continuously tracked the state of all the services involved in the holistic architecture and triggered specified actions based on various independent services issues.

  • Home Automation System

    I developed a home automation system that included an Android application to control and send the commands to the main controller.

    The system's brain contains a Raspberry Pi that stores the data and acts as a gateway routing commands from the Android application to the physical devices connected with the appliance. Edge devices that connect directly to appliances communicate with the Raspberry Pi via RF. The system can be controlled by cellphone using the internet and a standard LAN network.

  • E-locked

    I developed an electronic locking device called "E-locked" that controls gate locks upon receiving a command from an Android application via TCP sockets or through the internet via MQTT. It supports multiple locks to be operated from a single device. The locks are password-protected and can only be modified using a master key. Keys are encrypted and then stored in the cellphone.

  • Firmware Developer

    Worked as a sole engineer to develop firmware for LILYGO T5-4.7 inch E-Paper ESP32 V3 from scratch.

    I implemented a device reset dispatcher to distinguish between startup from deep-sleep and hard reset and a captive portal for the access point configuration of ESP32.

    Created a mock Python server using Flask to interact with and send commands to the ESP32 and worked on developing Node.js-based parser to transform HTML, CSS, and JavaScript files into C strings.

    Developed code to display static and dynamically obtained pictures from an external server on the Lilygo screen. Configured timeout and buttons as wake-up sources from deep-sleep modes.

    Lastly, added the following:

    • Dynamic capability to show nearby networks on the captive portal at runtime.
    • A feature to download firmware from an external server (FOTA).
    • Support of deep sleep mode to conserve battery
    • Battery level detection to warn users about low battery levels

Skills

  • Languages

    C, C++, Embedded C, C++11, Python, Java, Verilog, C++14, HTML
  • Platforms

    Visual Studio Code, Arduino, Linux, Raspberry Pi, Windows, STM32, Docker, Android, Raspberry Pi 3 GPIO, Amazon Web Services (AWS), AWS Lambda, AWS IoT Core, AWS IoT
  • Other

    Microcontroller Programming, ESP32, Programming, Data Structures, Embedded Software, TCP/IP, UDP, Microsoft Office, Multithreading, Debugging, ESP8266, NodeMCU, Code Review, Analytical Thinking, Microprocessors, TkInter, SIP, Internet of Things (IoT), Embedded Systems, Network Programming, ARM, Atmel, RTOS, PCB, Arduino IDE, Telemetry, Bluetooth, Amazon API Gateway, API Gateways, PlatformIO, Firmware over the Air (FOTA)
  • Libraries/APIs

    Sockets, REST APIs, NumPy
  • Tools

    Git, Jira, MQTT, CMake, Android Studio, MATLAB, Visual Studio, Vault, Makefile, Jenkins, Amazon Cognito, AWS Simple Notification Service (AWS SNS)
  • Paradigms

    Socket Programming, Object-oriented Programming (OOP), Microservices
  • Frameworks

    Qt, Flask, Boost
  • Storage

    Databases, Amazon DynamoDB, Amazon S3 (AWS S3)

Education

  • Bachelor's Degree in Electrical Engineering
    2014 - 2018
    University of Engineering and Technology - Lahore, Pakistan

Certifications

  • Introduction to the Boost C++ Libraries
    DECEMBER 2021 - PRESENT
    Pluralsight
  • Exploring AWS IoT
    DECEMBER 2021 - PRESENT
    Udemy
  • AWS Serverless APIs & Apps - A Complete Introduction
    DECEMBER 2021 - PRESENT
    Udemy
  • C++ Object Basics: Functions, Recursion, and Objects
    SEPTEMBER 2021 - PRESENT
    Codio | via Coursera
  • Object Oriented C++: Inheritance and Encapsulation
    SEPTEMBER 2021 - PRESENT
    Codio | via Coursera
  • C++ Basics: Selection and Iteration
    AUGUST 2021 - PRESENT
    Codio | via Coursera
  • NumPy Python
    AUGUST 2021 - PRESENT
    Udemy
  • A Complete Python, TkInter Hands-on
    AUGUST 2021 - PRESENT
    Udemy
  • Qt 6 Core Beginners with C++
    AUGUST 2021 - PRESENT
    Udemy
  • Qt 6 Core Intermediate with C++
    AUGUST 2021 - PRESENT
    Udemy
  • Mastering Visual Studio Code
    AUGUST 2021 - PRESENT
    Udemy
  • C++ Basic Structures: Vectors, Pointers, Strings, and Files
    JULY 2021 - PRESENT
    Codio | via Coursera
  • C++ Programming—From Scratch to Advanced
    JULY 2021 - PRESENT
    Udemy
  • DevOps Fundamentals
    JULY 2021 - PRESENT
    Udemy
  • Docker for Beginners
    JULY 2021 - PRESENT
    Udemy
  • Master C++ Programming - From Beginner to Advance
    JULY 2021 - PRESENT
    Udemy
  • Python and Flask Demonstrations
    JULY 2021 - PRESENT
    Udemy
  • Introduction to the Internet of Things and Embedded Systems
    JUNE 2021 - PRESENT
    University of California | via Coursera
  • Introduction to TCP/IP
    JUNE 2021 - PRESENT
    Coursera
  • Data Structures in Python
    JUNE 2021 - PRESENT
    Udemy
  • The Foundations of SIP
    MAY 2021 - PRESENT
    Udemy
  • Socket Programming in C from Scratch
    MAY 2019 - PRESENT
    Udemy

To view more profiles

Join Toptal
Share it with others