|
Amanjit Gill
Softwaredeveloper C++ /
Java
amanjit.gill@gmx.de
Berlin, Germany
Last Update: 20140904
My Blog, My CV, My Skills, Contact, My Projects, My Linkedin
Profile, My Bachelor
Thesis
Hi, I am a Software
Developer (BSc Informatik). I was born and raised in germany
(1974), german is my mother tongue. I am currently employed
at PSI AG
(Software Developer C++). I offer:
- 10+ years of professional software development
experience
- C++ Systems programming/Desktop Application
development on Windows and Linux.
- Java/Web programming with up-to-date technology stack
- I get things done.
Thanks for reading :-)
Projects
This is just a place where my coding snippets/private
projects will be posted.
CV / Resume
Updated: 20140405
Publications
- Identification of diagnostic serum protein
profiles of glioblastoma patients.
Elstner A, Stockhammer F, Nguyen-Dobinsky TN, Nguyen
QL, Pilgermann I, Gill A, Guhr A, Zhang T, von
Eckardstein K, Picht T, Veelken J, Martuza RL, von
Deimling A, Kurtz A.
Journal of Neuro-Oncology, 2010 Jul 9
link
Bachelor Thesis
Parallelisierung von Genetischen Algorithmen für
Anwendungen der Finanzwirtschaft
Portfolio Optimisation Problem solved
by using PGAs . Comparison of a C++ Implementation
using MIT's GALib with a handwritten PGA
implementation running on GPUs (written in CUDA
C/C++).
Grade for thesis: sehr gut (1,3)
pdf
Education
B.Sc. Informatik
Fernuniversität in Hagen
2011-2014 (6 Semester)
Grade: gut
Abitur (A-Levels)
1993
Gymnasium in der Taus, 71522 Backnang
Grade: gut (1,7)
Certifications
Professional Experience
PSI AG
Software Developer C++ (2014-09
... now)
- C++ Developer Gas & Oil (Windows and Linux. Qt,
Oracle, CORBA).
neofonie GmbH: Senior Software Developer
Java/C++ (2005-04 ... 2014-09)
Customer project 9 - Business Website
(2012-now)
- Maintenance and further development of features of a
popular web site providing reliable business
information.
- Technology: java, grails, maven, mysql, spring, ant,
Apache POI, external Payment provider APIs, etc
- I have been actively involved in most processes.
- Update: 2014: Migration project from RDBMS +
internal search engine to MongoDB + Apache SOLR. I am
writing most of the SOLR part. Iterative, test-driven
development with SOLR embedded server (> 70% code
coverage).
Customer project 8 - News media-related Website
(2011-2012)
- Maintenance and further development of features of a
popular web site.
- Technology: java, grails, maven2, mysql, spring
- Specified and implemented a filtering API in Java
(more or less a Query/Criteria Builder; the principal
implementation was RBMS, but some data was expected to
be fetched by a search engine, hence an abstraction
was needed).
Customer
project 7 - ImageServer (2011)
- Image Server (Java/Grails) . Serves images/thumbs
and does image manipulation - circle, shadow, crop,
rotate, scale, tile, picture framing, file format
conversion, colorspace conversion. Support for
multiple Imageserver backends. (Team Size: 2)
- Technology: java, grails, mysql, native image
manipulation libraries, JBoss Cache
- Incorporated native image manipulation libraries
(C/C++, java wrappers)
- Grails webapp development: Integration of
Imageserver into new webapp, views, controllers, etc
- Ported an existing webapp to target the ImageServer,
including multi-file uploader (Javascript/JQuery +
plugins)
Customer project 6 - Business Web Application
(2009-2010)
- Port of a native Windows Desktop Application to the
web
- Technology: java, grails, xml schema, eclipse,
intellij, maven, mysql, apache ibatis+ibator, aspose
cells/word for java
- Created XSD schema for database migration from an
existing system
- Implementation (Java) of basic formula (calculation)
engine: infix input, postfix evaluation
- Implemented enhanced calculation use cases based on
engine (Java).
- Created native word and excel files (Java) in based
on existing word and excel templates and Aspose
products, generic dispatch of report creation in an
external calculation/reporting backend
- Some basic web frontend development
(Java/Javascript) : forms, controllers, services
Customer project 5 - SOAP WebService Layer for
Searchengine (2009)
- Implemented java based web-service (JAX-WS) for a
search engine service.
- Technology: java, Apache CXF, PHP
- Minimal overhead for exposing java services as a web
service (PHP clients communicating with java backend).
Customer project 4 - Flash Livestreaming
Conception/Implementation (2008)
- Consulted customers on flash streaming technology:
client and server for multi-hours livestreaming of a
german tv channel for livestreaming and video on
demand
- Technology: java, grails, flash/flex
- Set requirements and negotiated with multiple both
german and international CDNs (content distribution
networks).
- Evaluated and implemented technology accordingly,
both on the client and server-side.
- Implemented java and grails based web ui for
management of video-on-demand videos (upload,
management, enabling/disabling)
- Client webapp code: Video plaaer (flash)
- Some code for streaming control: regional blocking
of non-german website visitors, etc
Customer project 3 - Repostiory Component /
Duplicate Detection Framework for Event Crawler
(2007-2008)
- Repository component for a duplicate detection
framework. evaluation of existing DB configurations,
conception and implementation.
- Technology: Java, Maven2/Eclipse, JPA, Hibernate,
relational database, XML parsing, JAXB2.
- Standardized document format: documents stored are
either crawled from the net or come from a reliable
source. Universal import and export from/to XML.
- Maintained and extended existing processing
framework, adapted importers and exporters from
different sources, fixed memory leaks and
multi-threaded issues
- Customized algorithm for duplicate detection based
on statistics and information retrieval algorithms.
Very, very few false positives, high precision and
recall.
Customer project 2 - JNI Bridge for
Messaging/Communication Agent (2006)
- Low-overhead C++ DLL calable from Java for Realtime
System Status / C++ JNI Bridge Bridge for Messaging
Agent
- Technology: Visual C++ 2003/2005 , Java,
Maven2, Eclipse
- Java/C++ Interoperability bridge using JNI. A
heavily multithreaded Java application invokes
functionality realized by C++ Dlls. The bridge
dynamically loads C++ Dlls and exposes C++ objects
transparently to java clients. The C++ dlls do not
have any dependency/knowledge of the java/JNI use case
(In fact, developed by a third-party). Asynchronous,
non-blocking callbacks from C++ objects into concrete
java instances (Active Objects implementation). Used
in production in a commercial communication client on
Win32.
Customer project 1 - C# Winforms Explorative
Tool with Data Mining Features (Clustering) (2006)
- Explorative Windows Data Mining Tool Design
and implementation of a project specific data mining
algorithm (clustering) in C# / ISO C++
- Concept and design of Middle thier (COM+)
- Technology: Visual C#, .NET 1.1, C++
- Custom Winforms UI Controls for display of
clustering results (interactive, zoomable and
pannable) Dendrogramm
neofonie internal products - C++ Searchengine /
C++ Textmining Engine (2005-2006)
- Position: Software Developer C++ mainly on Linux
(backend internet servers and clusters of backend
servers). Main responsibilty: Mainentance + further
development of technology.
- Successfully adapted and deployed C++ text mining /
clustering solution for one of germany‘s biggest
online service provider.
- Technology: GNU C++, Linux
GHC Charité Lufthansa:
Lead Developer C++ (2004-03 .. 2005-04)
- Telemedical Computer for Aircrafts
- Technology: No Info due to NDA
- Position: Main developer (application/core
libraries). Integration work with hardware vendors. No
further info possible due to NDA signment
University Clinic
Charité: Lead Developer C++/Java (2002-03 .. 2005-04)
- Study Manager (using Data Mining) for Medical
Studies
- Integrated Data Mining Tool for Medics and
Scientists. Created Anforderungskatalog, Systementwurf
and Feinentwürfe (builds upon AMICI modules). Main
Application built using Visual C++, AMICI Modules
- Knowledgebase/Ontology Editor: Complete API and GUI
for handling an Ontology: API and GUI (MFC) Visual
C++, AMICI Modules
- C/C++ API for UMLS Medical Dictionary API for
National Library of Medicine‘s UMLS („Unified medical
language system“), a huge Dictionary (~40 million db
rows) and semantic network. Visual C++, AMICI Modules
- C++ Database Access Layer Direct efficient C++ ODBC
Access layer for major databases: (Oracle, SQLServer,
Sybase ASA, Access) as an efficient MFC Database
replacement. C++ Unit Regression test. Visual C++,
direct ODBC programming;
- Data Mining Tools Python scripts and C++/MFC GUIs
for data mining analysis and Visualization (using
VTK). Python, Visual C++, Data Mining Tools
- J2EE Integration Benchmarking Project planning
(Requirements, System Analysis and Design), Implem. /
Evaluation of a three-thiered, Applicationserver-based
architecture for genotype and phenotype data and logic
(procedures). Benchmarking of Application server with
Oracle and SQL Server. J2EE (JBOSS Application
server), Netbeans, Ant, XDoclet.
- LDAP Directory Server Engine and Tool Simple LDAP
Authentification and Query Engine and Tool (Swing UI)
to a central Directory Server (MS Activedirectory).
JDK (JNDI, Swing), Netbeans
Trend
Computerschulung: Teacher Java (2001-09 .. 2002-03)
- Java Teaching: Teacher for a Java programming course
- attended mostly by undergraduate CS students.
- Softskills, Motivation
Ingene (Institute of
Genetic Medicine): Software Developer C++ (2001-04 ..
2001-09)
- C++ Frontend and/ Linux Cluster programming:
- Worked as a C++ Programmer for Ingene, focus on
bioinformatics (phenotype selected database) and
clustering techniques (beowulf) for data mining.
- Visual C++ 6, MFC, ODBC; Linux: GCC, M-VIA, High
perf. kernel driver
- Website programming:
- Website updates for Ingene homepage.
- Adobe GoLive
Software Solutions:
Software Developer (2000-03 - 2000-08)
- Website programming
- Created some web-site scripting (Perl) for the
MP3-Software Suite Amplay from Software Solutions.
- Technoloy: Perl, Apache Webserver
DBPro GmbH: Software
Developer (1999-06 .. 2000-06)
- C++ Database Frontends
- Worked for 12 months as a C++ Programmer for the
DBPro GmBH, Stuttgart in the field of MFC GUI and ODBC
database programming („Arbeitszeugnis“ available).
Rational Rose UML tool for code documentation. Visual
C++ 6, MFC, ODBC;
Skills
Methods
- Software Development lifecycle, featuring Methods
(Waterfall, iterative development OOA/OOD using UML
Notation), Documents (Analysis and Design documents,
functional specifications), Scheduling, Testing
(Automated white box and black box).
- Agile? Guess what, some people do some sensible
planning and still meet their deadlines. And btw,
who doesn't want to be agile? Not agile == lame
duck.
Programming Languages
(System Programming)
- C++ Windows: MFC/Win32 Desktop Applications
Development - Visual Studio, COM/ActiveX
- C++ Linux: GNU Toolchain (autoconf,libtool).
- C++ APIs: Boost, Multithreaded development, Socket
API, GUI: MFC, Qt, FLTK, OpenGL
- C# Windows: .NET 1.1, COM+ (.NET Enterprise
Services), ADO.NET, Winforms GUI development.
- x86 Assembly - Working Knowledge
Programming Languages
(Web)
- Java: JDK/JFC/JDBC, J2EE: JBoss.
- Frameworks: Spring framework: Spring MVC, Spring
ORM/Hibernate. JPA/JDO
- Grails
- Javascript: JQuery, JSON, JSON/P, some Qooxdoo
- XML: JAXB, RelaxNG, SOAP Web services (Apache CXF)
Programming Languages
(Common Programming)
- IDE: Eclipse, IntelliJ, Plain Editor XEmacs
- UML Case tools (Rose, Control Center)
- XML: Xerces, Expat, Saxon, MSXML via COM
- Databases: Oracle 8i/9i (Win, Linux), SQL Server
2000, PostgreSQL, MySQL
- Source Code Control: CVS, Subversion
- 3D: OpenGL (via C++ and C#) , VTK Visualization
toolkit.
- Perl/Python Skills: Bio-Perl, Tk, DBI. Python:
Tkinter, XML, databases
- C (1991), Pascal, Visual Basic, 68000 Assembly
(1989), OS: Win32, Linux, Irix, GEM, Windows Servers
(Windows 2000, Windows Server 2003)
- IDEs: Visual Studio .NET 2003 (prior: VC6),
Eclipse, Netbeans, XEmacs
|