Yellow Duck

Jaroslav Kačer – Curriculum Vitae

1.  Personal Information

Jaroslav Kačer
name, surname, degrees:
Ing. Jaroslav KAČER, Ph.D.
date of birth:
April 1978
place of birth:
Rakovník, Czechoslovakia
Czech Republic
marital status:
married, with children
contact information:
e-mail: jaroslav [@] kacer [.] biz
phone: +420 723 914 123

2.  Key Professional Skills and Abilities


I have an 17-year experience with Java development (Java SE and EE). Right now, I work as a software engineer for IDC, mainly enhancing the company's main web site and working on a central authentication server, providing SSO for the company's customers and employees. The SSO involves communication over protocols such as SAML 2.0, CAS and OAuth 2.

I have a solid understanding and practical experience with Amazon Web Services, actively using about 10 of their services.

Before joining IDC, I worked as a Java developer for Gemalto, creating server-side Java EE software related to computer security, authentication and digital signature. In the past, I worked as a portlet and EJB programmer for IBM WebSphere Portal v5 and Sun Portal Server v7. I have experience with writing SOAP web services using JAX-WS, JAX-RPC, and Apache Axis and with writing RESTful web services. A few years ago I gained a solid experience in the telecommunication area by participating on a project of billing mediation system migration and a SMS/MMS messaging platform. I am author of a scientific Java library for discrete-time process-oriented simulation. As an independent software vendor, I developed a Java desktop application for ČEZ, a major Czech energy company. I also worked as a Java developer on a large client/server logistics application.

I have contributed to the following open source projects: Apereo CAS, PAC4J, I also maintain IDC's extensions to PAC4J.

Key skills:

  • Java Enterprise Edition (Java EE, formerly J2EE)
    • Presentation layer: JSR-168 Portlet API, IBM WebSphere Portlet API, JSPs, servlets, Apache Tiles
    • Business layer: EJBs 2.0 + 3.0 – stateless session beans, message beans
    • SOA: Web services using Apache Axis 1.3, Web services on BEA WebLogic 9.2 and Sun App Server 8.2, Enterprise Service Bus – Aqua Logic 2.5, RESTful web services: JAX-RS 1.1 and Jersey
    • Selected areas of Spring 3, mainly Spring MVC
    • Object-relational mapping: MyBatis 3, JPA, Hibernate 5
    • AJAX: Direct Web Remoting 2.0
  • Spring Framework
    • Spring Boot, Spring MVC, Spring Security
  • Java Standard Edition (Java SE, formerly J2SE)
    • Most main parts of the JDK library and tools
    • Unit testing: J-Unit 3, 4, 5, TestNG, Mockito, Hamcrest
    • Basics of Eclipse RCP and OSGi
  • Cloud solutions: Amazon Web Services (AWS)
    • Actively using about 10 AWS services: EC2 including auto-scaling and load balancing, S3, RDS, EFS, ElastiCache, CloudFront, CloudWatch, CloudFormation, CodeDeploy, SNS etc.
    • Migrated a few systems from traditional on-site hosting to AWS cloud hosting.
  • Design patterns – Basic overview and selected design patterns
  • SQL
    • Data manipulation and definition
    • Experience with Oracle, DB2, PostgreSQL, TimesTen and a few embedded databases
  • UML – Mainly class diagrams, use case diagrams, activity diagrams, deployment diagrams
  • ANSI C, C++, including basics of the Standard Template Library
  • LaTeX, DocBook
  • Version control systems
    • Git, including some more advanced branching patterns like GitFlow
    • IBM Rational Team Concert – Eclipse-based environment, web environment
    • Mercurial – Eclipse-based environment, command line
    • Subversion – From command line on Solaris, Windows, and OS/2; from Eclipse using Subclipse; from Windows GUI using TortoiseSVN
    • CVS – From command line on OS/2; from IBM RAD using the built-in plugin
  • Comptel EventLink 5
  • Telefónica O2 CZ M2M Protocol – knowledge of principles and basic SMS/MMS elements
  • Rexx, Unix shell scripting
  • HTML 4, XHTML 1.0, CSS2
  • Dojo, JQuery, JavaScript
  • Communication and organization skills

Experience with the following development environments and tools:

  • Standard JDK tools, Apache Ant, Apache Maven
  • Eclipse 4.x, Netbeans 6.x
  • Rational Software Architect 7.5, Rational Application Developer 8.0, Rational Team Concert 3
  • TOAD, SQL Plus on Solaris, SQL Developer, Squirell
  • Soap UI
  • GCC 3.x, Open Watcom 1.x
  • Doxygen (a universal code documentation tool similar to JavaDoc in use)

Experience with the following database management systems:

  • IBM DB2 9.5
  • Oracle 9, 10, 11 and 12
  • Hyper SQL 2.2, H2
  • TimesTen 6

Little experience:

  • PHP
  • C# and ASP.NET

3.  Education

2001 – 2005:
Ph.D. studies at Department of Computer Science and Engineering, ZČU-FAV
  • Study programme Computer Science
  • Passed 2-year course Cisco Networking Academy, semesters 1-4
  • Doctoral thesis Simulation-Based Checking of Java Concurrent Programs defended on May 27, 2005
1996 – 2001:
University of West Bohemia in Pilsen, Faculty of Applied Sciences
  • Study programme Computer Science and Engineering, speciality Software Engineering
  • Three study stays abroad
  • Defended master's thesis Kernel of the J-Sim Simulation Library, passed grad exams Database Technologies, Design of Information Systems, and System Programming
  • Passed certificate programme French for Engineers, master's thesis defended also in French. Certificate issued by the Faculty of Humanities
1992 – 1996:
Václav Hlavatý High School in Louny
  • Graduation in Czech, English, mathematics and computer science
  • Participation in the contest Computer Genius, organized by the computer magazine Chip
1984 – 1992:

3.1.  Formal Training and Qualification

Sun Certified Developer for the Java 2 Platform
Sun Certified Programmer for the Java 2 Platform, SE 5.0
Ph.D. in Computer Science – University of West Bohemia
Cisco Networking Academy – 4 semesters
Ing. (MSc. equivalent) in Computer Science – University of West Bohemia

3.2.  Study Abroad Experience

January 2001 – June 2001:
Växjö universitet, Växjö, Sweden. 5 months. An Erasmus study stay.
July 1999 – August 1999:
C.I.R.U. 99, Besançon and Dijon, France. 1 month. An international student meeting with focus on science, organized by Lions Club de France.
March 1999:
L'Institut univesitaire téchnique, Limoges, France. 1 week.
March 1996:
Lycée Joffre, Montpellier, France. 1 week.
March 1994:
Lycée Joffre, Montpellier, France. 1 week.

4.  Language Skills

native speaker
advanced, certificate from the Faculty of Humanities, ZČU
beginner, basic vocabulary only, 3-month Swedish language course (5 p.) and 3-month Swedish culture course (5 p.) at Växjö universitet
beginner, 2 years at elementary school

5.  Work Experience, Sample Projects and Achievements

5.1.  Since December 2013: IDC; Software Engineer

Working as a Java EE developer in the Web Channel team, mainly on the company's main web site and associated systems - central authentication system, delivery of content to customers, processing of content generated by other internal systems, etc.

5.1.1.  Since December 2013: IDC Web Channel team

Java EE Developer

  • Development, maintenace and production operation of several Java-based systems, both costumer-facing and internal.
    • Applications built on Spring Framework 4.x, Spring Boot (some), Spring Security.
    • Implemented a solution to provide SSO between IDC client-facing application and external companies' intranets using the SAML 2.0 protocol. Based on the open-source Apereo Central Authentication Server (CAS), with help of PAC4J. Enhanced the provided solution to supports multiple SAML identity providers, implemented additional checks. Contributed to CAS and PAC4J projects with bugfixes and a few smaller enhancements. Created an open-source independent library that enhances PAC4J. Interconnected around 20 big clients with IDC using SAML.
    • Migrated all systems from in-house hosting to Amazon Web Services. This includes changes in deployment and operation, definition of infrastructure using AWS CloudFormation, monitoring, auto-scaling etc.
    • Using Jenkins to achieve continuous integration.
    • Using Git as main source-control system, with an additional branching strategy - GitFlow.

Technologies: Java 8 SE, Spring 4.3, Spring Boot, Spring Security, Spring MVC, J-Unit 5, TestNG, Mockito, Hamcrest, JPA, Hibernate 5.x, QueryDSL, Shibboleth, MS ADFS, MS Azure Active Directory, Apache Maven 3, Jenkins, Git, Apereo CAS, PAC4J, Oracle DB 12, PostgreSQL, Apache Tiles, JSP, JQuery.

5.2.  October 2012 – November 2013: Gemalto (via SII); Software Engineer

Working as a Java developer on various internal projects.

5.2.1.  October 2012 to November 2013: eGovernment Solutions

Java EE Developer

  • Development of components for a Spring MVC - based web application providing Single-Sign-On services
    • Application built on Spring MVC 3.2.
    • Application providing SSO authentication for a federation of servers; based on the SAML (Security Assertions Markup Language) standard.
    • Development of individual components later integrated by means of Spring. This involved application logic, UI and unit tests.
    • Created a configuration sub-system based on the Java Content Repository (JCR) standard.
    • Defined and maintained builds on a Jenkins server to achieve continuous integration.

Technologies: Java 6 SE, Spring 3.2, Spring MVC, Spring Data, J-Unit 4, Mockito, Open SAML, Shibboleth, Apache Shiro, JBoss ModeShape 3, Maven 3, Jenkins, Mercurial

5.3.  April 2009 – September 2012: IBA CZ, s.r.o.; Software Engineer

Working within IBM Austria on various projects (see below) as a Java developer.

5.3.1.  March 2012 – September 2012: IBM Solution Development Manager

Java SE Developer

  • Development of an Eclipse RCP - based application for financial planning
    • Eclipse RCP 3.5
    • Development of UI and application logic
    • Development of unit tests
  • Using Rational Team Concert for team cooperation
    • Planning, task/defect tracking, source-code management

Technologies: Java 5 SE, Eclipse RCP 3.5, J-Unit, Mockito

5.3.2.  February 2010 – February 2012: CareerSmart Dashboard – IBM's Intranet Learning Site

Java EE Developer, Dojo Developer

  • Technical design and implementation of a server-side Java EE application
    • Running on IBM WebSphere AS v. 7
    • Connecting to a number of database sources and web services
    • Providing DWR web services for the client side, thus allowing an easy implementation of Ajax UI
    • Providing RESTful web services to other applications, using the JAX-RS standard
    • Business logic implemented as a set of EJBs
    • I also developed a caching component, which is used throughout the application. The component caches results of web service calls, database operations and business-logic computing into WebSphere's DynaCache and/or proprietary database store.
    • Database operations done via the MyBatis library
  • Development of client-side Ajax UI
    • Development of Dojo widgets
    • Calling DWR web services running on the server
  • Using Rational Team Concert for team cooperation
    • Planning, task/defect tracking, source-code management and building

Technologies: Java 5 EE, IBM WebSphere AS 7.0, MyBatis 3, Direct Web Remoting 2.0 (DWR), JAX-RS 1.1 + Jersey 1.4, XML, JSON, IBM DB2 9.5, JSON4J, Dojo 1.6, many Apache's open-source libraries

5.3.3.  May 2009 – January 2010: Learning@IBM Explorer – IBM's Intranet Learning Site

Java EE Developer, Dojo Developer

  • Optimization of build process of Dojo layers used throughout the site
    • Introduced Dojo-like internationalization into a set of cca 100 Dojo UI widgets
    • Replaced a set of complex Ant build scripts with a simple one, yet performing the same job
    • Saved about 75% of build time
    • Configured a Cruise Control server for continuous integration of the project
  • Development of RESTful web services
    • Created RESTful web services returning JSON output
    • Used JsonLib to produce 100% valid JSON output
    • DB interaction via plain JDBC

Technologies: Dojo, Ant, Cruise Control, J2EE 1.4, IBM WebSphere AS 6.0, RESTful Web Services, JSON, IBM DB2, JsonLib

5.4.  February 2009 – March 2009: Business Partners for You, s.r.o.; IT Consultant

No details available.

5.5.  January 2006 – January 2009: Devoteam, s.r.o.; IT Consultant

5.5.1.  January 2008 – January 2009: Premium SMS/MMS Platform Development, Telefónica O2 Slovakia

Solution Technology Lead

  • Technical supervision of development of a new platform for premium-rated SMS/MMS messages
  • From architecture through development and testing to roll-out
  • Technical assistant to the project manager
  • Negotiation with: business owners, architects, internal and external development teams, test team, operation department, owners of cooperating systems
  • Creation and revision of various documentation during the project lifecycle

Technologies: UML, Java EE 5, JBoss 4.x, Web Services, Oracle, Swift MQ, Telefónica O2 CZ M2M Protocol

5.5.2.  November 2007 – December 2007: Development of Electronic Invocing System, Logos, a.s.

Java EE Developer

  • Creation of a system of electronic invoicing for a major telecomunications operator
  • Composing container PDF files from several independent files using the iText library
  • Functionality delivered as an EJB module, deployed onto WebLogic 9.2
  • Using WebLogic Timer & Work Management API for scheduling repetitive jobs
  • Using Spring 1.2 to interconnect components where possible
  • Decoupling processing in different functional blocks using JMS queues
  • Accessing Oracle DB through Spring DAOs
  • Using XDoclet to generate deployment descriptors and EJB interfaces
  • Using J-Unit 3 for unit tests

Technologies: BEA WebLogic 9.2, iText 2.0, Spring 1.2, Oracle 10g, XDoclet, J-Unit 3

5.5.3.  September 2006 – October 2007: T-Mobile International Billing Mediation

C/C++/Java Developer

  • Migration of the International Billing Mediation Platform from Comptel EventLink 4.x to Comptel EventLink 5.x.
    • At the end, centralized billing mediation system for the Czech Republic, Germany, Austria, the Netherlands, and the UK
    • Development of an EventLink stream for settlement rating
    • Sequence of nodes manipulating data records: Decoder, business logic (main focus), encoders
    • Decoding of input records, processing and distribution to several target systems
    • Stress on efficiency and maximum performance while keeping the program well structured
    • Platform: Comptel EventLink 5.3 running on Solaris 9
    • Language: C++, using GCC 3.4 as compiler
    • Development IDE: Eclipse 3.2 + CDT plugin
    • Version control system: Subversion
    • Proprietary libraries (C++) for advanced data structures, database, and communication with the EventLink platform
  • Development of a web-based monitoring application
    • A web application to monitor data collected from source systems, exchanged between nodes of the Billing Mediation Platform, generated by the nodes, and exported to target systems
    • Platform: Java 1.4 Enterprise Edition
    • Server: Apache Tomcat 5.0
    • Databases: TimesTen 6.0 in-memory database, Oracle 9.2, later MySQL 5
    • OS: Solaris 9, Windows 2000/XP
    • Development IDE: Eclipse 3.2 + Web Tools Plugin
    • Version control system: Subversion
    • Technology used: Servlets, JSPs, XHTML, CSS, TimesTen, Oracle, and MySQL JDBC drivers
    • Configuration of Apache HTTPD as a proxy for Apache Tomcat, data exchange using AJP and JK2
    • Configuration of user authentication and authorization on per-resource basis
    • Basic configuration and administration tasks on TimesTen database
    • Form-based authentication, digested (MD5) passwords
    • Configuration of a security realm as a source of data for authentication and authorization
    • Using the "Model-View-Controller" and "Data Access Object" design patterns
    • Writing portable SQL queries (TimesTen, MySQL)
  • Development of a network element simulator and analyzer of data generated by the mediation system
    • An application generating test data based on templates and configuration and an application analyzing data generated by components of the mediation systems
    • Used as checking tools during development
    • Language: C, using GCC 3.4 as compiler
    • OS: Solaris 9
    • Version control system: Subversion
  • Administration of a Subversion server
    • Daily backups
    • Hook configuration
    • Running the Trac management system together with Subversion
  • Unix shell scripting (Solaris, Korn shell)
  • Creation of a profiling tool for S-Lang programs
    • Based on dynamic libraries (.so) loaded from an interpreted S-Lang program and precise time measurement using special Solaris/HP-UX system calls
    • Preprocesessing and analysis tools written in Java
  • Defined versioning policy based on existing company rules of release management
    • Branching, tagging, ponts of code merging
    • Support for regular releases and hot fixes

Technologies: Comptel EventLink 5, Solaris 9, Java 1.4, Apache Tomcat 5.0, TimesTen 6.0, Oracle 9, MySQL 5

5.5.4.  August 2006 – September 2006: SOA Prototype Application, Devoteam internal project

Java Developer, ESB Configurator

  • Research on web services frameworks and tools
  • Building a prototype of an architecture consisting of web services, enterprise service bus, and portal; plans for WS-Security and identity management
  • Option 1: JBoss 4.0, Apache Axis 1.3, Eclipse 3.2 + Web Tools Plugin 1.5
  • Option 2: BEA WebLogic 9.2, BEA AquaLogic 2.5, BEA Workshop 9.2
  • AquaLogic ESB configuration

Technologies: J2EE, Web Services, Enterprise Service Bus, BEA WebLogic & AquaLogic, JBoss, Apache Axis

5.5.5.  July 2006: RSS Reader Portlet, Devoteam internal project

Java Portlet Developer

  • Development of a portlet displaying a chosen RSS stream in HTML
  • Portlet API: JSR-168
  • Target environment: IBM WebSphere Portal 5, intranet company portal with 2300 users
  • IDE: IBM RAD 6

Technologies: J2EE, JSR-168, JSP, RSS

5.5.6.  March 2006 – June 2006: DHL New Production System (NPS)

Java Developer of a Logistic Application

  • Refactoring of a large client/server Java logistics application
  • Client: Swing application
  • Co-developed an MVC framework running upon Swing with strict separation of Model, View and Controller. Use of design patterns Chain of Responsibility, Command, ...
  • Server: Application packaged and deployed as an EAR with EJB and web modules
  • XDoclet for automated creation of deployment descriptors and EJB interfaces
  • Object-relational mapping: iBatis
  • Database access: Oracle Thin driver
  • Development IDE: Eclipse 3.1
  • Application servers: JBoss 3.2, BEA WebLogic 8.1
  • Experience with WebLogic Web Console to configure the application server and to deploy applications
  • Working in a team of 10 people, broader team of about 125 people
  • Version control system: Subversion + Subclipse plugin
  • Negotiation with business analysts to understand functionality of the refactored application

Technologies: J2EE 1.4, Swing, BEA WebLogic 8, JBoss 3, Subversion, MVC

5.5.7.  January 2006 – March 2006: Telefonica IPTV

Level-2 Product Support

  • IP networks, ADSL access technology and transport networks
  • Configuration and maintenance of Cisco equipment (65xx, 76xx)
  • Administration of UNIX systems – Solaris 9 and Linux Rad Hat Enterprise Edition
  • Installation and configuration of Windows XP
  • Supervision systems
  • Digital TV, MPEG2 and MPEG4
  • Video-on-Demand servers: C-COR nCube, Transient OS

Technologies: Cisco, TCP/IP Networking, Telefonica IPTV Platform

5.6.  April 2005 – December 2005: University of West Bohemia, IT Center; IBM WebSphere Portlet Programmer

Designing and writing portlet applications for IBM WebSphere portal v. 5, EJBs for database access (Oracle).

5.6.1.  April 2005 – October 2005: Portlets and EJBs for IS/STAG

Portlet and EJB Programmer, Packager

  • Rewriting an existing information system ( into portal environment
  • Study agenda, used by 11 universities in the Czech Republic, covers all aspects of school-student-teacher-course-resource relationships
  • Programming session EJBs to access database using JDBC API and Oracle thin driver, programming portlet controller and HTML output through JSPs
  • Also responsible for packaging applications into WARs/EARs and for application dependencies
  • Development IDE: IBM Rational Application Developer 6
  • Working with Oracle 10g through TOAD, writing and testing SQL statements

Technologies: J2EE 1.3, IBM WebSphere 5, IBM Portlet API, JSP, Oracle 10g

5.6.2.  August 2005 – December 2005: Teacher's Assistance

Portlet and EJB Programmer, Packager

  • Creating a new subsystem of an existing information system (see above)
  • Electronic submission and collection of student works via portal, optional validation during submission using a standalone server, individual/mass download, disk repository of submitted files
  • Programming session EJBs to access database using JDBC API and Oracle thin driver, programming portlet controller and HTML output through JSPs
  • Implementing file upload using Jakarta FileUpload and file download using servlets
  • Also responsible for packaging applications into WARs/EARs and for application dependencies
  • Development IDE: IBM Rational Application Developer 6
  • Working with Oracle 10g through TOAD, creating conceptual and physical DB schema, assuring data integrity, writing and testing SQL statements

Technologies: J2EE 1.3, IBM WebSphere 5, IBM Portlet API, JSP, Servlets, Oracle 10g, RMI

5.6.3.  April 2005 – December 2005: Various smaller portlet applications

Portlet and EJB Programmer, Packager

  • Smaller portlet applications: Simple chat, Document viewer
  • The same responsibilities and technologies as above

5.7.  Since 2003: Independent Software Vendor and IT Consultant

Various smaller projects according to customers' needs on ad-hoc basis.

5.7.1.  October 2007 – March 2008: Development of an Application for Document Exchange between the City of Prague and Prague Citizens, Business Partners 4 You, s.r.o.

Designer & Java EE Programmer

  • Working for a subcontractor of the main vendor
  • The application allows Prague citizens to exchange digital documents with the City Hall of Prague and city districts and to have an overview of all documents sent by the user and all documents sent back to him
  • The application also handles hard-copy documents sent by classis mail
  • Electronic documents sent by the user and those sent back to the user by an institution can be downloaded directly from the portal
  • Creation of some of the presentation and business-logic parts of the application
  • GUI: JSR-168 portlets running on Sun Portal Server v. 7
  • Business logic: Stateless session EJB 2.0
  • Usage of web services to connect portlets with business logic and to connect the application with legacy applications (mainly PHP) running at other city institutions
  • Using Apache Axis 1 for web service servers and clients
  • Handling upload of special XML forms directly from users' computers using 602 Form Filler
  • Deployed at the Portal of Prague

Technologies: Java EE 1.4, JSR-168, Apache Axis 1, EJB 2.0, Sun Portal Server v. 7.0, Sun Application Server v. 8.1, 602 XML forms

5.7.2.  December 2004 – April 2005: J-Testy for ČEZ, a.s.

Designer & Java SE Programmer

  • Negotiation with the customer
  • Analysis (UML), design, implementation
  • Distributed client-server e-learning desktop application written in Java, running at all organization units of the customer (about 10-20 computers per unit), used for periodic testing of employees
  • Middleware: RMI
  • GUI: Swing
  • Reports defined in XML (JasperReports), export into HTML, MS-Excel, PDF etc. using Apache POI and iText, direct printing

Technologies: Java SE 1.4, RMI, Swing, JasperReports, Apache POI, iText

5.7.3.  July 2003 – August 2003: Reality Portal for NARKS by Diadema Software

C# and ASP.NET Programmer

  • Business logic programmer, C#
  • Dynamic web pages programmer, ASP.NET

Technologies: C#, .NET, MS Visual Studio

5.8.  September 2001 – May 2005: Ph.D. Student of Computer Science, University of West Bohemia, FAV-KIV

My Ph.D. thesis was focused mainly on checking multithreaded Java programs which are often hard to be tested using classic methods. During my studies, I developed a scientific Java library for discrete-time process-oriented simulation – J-Sim. I also studied the Rate Monotonic Analysis, a method for testing properties of periodic real-time concurrent programs, mainly their threads' ability to complete before given repeated deadlines.

I was a teaching assistant in courses Programming in C and Object Oriented Programming for three years.

Copyright © 2018 Jaroslav Kačer. All rights reserved.
This page was last updated on $Date: 2018-11-23 23:54:49 +0100 (pá, 23 11 2018) $.
This web is a part of the Kačer.BIZ network.