SAQLAIN ABBAS
*th floor Ali Tower, ***-B* GulbergIII MM Alam road
Lahore, Pakistan
Phone: +92-300-*******
Email: *******.*****.*@*****.***
LinkedIn: http://www.linkedin.com/pub/saqlain-abbas/7/289/b98
OBJECTIVE
Eager, young professional adept at designing, developing and
implementing software applications and delivering project releases on
schedule. Proficient at working in C, C++, C# and Python. High
performance team player with a track record of handling tasks and
delivering results on time. Able to multi-task efficiently, learn new
technologies and find scalable solutions to difficult problems.
Currently working as Technical Lead in Mentor Graphics Corporation. Also
also got significant contribution in open source community (open source
contribution details are mentioned in detail under OPEN SOURCE
CONTRIBUTION section with projects like s3ffs (a user space file system
to mount amazon s3 bucket) and Appliance OS (a new distribution for
appliances). Also working on a new Web Browser based on QT and Webkit
called Modeoo. Experience with RESTful web services.
PROFESSIONAL EXPERIENCE
Mentor Graphics Corporation (http://www.mentor.com)
(August 2008 - Present) Lahore, Pakistan
Project: Inflexion Runtime Multi-Threaded Engine
(http://www.mentor.com/embedded-software/inflexion/runtime)
Role: Technical Lead (August 2012 - Present)
Language(s): C/C++
Description:
Mentor Embedded Inflexion UI enables users to implement compelling
and visually rich user interfaces (UIs) with significantly reduced
effort; allowing users to meet the UI demands of today's embedded
devices. From highly animated and visually rich 3D UIs for Android-
or Linux-based consumer devices, to Linux- or RTOS-based industrial
controllers, Inflexion UI solves many of today's more demanding UI
implementation problem. Proven on all leading embedded
architectures, including ARM, MIPS, Power, SuperH, Intel 32
Architecture
In addition, Inflexion can make full use of OpenGL ES graphics
accelerators and has been proven on all leading GPU architectures,
including: Imagination Power VR, ARM Mali, Vivante GCxxx, Qualcomm
Adreneo.
Working as senior resource in Inflexion, responsibilities include
developing new features, customer support, resolving high priority
product issues and helping team members. A brief summary of
undertaken tasks is as under:
. Inflexion API developer - set of API's which are exposed to end
developers.
. Inflexion Windows player - Idea is to let user evaluate design on
windows instead of deploying these on hardware. Once design is
finalized on windows, it is deployed on target platform without any
major modifications.
. Huawei Set Top Boxes, based on Android and Inflexion, worked as
senior resource to help them evaluate Inflexion product and worked
as technical resource to help them achieve it.
. Add inherent video playback support in inflexion for the formats
like MP3. And modify Inflexion architecture as appropriate for this
purpose. Initially we are targeting Linux.
. Optimization of core engine, especially memory optimization and
performance optimization for low-end embedded devices. Results were
really impressive able to optimize around 60% in memory and 25% in
performance.
. Working as architect for new features
. Involved in code reviews
. Product support, resolving high priority customer issues
. Working on prototypes or new ideas, evaluate Inflexion for
Automotive, STB platforms etc.
Project: Inflexion as home screen replace for Android
Role: Technical Lead
Language(s): C/C++ and Java
Description:
Inflexion used as home screen replacement for Android, worked as
senior resource to accomplish this, it work for Android 2.3.3 -
Android 4.2.
It works as complete home screen replacement with feature like widget
dragging, adding, launching application etc.
Project: Porting Qt 4.0 to Nucleus RTOS
Role: Technical Lead (December 2012 -
Present)
Language(s): C/C++
Description:
Working as senior resource to port Qt 4.0 porting to Nucleus RTOS,
major work is done we have also created a proof of concept of Qt
porting with Nucleus. We are now moving toward full-fledged Qt support
for Nucleus RTOS.
Project: Evaluate GUI libraries for Nucleus RTOS
Role: Technical Lead (February 2013 -
Present)
Language(s): C/C++
Description:
Idea was to evaluate graphics libraries for Nucleus RTOS based on
their memory footprint, performance, application design, architecture,
evaluated several graphics libraries for this purpose (creating
complex demos in those libraries), after evaluation currently involved
in porting Anti-Grain Geometry library for Nucleus RTOS.
List of libraries evaluated and I got experience application
development with those libraries...
AGG: http://www.antigrain.com/
wxWidgets: http://www.wxwidgets.org/
SDL: http://www.libsdl.org/
FLTK: http://www.fltk.org/
Juce: http://rawmaterialsoftware.com/juce.php
SFML: http://www.sfml-dev.org/
Ultimate++: http://www.ultimatepp.org/
Project: Inflexion Runtime Multi-Threaded Engine
(http://www.mentor.com/embedded-software/inflexion/runtime)
Role: Senior Software Development Engineer (August
2010 - July 2012)
Language: C/C++
Description:
Inflexion Platform Runtime Engine is an XML-configurable user
interface layer that can be integrated with underlying
application modules, and it presents a graphically rich, animated
interface, with zero coding (for static themes). I was involved in
following projects:
Inflexion support for Freescale i.MX Processor Family
. LTIB has been used to create Linux BSP for i.mx series i.e. i.MX
52, i.MX 53 QSB etc, the target was to make inflexion run on these
platforms, with complete instruction
manual on how to configure Inflexion for these platforms.
. Worked on core Inflexion Runtime Engine 2.5 release (latest,
considered a major release because it resolve several Inflexion
engine architectural limitations), I have developed major
components of Inflexion in this release, did optimization(40%
performance was achieved), and have been involved in design,
development and testing phase, major accomplishment for this
release:
. Removed the menu based limitation in Inflexion and developed a
framework for 'reusable components' (I got "Spot Bonus" for
removing this limitation)
. Developed the 'navigation layer' (for navigating between pages)
for current Inflexion release.
. Have been working closely with QA team, and help them
understand new feature, and have been helping them in preparing
test cases.
. Have been working closely with demo team and help them create
new demos based on the new Inflexion release.
. Involved in the preparing and testing of "Release Candidates"
of Inflexion for customer evaluation.
. Integration of libpng and libjpeg open-source libraries with
Inflexion core engine.
. Worked on Inflexion Automated Testing Framework (IATF), to do the
testing automatically with very little manual effort. Its complete
and being used to test product. It was developed in C++.
. Worked on Integrator (an automated tool that can generate
Integration Layer, based on rules provided, so that engine can
communicate with platform specific modules) later on also did its
porting over Linux, and was involved in its testing.
Project: Inflexion Runtime Multi-Threaded Engine
Role: Software Development Engineer (August 2008-
August 2010)
Language(s): C/C++
Description:
Inflexion Platform Runtime Engine is an XML-configurable user
interface layer that can be integrated with underlying application
modules, and it presents a graphically rich, animated interface,
with zero coding (for static themes). I took part if following
tasks:
. Worked on core Inflexion Runtime Engine v1.3 to v1.7 releases, I
have been involved in enhancing Inflexion Runtime Engine, and
adding new features as per requirement in each release, and
providing support to customer, and our local demo team. For these
Inflexion releases I have been involved in development and testing
phase of each release (for outstanding performance during 2009
while working on these customer releases, I was awarded with "Top
Performer of the year" award, one of the most highly ranked award
at Mentor Graphics)
. Involved in development of Packager (a tool that could Packages
themes) it packages theme in different formats that understood by
Inflexion Runtime Engine. At time we package themes into ROM
(binary format, not flexible and to add new templates/components
user need to re-package theme) and Directory format (XML format,
flexible user can add new templates/components without re-
packaging )
More information about the product can be found at
http://www.mentor.com/embedded
CambridgeDocs (http://www.cambridgedocs.com)
(July 2007 - July 2008)
Worked as Software Engineer under Linux/C group, I worked on a
project related Data Leak Prevention (DLP) using Semantic
Analysis.
Project: Semantic Firewall (DLP)
Role: Software Engineer
Language: C
Description:
Data Leak Prevention (DLP) technology prevents data loss by
discovering data wherever it is located across the enterprise,
analyzing that data and determining that data's security value to
the business. Much in the way that DNA is used to identify humans,
our algorithm can determine the origin of information even if it
has been retyped into a brand new document or rearranged and
reworded in an evasive manner. More information about the project
can be found at http://www.nextiernetworks.com/.
Tasks included:
. Worked as core developer in a team of two on Semantic Firewall core
data analyzing algorithm implementation.
. Semantic firewall also supports several protocols and it parses
data passed through these protocols, I added support of SMTP, HTTP,
FTP protocols.
OPEN-SOURCE CONTRIBUTIONS
Appliance OS (https://sourceforge.net/p/applianceos/wiki/Home/):
Working on GPL base new distribution with core focus to develop easy to use
distribution for appliances, base os is available at source forge (but more
feature development in progress), more information can be found at below
link
s3ffs (https://github.com/skoobe/s3ffs):
s3ffs (S3 Fast File System) is a user space file system to mount Amazon S3
buckets, major development is finished now working on bug fixing, more
information can be found at
EDUCATION
Bachelor of Science (Honors), Computer Science - (Four year program)
(2003-2007)
Punjab University College of Information Technology, (PUCIT)
University of the Punjab, Lahore,
Pakistan (www.pucit.edu.pk) CGPA: 3.08/
4.0
I.C.S (Grade A)
(2000 - 2002)
Punjab College of Information Technology, Lahore, Pakistan
DISTINCTION AND HONORS HELD
< Won 4 merit scholarships from University of the Punjab for Academic
performance in Bachelor
< Certified Ubuntu-Linux User Free & Open Source Foundation Pakistan
(FOSSP) awarded this certificate on completing training for Ubuntu-
Linux in 2005
< Declared as "Top Performer" of the year for year 2009 and 2012 at
Mentor Graphics (only 5% of the employees get this award)
< Got spot bonus for extra ordinary performance during Inflexion 2.0
release (for removing Inflexion architectural limitation)
MAJOR ACADEMIC PROJECTS
Central Traffic Control System for Railroad Traffic (Final Year
Project): This project is about maximizing the number of trains
and minimizing the time required by each train to reach its
destination without colliding or coinciding with other trains on
track, through a constraint base approach.
Compiler for C- Language (Implementation language was C The
objective of this project was to understand how compilers convert
source language into target language. In this project I
implemented all phases of a typical compiler (Lexical Analyzer,
Syntax Analyzer, Semantic Analyzer and code generation).
Finger Print Recognizer (C# and MS SQL Server 2000): Developed a product
involving Finger Print Recognition (Digital Persona) for desktop.
Application to manipulate Outlook: Implemented an application to
manipulate Outlook (i.e. add/read contacts/appointments, send mail
etc.) using Redemption API and MS Outlook Object Model through C#.
Token Ring Network: Developed the Ring Network Topology in GNU Linux C.
Concepts utilized are pipes, processes and their communication.
Moreover, mutual exclusion through voting was implemented to
access a shared device.
File Management System (for Floppy disks): Developed in C++ resulting in
a self carved data structure called Generalized Tree. It provides
a command based interface for performing basic disk utility
functions (format, create, delete, edit etc.) Attempted to
understand and create a UNIX like file system.
Chat Client (C#): The goal of developing this project was to get
familiar with the Protocols. This chat client enables to chat with
client who follows XMPP protocol. I followed RFC 392 of XMPP
Protocol. It has the functionality like one-to-one chat, file
transfer, conference chat.
MAJOR TERM PAPERS (During my BS)
< Machine learning - Introduction to machine learning and different
approaches/techniques being used.
< De-compiler
< POSIX based Operating Systems - Infrastructure (UNIX / LINUX)
< Bluetooth - working of technology
< Data compression techniques
TECHNICAL SKILLS
(1 = some familiarity, 2 = working knowledge, 3 = good experience, 4 = in-
depth exposure)
Custom Distributions: Customized distribution creation
based on Ubuntu Core, and customizing existing Linux build as per
specification.
Operating Systems: Nucleus (RTOS) - (4), MEL (Mentor
Embedded Linux) - (3), Fedora
Linux - (2),
Ubuntu - (3), Microsoft Windows - (3)
Programming Languages: C/C++ (Windows and Linux) - using Visual
Studio/Borland and
vi / Eclipse - (4), C# (3),
VB.NET, Visual C, MFC, x86 Assembly
(16 bit) - using MASM - (3),
Shell Scripting (Windows and Linux) -
(1), Java (J2SE) - (2), Python
(3)
Development Tools: LTIB (4), EDGE - (4), gDebugger - (3),
Subversion - (3), GDB - (3),
Valgrind - (3),
Rational Rose (3), Klocwork (3),
Flex (2),
Yacc (2), MySql (3), MS
Project (2), MS Visio (3), GIMP (2).
AREAS OF INTEREST
Algorithmic Problem Solving, System Level Programming, Distributed
and Operating Systems
LANGUAGES
English, Urdu, Punjabi, Saraiki
LEISURE ACTIVITIES
Horse riding, swimming, table tennis, cricket, watching dramas and
biking etc.
REFERENCES
Available upon request.