Hang Nguyen

Embedded Sotware Engineer

About

Embedded Software Engineer

Proactive senior software engineer with over 11 years of experience developing and maintaining enterprise software systems and architecture. Hands-on expertise in C / C++ and experience in Java, Python, JavaScript. Extensive knowledge of networking, IP-based communication and protocols, multi-threaded programming, and inter-process communications. Industry experience in automotive, navigation systems, VoIP, digital TV and embedded systems. Personable team player with experience collaborating with diverse cross-functional and technical teams.

  • Email: hangmt03bk@yahoo.com
  • Address: California, USA

    Skills

    Languages

    C/C++, Java, Python, Shell script.

    Network Protocol

    TCP/IP, UDP, CAN, FTP, HTTP, RTP.

    Techniques

    Multi-threaded programming, Inter-process communication, Remote Procedure Call.

    Frameworks

    STL, Boost, OpenGL, MFC, OpenCV.

    Databases

    PostgreSQL, MongoDB, MS SQL.

    Web

    JavaScript, HTML, CSS, XML, JSON, REST, Angular, Spring Boot, NodeJS, JPA, AWS.

    Tools

    CMake, docker, LXC, Visual Studio Code, Microsoft Visual Studio, Eclipse, Android Studio, IntelliJ IDEA, Postman, Maven, JIRA, Kafka, StarUML, Git, SVN.

    Platforms

    Windows, Linux, Embedded System.

    SDLC

    Agile/Scrum.

    Experience

    FISKER INC, San Francisco, CA, USA

    Software Engineer (Connected Car) • 2023 - Present

    Developed and maintained connected car software.

    • Integrate features of IDPS service (Intrusion Detection and Prevention system) which enables to analyze CAN frames, matching with existing DBC files to detect abnormal activities and sending warnings to the cloud.
    • Integrate DLT service (Diagnostic Log and Trace), responsible for filtering logs from different ECU apps and sending them to the cloud.
    • Automation for unit and system tests.
    • Refactor and code review.

    Technologies:: C/C++, Python, REST, TCP/IP, UDP, CAN, multi-threaded programming, cross-compilation, IPC, RPC, Shell scripting, CMake, docker, LXC, Visual Studio Code, JIRA, Git, Linux, Embedded System.

    MODIM CO. LTD., Seoul, South Korea

    Senior Software Engineer • 2013-2022

    Developed and maintained software supporting navigation systems. Developed map data management tools and converted digital maps (Client: Hyundai AutoEver)

    • Developed and maintained flagship navigation products for cars, indoors, ocean, and aircraft.
    • Implemented map displaying (OpenGL), route planning with shortest-path algorithms Dijkstra and A*; as well as route guiding, trajectory logging, and simulation functions for Windows, Android, Linux, and iOS.
    • Developed and maintained digital map data management tools (Verification, Comparation, Statistics, Auto-Packaging…), Virtual Drive Log Tool to generate virtual logs in different formats (KML, UMT, HIPPO) through Google/HERE/T-Map JavaScript API.
    • Research on fuel consumption estimation using Machine learning (Python, Scikit-learn).
    • Interact with Ladybug camera and process images using OpenGL.
    • Implemented incremental update manager for navigation applications.

    Technologies:C/C++, Java, JavaScript, Python, REST, MFC, OpenGL, TCP/IP, multi-threaded programming, IPC, Shell scripting, Makefile, Microsoft Visual Studio, Eclipse, Android Studio, Postman, JIRA, PostgreSQL, MongoDB, Git, SVN, UNIX(Linux), Windows, Embedded System, Android.

    MCORESYS, Seoul, South Korea

    Software Engineer • 2011-2013

    Played key role in development of mVoIP and DTV systems.

    • Developed Smart Pet Care System with SIP Server based on Open-Source technology.
    • Developed VoIP library (audio and video streaming) for mobile devices and VoIP clients.
    • Developed DTV Electronic Program Guide SDK for mobile devices.

    Technologies:: C/C++, TCP/IP, UDP, RTP, Visual Studio, Eclipse, XCode, Window, iOS, Mac Server, UNIX (Linux, MacOS), Android.

    EB CORP, Seoul, South Korea

    Software Engineer • 2011-2011

    Maintain enterprise software for managing municipal transport payment systems.

    • Performed technical troubleshooting.
    • Conducted coding and code review.

    Technologies:: : C/C++, Makefile, cross-compilation, Windows.

    Education

    Master of Science in Computer Science

    2022-2024

    Maharishi International University, Fairfield, Iowa.

    Technologies:: Java, JavaScript, REST, Angular, Kafka, ActiveMQ, JPA, NodeJS, Spring Boot, Express, Maven, MS SQL, MongoDB, Git, StarUML, IntelliJ IDEA, Eclipse, Visual Studio Code, Virtual Box, Cloudera, Hadoop.

    Master of Science in Electronic, Information, and Communication Engineering

    2008-2010

    Konkuk University, Seoul, South Korea.

    Thesis: H.264 codec optimization by SIMD technique and algorithm.

    Technologies: C/C++ · Image Processing · Embedded System (SIMD optimization) · MATLAB · Simulink.

    Bachelor of Engineering in Computer Science and Engineering

    2003-2008

    Ho Chi Minh City University of Technology, Ho Chi Minh City, Vietnam.

    Thesis: Real time H.264 decoder on Davinci TMS320C6446 board.

    Technologies: C/C++ · Embedded System (SIMD optimization) · Image Processing.

    Modern C++ Design Patterns Tutorial

    Design patterns in C++ help developers create maintainable, flexible, and understandable code. They encapsulate the expertise and experience of seasoned software architects and developers, making it easier for newer programmers to follow established best practices.

    Creational Design Patterns in C++

     Creational design patterns are a subset of design patterns in software development. They deal with the process of object creation, trying to make it more flexible and efficient. It makes the system independent and how its objects are created, composed, and represented...

    Structural Design Patterns in C++

     Structural design patterns are a subset of design patterns in software development that focus on the composition of classes or objects to form larger, more complex structures. They help in organizing and managing relationships between objects to achieve greater flexibility, reusability, and maintainability in a software system...

    Contact

    Location:

    California, USA

    Loading
    Your message has been sent. Thank you!