Hold 5.5 years of extensive hands-on
professional software analysis, design and implementation experience of
software industry. Currently working at Embedded Systems Division of Mentor
Graphics for the last 5 years. Graduate with honors from
Languages
· Java, C/C++, Microsoft VB 6.0
Technologies
· Java: Java SE, SWING, AWT, JNI, JAVA3D, JMF, JavaComm, JAI, JDBC, JSP, JavaBeans, Java Servlet
· Eclipse (Java based): JDT, JFACE, SWT, GEF, EMF, WTP, RCP, Equinox
Software
· IDE: Eclipse Framework, Microsoft Visual Basic 6.0/.NET, Microsoft Visual C++ 6.0/.NET
· Database: Microsoft SQL Server 6.0/7.0/2005, Oracle 8.0/8.5, MySQL 4.1
· Platform: Microsoft Windows 2000/XP, Redhat Linux 6.2/7.0/FC3
Architecture
· Instruction
Set Architectures: ARM, ColdFire, 68K, x86
technical Lead apr
2008-present
Senior software development engineer jul 2006 - mar
2008
Softwre Development engineer Mar
2004 - jul 2006
Mentor Graphics
(A Corporate R&D site of Mentor Graphics Corporation, USA. http://www.mentor.com)
Working as Technical Lead in the Inflexion Core group at
Mentor Graphics Embedded Systems Division. Participated in the development of following
projects:
Inflexion
Platform UI Designer
Contributing to the development of Inflexion Platform UI
Designer. It’s an IDE whose GUI is
developed in Java over Eclipse Framework. However the engine-side is developed
in C/C++.
http://www.mentor.com/products/embedded_software/application_platform/inflexion/how_it_works.cfm
UI Designer:
Description: UI Designer; enables the rapid
creation of visually rich and compelling user interfaces (UIs) for consumer
electronic devices such as mobile phones and personal media players. It’s an XML-based environment for creating,
customizing and testing new UI designs on a Windows PC.
Technology: Java, Eclipse Framework
Responsibility: Participated in the development of this
product from SRS, to first prototype and later through 1.0 and ahead. Develop
the GUI in Java over Eclipse Framework of the product and its significant
editors. Incorporated maximum ease of usability and provided full
drag-and-drop UI editing capability. Enabled complete UI designs to be produced
without any need to resort to direct editing of XML. Simplified the process of
producing new UI designs and simulated on-the-fly showing preview, all within
the same environment. Harnessed the
developed IDE to fulfill the WYSIWYG feature.
UI Packager:
Description: UI Packager; is responsible to convert
the developed UI design project using UI Designer into its deployable form. It
is developed in C/C++.
Technology: C/C++ and JNI
Responsibility: Maintained the UI Packager product and
generated specific source files to be deployed on an embedded target on which
the UI will be viewed and used. Improved error reporting and feedback logging
within the packager.
Also worked with Tools group which is responsible for developing tools for embedded software development.
EDGE
Debugger
Contributed
to the development of EDGE Debugger, including feature enhancement and defect
fixing. It includes instruction decoders, transports, call module
and simulator. The GUI is developed in Java over Eclipse Framework, whereas the
Debugger Engine is developed in C/C++.
http://www.mentor.com/products/embedded_software/development_tools/dev_suite/debugger/index.cfm
Implemented Support for ARM Cortex-M3,
Cortex-A8 & ARM1156 in EDGE Debugger:
Description: Cortex is a new processor
family from ARM and M3 is an embedded microcontroller-profiled processor.
ARM1156 is a processor from ARM11 family. Both support Thumb-2 i.e. the latest
instruction set from ARM.
Technology: C/C++
Responsibility: Created SRS to implementation. Added Disassembler, Instruction Decoder, Call Module and Transport Module within EDGE Engine.
Implemented Disassembly Support for
Freescale’s ColdFire and 68K Instructions in EDGE Debugger:
Description: Disassembler; A debugger component which is able to translate machine code into the equivalent assembly language coding, and able to identify the components of each instruction by type (mnemonic, register, operand, etc.).
Technology: C/C++
Responsibility: Developed Core Module's Disassembler for both ColdFire and 68K, to be incorporated within EDGE Debugger. Incorporated resolution of effective address decoding and values to known symbols, when available (including labels and function names). Ensured that the developed disassembler is able to identify the addressing mode used for an operand and show that in place of a value, if needed, including Memory Read Ahead mechanism for the same instruction, if required. Support for variable length MOVE instructions, MAC/EMAC instruction, different Instruction Set Architectures i.e. ISA_A, ISA_A+, ISA_B, ISA_C instructions and Floating point unit instructions was also incorporated.
Developed a test bench application to verify the output of disassembler successfully escape reserved and unused op-codes and produce the desired by-the-manual assembly source.
EDGE
Profiler:
Took
part in developing GUI for EDGE Profiler, which is an integral part of EDGE.
http://www.mentor.com/products/embedded_software/development_tools/dev_suite/profiler/index.cfm
Description: Profiler is mainly
composed of a purpose-built Graph Control used for analyzing profiled data from
hardware. Different RTOS events are chosen before hand and accumulated
afterwards taking input from hardware using RS232 interface. The profiled
events are than plotted over time axis and analyzed within a Graph Viewer.
Technology: Java and Eclipse Framework
Responsibility: Implemented support for
drawing profiled event over time, Zooming In/Out, ZoomBox, Dynamic Descriptive
Tooltip, Pagination, Grid lines snapping to event points, Bi-directional
Scrolling in Zoomed Content and Horizontal Scrolling within Graph Control.
Also worked with RTOS Group, which is responsible for providing Real-Time Operating System Support.
Nucleus
PLUS AC Support for NIOS II IDE 5.0
Incorporated
support for Nucleus PLUS AC: Mentor Graphics RTOS, in NIOS II IDE 5.0 from
Altera.
Description: The added support involved generating configured source files and designing dialogs for configuration. Observing Nucleus PLUS RTOS coding standards, source files for Nucleus AC (Auto Configurable) are generated dynamically i.e., C header files containing the Nucleus Product configuration Defines, Assembly file containing the Defines required by assembly files, C header files containing the Defines related with UART & Ethernet, POSIX support files, and Linker command file.
Technology: Java and Eclipse Framework
Responsibility:
Designed & developed plug-in to be integrated harmoniously with Altera
NIOS-II IDE 5.0 which is based on Eclipse Framework. Developed dialogs within the
plug-in which can be used to configure/generate source files for Nucleus PLUS
RTOS components like UART, ETHERNET, NET & POSIX on the fly.
Senior Research Associate May
2003-Mar 2004
University
of Engineering & Technology
My job as Senior Research Associate at “Communication
Systems Lab,
Motion
Detection Server
Description: The Security System to monitor the stream coming from several cameras. It was implemented using JMF technology. The video obtained from tuner card can be transmitted over the network using RTP Technology. It also detects motion and sounds alarm as well.
Technology: JMF
2.1.1, Java Communication API, Java Advanced Imaging API
Responsibility: Developed this project exclusively.
Site: Provincial
Assembly of
Nastaliq
Unicode Urdu Editor
Description: Nastaliq Unicode Editor is a Unicode based full featured editor for editing Urdu language.
Technology: Java
SWING, JBuilder 9.0, FontLab, Macromedia FontoGrapher
Responsibility: Responsible for research, analysis and overall development of a Word Processor for Urdu Language. Well-tried the application by issuing valid and invalid ligature input sequences.
Site: Provincial
Assembly of
Data
Reader
Description: This product was developed exclusively for PhD students of Mechanical Engineering Dept. GIK Institute. The Software is connected to a Strain Meter which transmits the reading obtained from various parts of pipe in which some fuel is injected and strain is applied. It obtains the data using Serial RS232 Interface. Finally after the data is accumulated using multi-threading, it is formatted in the form of Excel sheet using OLE Automation.
Technology: Visual C++ (Multithreading & OLE Automation)
Responsibility: Developed this
software entirely from overall design to implementation and deployment.
Harnessed the software using offsite purpose built hardware data generators.
Site: GIK Institute http://www.giki.edu.pk
Lecturer Aug
2003-Mar 2004
University
of Engineering & Technology
· Taught as a Lecturer at Department of Computer Science and Engineering
· Taught Digital Signal & Image Processing to final year graduate students at Bachelor level having full credit hours course weight
· Conducted Lab of Design and Analysis of Algorithms
Compiled and marked exams; assigned and evaluated assignments for the afore-mentioned courses. Also handled the following project while serving as Lecturer:
SCHMIDTS
KAPCO
Description: Schmidts is
software that runs to monitor the turbines in KAPCO power plant. It logs the
details of various parts of the plant functioning in real time. This software was supposed to operate
virtually for-ever. Also it has the capability to generate dynamic reports.
Technology: Visual C++
6.0, Visual Basic 6.0, MySQL 4.1
Responsibility: Contributed in
Analyzing and Overall implementation of a highly robust real-time solution.
Trialed the application by executing a cold-run offsite using custom made
real-time dongle for valid serial input stream to imitate real world situation.
Site: KAPCO Kott
Addu
Software Engineer Intern Feb
2000-Mar 2002
My job as a Software Engineer was to contribute actively in the Office Automation projects being developed at the company. It was a part time job. Happened to fully participate in the Development Cycle of following projects:
Kampus2000
Description: An integrated tool for maintaining information about school activities and student records. It was designed with efficient search support and user friendly interface.
Technology: Visual Basic
6.0, SQL Server 7.0,
Responsibility: Executed the job
as Software Engineer/System Analyst to analyze the system and thus contributing
in its overall development. Examined the application to admit valid input from
the user.
Site: LGS Defense
SmarTill2002
Description: System that maintains the inventory procedures and daily tasks of an environment running inventory and stock management of any volume.
Technology: Visual
Basic 6.0, SQL Server 7.0,
Responsibility: Served as part of performance tuning team as well as quality assurance staff. Involved in making it more flexible and more efficient.
Site: Tes-Mart Defense
B Sc (HONS) Computer Science Jan
1999-May 2003
University of Engineering
& Technology
· Grade A with HONOURS
Did my Graduation from “Dept of Computer Science & Engineering”. Lead my Final Year Project as Team Lead explained below:
TISRS:
Text Independent Speaker Recognition System
Description: It was my Final year Project in UET. TISRS includes Speaker Recognition and Verification. It was a research oriented project and the focus was on Human Biometrics for Speaker Recognition.
Technology: Microsoft’s VB.NET, Access 2002, Visio
2002
Responsibility: Various speaker specific biometric cues were discovered, researched and implemented. Formants, slopes between adjacent formants, pauses and pitch was extracted and an intelligent system was trained on a unique set of speakers and later identified individually among the masses.
· Awarded Mentor Graphics stock options.
· Numerously acknowledged on dedication, commitment and performance from managers onshore.
· Selected after the technical evaluation of 200 teams as Director of Company under the administration of Pakistan Software Export Board PSEB Lahore.
· Selected as a Lecturer at Computer Science Dept. UET from a group of top merit students.
· Involved in consulting various Educational Projects in LACAS.
· Experienced commercial Consulting of Projects on many installations like Provincial Assembly of Punjab, KAPCO, GIKI, Tes-Mart etc.
·
Attended on-line training of
·
Attended on-site lecture series on the topic of
Object Oriented Analysis & Design 2006
·
Attended training on “Effective Communication
Skills” from Pakistan Institute of Management 2006
·
Attended on-site lecture series on the topic of
Advanced Computer Architecture 2006
·
Attended on-site presentation sessions on
Advanced C++ topics 2005
·
Attended course for Redhat Linux Administration
2003
Domestic and international references can be furnished on request.