| 
 | 
Amanjit GillSoftwaredeveloper C++ /
                Javaamanjit.gill@gmx.deBerlin, 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:
 
 
              Thanks for reading :-)10+ years of professional software development
                experienceC++ Systems programming/Desktop Application
                development on Windows and Linux. 
Java/Web programming with up-to-date technology stack
                
I get things done.  
 
 Projects This is just a place where my coding snippets/private
            projects will be posted.
 
               
 CV / ResumeUpdated: 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 FinanzwirtschaftPortfolio 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 ExperiencePSI 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, etcPorted 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, PHPMinimal 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/flexSet 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, EclipseJava/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 AircraftsTechnology: No Info due to NDAPosition: 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
                  StudiesIntegrated Data Mining Tool for Medics and
                  Scientists. Created Anforderungskatalog, Systementwurf
                  and Feinentwürfe (builds upon AMICI modules). Main
                  Application built using Visual C++, AMICI ModulesKnowledgebase/Ontology Editor: Complete API and GUI
                  for handling an Ontology: API and GUI (MFC) Visual
                  C++, AMICI ModulesC/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 ModulesC++ 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 ToolsJ2EE 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 driverWebsite 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 FrontendsWorked 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; 
 SkillsMethods
 
                  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, OpenGLC# Windows: .NET 1.1, COM+ (.NET Enterprise
                    Services), ADO.NET, Winforms GUI development.x86 Assembly - Working Knowledge  Programming Languages
                (Web)
                 
                  Programming LanguagesJava: JDK/JFC/JDBC, J2EE: JBoss. 
Frameworks: Spring framework: Spring MVC, Spring
                    ORM/Hibernate. JPA/JDO 
GrailsJavascript: JQuery, JSON, JSON/P, some QooxdooXML: JAXB, RelaxNG, SOAP Web services (Apache CXF) 
                (Common Programming)  
                
                  IDE: Eclipse, IntelliJ, Plain Editor XEmacsUML Case tools (Rose, Control Center)XML: Xerces, Expat, Saxon, MSXML via COMDatabases: Oracle 8i/9i (Win, Linux), SQL Server
                    2000, PostgreSQL, MySQLSource Code Control: CVS, Subversion3D: OpenGL (via C++ and C#) , VTK Visualization
                    toolkit.Perl/Python Skills: Bio-Perl, Tk, DBI. Python:
                    Tkinter, XML, databasesC (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 
 |