Erik Krason
**** * *** **** ****. Sun City Center, FL, 33573
813-***-****, *******@******.***
https://www.linkedin.com/in/erik-krason-55411710a/
Professional Summary:
More than 20 years of experience in the IT industry with specialization in Java and web technologies. I’m primarily focused on test driven development to build Spring Boot microservices utilizing REST, Kafka, Docker, SQL and NoSQL databases. For security usually SSL, JWT, or OAuth2. I have experience with Maven, Gradle, Jenkins, OpenShift and other cloud technologies. Agile methodology, sprint work cycle, and Java best practices. Thorough experience in financial, engineering, and healthcare industries. I’m familiar with big data processing such as Spark, machine learning and analysis using PCA/SVD and TDA. I’ve worked with the most common source code repositories. My experience also includes HTML, CSS, Javascript, and AngularJS. Knowledgeable with UNIX-based OS. Experience with continuous development life cycle and testing. Worked with large teams and have a track record of being a team player and ability to deliver on time.
Technical Skills:
Languages Java, Kotlin, Scala, C/C++, SQL, JavaScript, Python, Golang.
Database MongoDB, Oracle, PostgreSQL, MySQL, Microsoft SQL Server.
IDE/Development Tools IntelliJ, Eclipse, Spring Tool Suite.
Technologies Web Services (REST and SOAP), Spring/Spring Boot, Kafka, Hibernate, JPA, Spring Security, SSL, JWT, OAuth2, HTML, CSS, JSON, Ajax, Postman, RabbitMQ, Spark.
Operating Systems Windows, Linux and other UNIX-based OS.
Management Tools Git, GitHub, GitLab, Bitbucket, Mercurial, CVS, Subversion.
Education:
Bachelor of Science in Mathematics, Institute of Technology, University of Minnesota - Minneapolis, MN
Professional Experience:
Cigna, Tampa, FL May 2022 – Feb 2025
Senior Java Developer
Currently I’m working with a group of engineers at a large healthcare company. The system of Java and Kotlin applications processes patient health data, which runs in an OpenShift environment. It uses a combination of REST endpoints and Kafka. Data persistence is mostly MongoDB and a few uses PostgreSQL.
Used SonarQube for code analysis, Checkmarx for security testing, Splunk for logging and monitoring. Daily activities included scrum and planning meetings, and testing.
Most of the applications have REST APIs. Kafka is used for connectivity between some applications. Most of the data is persisted in MongoDB, and a few in PostgreSQL.
The purpose of these microservices is to process patient data.
Used SonarQube, Checkmarx, Splunk, and Dynatrace to monitor metrics.
Development tools include IntelliJ, Studio 3T, and DBVisualizer.
Provide and maintain design and use documentation in Confluence.
Test driven development and Agile methodology. Sprint planning using JIRA. Full life cycle development in various environments.
Jenkins and OpenShift for deployment. Git used for source management.
Environment: Java, Kotlin, OpenShift, Kafka, MongoDB, PostgreSQL, SonarQube, Splunk, REST API, Checkmarx, Dynatrace, IntelliJ, Studio 3T, DBVisualizer, Agile, Jira, Jenkins, Git.
AgileThought, Tampa, FL Oct 2021 – May 2022
Senior Java Developer
Worked with a group of engineers at a large telecommunications company. The scope of the project was to add new features so an older system could be retired. It involved a large volume of phone records and processing the results with Kafka, Spark, Hadoop, PostgreSQL, and Kudu. The preconverter and REST APIs are written in Java and Spark code written in Scala. All running on Linux. Daily activities included scrum and planning meetings, and testing.
The preconverter was written Java and used standard telecommunication encoding/decoding. Kafka provided communication with Spark modules.
Various Spark modules for further refinement of data.
Microservice design using REST, JDBC Template, PostgreSQL, and Impala databases. UI built on AngularJS.
Development tools include Eclipse and DBeaver.
Provided design documentation.
Test driven development and Agile methodology. Sprint planning using JIRA. Full life cycle development in various environments.
Continuous development/deployment with Gitlab.
Environment: Java, Kafka, Spark, Hadoop, PostgreSQL, Kudu, REST API, Scala, Linux, Impala, AngularJS, Eclipse, DBeaver.
Citi, Tampa, FL Apr 2020 – Oct 2021
Vice President (Apps Dev Tech Lead Analyst)
Team lead for a group of engineers at a large financial institution. The projects have been related to data quality and auditing, and a data catalog for metadata. My responsibilities are planning, managing, architecture, and software development. Daily activities include scrum and planning meetings, obtain and refine requirements from business analysts, and peer review of development.
Involved in all phases of development.
The data catalog provides editing and storing of metadata, including auditing, and tracking of the entire process.
The data trace application also provides auditing with an implementation of AspectJ.
Microservice design using REST, JPA, and Oracle database. UI built on AngularJS.
Development tools include Eclipse and SQL Developer.
Provide architectural design of processes for project in Confluence.
Test driven development and Agile methodology. Sprint planning using JIRA. Full life cycle development: DEV, SIT, UAT, PROD.
Junit tests and SonarQube for code coverage and analysis.
Continuous development with Jenkins.
Environment: Java, Spring, REST, JPA, Oracle database, AngularJS, Eclipse, Agile, Jira, SonarQube, Jenkins.
HelpSystems, Eden Prairie, MN Sep 2019 – Apr 2020
Sr. Software Engineer
Worked on software that secures IT environments, automates processes, system and document management, and business intelligence solutions. The products operate in Unix, Linux, and Windows environments. Technologies include Backbone, Marionette, React for UI. Java REST web services with JPA and PostgreSQL for backend. Unix and Windows shell scripts for installation. The microservices communicate using Kafka. Most microservices are written in Java, one in Golang.
SPA design with Backbone, Marionette, and React. Service level architecture (REST controller, service, and repository layers) using Spring 5. JPA and PostgreSQL for persistence.
Microservice design using Kafka and Zookeeper.
The applications are numerous. Including cybersecurity, antivirus, automated processes, and document management.
Developed functional programs in Scala for connecting the streaming data application and gathering web data.
Research to implement Hadoop and Spark for distributed data processing.
Test driven development and Agile methodology. Sprint planning.
Git and Gitlab is used for source management.
Environment: Java 8, Spring 5, JavaScript, Kafka, Gradle, Eclipse, JUnit, Log4J, Gitlab.
Informatech, San Jose, Costa Rica Aug 2016 – Jul 2019
Sr. Software Engineer
Project 1: Worked on a security application. It does identification and verification of an individual's driver’s license. The information is collected from the license and sent to a state law enforcement agency. The results of the identification query are returned to the client. This result will include a basic criminal history if found. A client could be a hospital, and the state law enforcement agency also sends the information to the FBI. The technology is Spring, and Sockets or web services (SOAP or REST) for communication. The team is currently 8 developers. My responsibility is design and development of Java code. The design specifications are provided by the state law enforcement agency.
Sockets or web services (SOAP or REST) allow communication between servers and clients.
The core of the application is to send a query to the server with an individual’s information. The result from the server is parsed, and the criminal history if found is displayed to the client.
Test driven development using Junit and Mockito.
Bitbucket is used for source management.
Environment: Java 8, Spring, Maven, Eclipse, JUnit, Log4J, Mercurial.
Project 2: Created a financial application for debt management. My responsibility is back-end development. It uses a standard architecture: UI (HTML, CSS, JavaScript, etc.), a REST service layer, and a persistence layer, which connects to a SQL Server database. The back-end part of the application uses Java 8, Spring 4, and JPA. Initially the client decided to use JPA but later decided to change the design to JDBC Template. Although ORM is popular, JDBC Template gave us better performance and more control of the SQL, which could be adjusted by a DBA. The application server is Tomcat 8. The team is 7 developers. Microservice design using Kafka and Zookeeper.
The REST web service uses Spring 4, and Swagger to document APIs.
The persistence layer was initially JPA but later changed to JDBC Template.
The core of the application is processing database transactions. The UI calls the REST web service, which calls the persistence layer.
When JPA was used, Query DSL was also used because many of the queries were complex and had to be created dynamically. Later with JDBC Template the SQL queries were loaded from file using Snake Yaml. The purpose is to allow DBA to make adjustments to SQL.
Test driven development using Junit and Jenkins. Swagger and Postman are also used for testing. Agile methodology.
Environment: Java 8, HTML 5, CSS, JavaScript, Spring 4, JPA, Spring JDBC Template, Maven, SQL Server, Spring Tool Suite, JUnit, Log4J, Git.
Mobilize, San Jose, Costa Rica Jan 2016 – Aug 2016
Sr. Software Engineer
The purpose of this project is to convert applications written in VB or PowerBuilder to Java. Using a proprietary translation tool all components of VB or PowerBuilder are converted into Java based components. The UI consists of HTML5, JavaScript, CSS, and AngularJS. The rest of the application consists of Spring 4, including web services, running on Java 8. The application server is Tomcat 7. The application is integrated with a portal. The final product for the client is used for accounting and other financial based tasks. The team is 10 to 15 developers.
The UI was designed with HTML5, JavaScript, CSS, and AngularJS.
Using a proprietary code translator and code generator.
The core of the application is Spring 4 using annotations. AngularJS provides a means to communicate with the spring web service. The application runs on Tomcat 7.
Spring JDBC Template and MySQL provide the persistence layer. Security is provided by the portal, which is proprietary technology.
Microservice design using Kafka and Zookeeper.
Test driven development using Junit and Jenkins. Agile methodology.
Git is used for source management.
Environment: Java 8, HTML 5, AngularJS, CSS, Javascript, Spring 4, Spring JDBC Template, MySQL 5, Eclipse, JUnit, Log4J, Git.
SoftonITG, San Jose, Costa Rica Aug 2014 – Dec 2015
Sr. Software Engineer
Project 1: A mobile banking application that allows a user to apply for a new account or a loan through a credit union. The application can be run through a browser or a native iPhone application. A user would be prompted for basic personal information which would be submitted to the bank for approval. This is an improvement over the traditional method of applying directly through a credit union's website. The result is more business for the bank. By keeping the UI simple and able to run on many different devices, this is a more effective marketing tool for banks.
The UI was designed with HTML 5, AngularJS, CSS, JavaScript, and jQuery.
Using Apache Cordova allows it to run on many different devices.
The core of the application is Spring boot using annotations. AJAX provides a means to communicate with the spring controllers. The application runs on AWS.
GitHub is used for source management.
Spring JDBC Template and MySQL provide the persistence layer. Security for an admin portal is provided by Spring Security.
Test driven development using Junit and Jenkins. Agile methodology.
Environment: Java 7, HTML 5, AngularJS, CSS, JavaScript/JQuery, Spring 4, Spring Security 3, Spring JDBC Template, MySQL 5, Gradle, Eclipse, JUnit, Log4J, GitHub.
Project 2: A new health care application using the latest Java technology. Since it needs to run on all devices (desktop, tablet, and mobile), the UI consists of Bootstrap and AngularJS. This gives a responsive UI for all devices. The AngularJS controller communicates with a Spring REST web service. The database is MySQL and Hibernate for persistence. Security is provided by Spring Security. Annotations are used throughout the application, which is built with Maven. GitHub is the source control. My overall approach is to use the latest technology and techniques.
Because the application needs to run on any type of device, Bootstrap provides the best UI. AngularJS works well with Bootstrap to provide a controller and validation.
Security is handled by Spring Security. Annotations are used throughout, no XML files.
A Spring REST web service provides the communication layer with the Bootstrap/AngularJS UI. JSON is the data format.
The data model uses Hibernate with annotations and MySQL.
The purpose of the application is to allow nursing homes to monitor patient data, and other administrative features.
Environment: Java 7, Bootstrap 3, AngularJS, JavaScript/JQuery, Spring 4, Spring Security 3, Hibernate 4, MySQL 5, Maven 3, Tomcat 7, Eclipse, JUnit, Log4J, GitHub.
EX2 Outcoding San Jose, Costa Rica Feb 2011 – Jul 2014
Sr. Software Engineer
Project 1: The focus of SecureLink is to provide secure networks to its clients. For customers in secure and regulated environments, SecureLink Gatekeeper enables remote support from technology vendors. They have several complex applications using: Freemarker, Struts, Spring, Hibernate, and other Java technologies. Various kinds of encryption are used. Projects have involved maintaining current code and creating new features. Their system runs on Linux.
A new feature added to the application involves using a one-time token for access in the case of a forgotten password, instead of username/password.
Allow gatekeepers to be moved between customers.
Implemented a socket-based messaging between server and client. This was used to measure the speed of a connection after the encrypted tunnel was established.
Implemented a newer mail system using TLS.
Introduced a TimerTask to monitor some events which may be running too long and notify the user.
SVN was used for source management, and Selenium for UI testing.
Environment: Java 7, Freemarker, JavaScript/JQuery, Struts, Spring, Hibernate, PostgreSQL, JBoss, NetBeans, JUnit, Ant, Log4J, Selenium, Jenkins, Linux.
Project 2: This project involved adding new features to a web-based application that processes patient health records for multiple clients. The purpose is to allow eye care clinics to manage the patient's records in a more efficient manner. One of the new features I created gathered records from the database and using XSLT technology with FOP put the data in a well formatted PDF file. Another feature involved file transfer techniques. I also did most of the testing. The client was pleased with the final product, which was delivered on time.
Designed and tested a feature that processed records from a database and with the help of Apache FOP and a XSLT transformation, put the patients records in a PDF file.
I developed a system of ID generators which could obtain the patient's ID by various algorithms. This gave the client flexibility in processing file transfers of patient records.
A service-based architecture including DAO objects for the Spring JDBC template. Prepared statements worked well for this situation.
I also developed some improvements in processing data for insurance companies.
Development and deployment using Eclipse and JBoss. Designed and developed JUnit tests, and Log4J for logging.
SVN was used for source management.
Environment: Java 6, J2EE 1.4, JSP, JSTL, XSLT, Spring 3.1.0, Apache FOP, Apache Commons, MySQL, JBoss, Eclipse, JUnit, Ant, Log4J, Windows XP.
Project 3: Developed and tested J2EE application for a marketing company. Alinean's XcelLive application does ROI analysis for their clients. The application has a Struts based GUI and SQL Server database. I developed the Spring/JMS part so it could process events related to analysis. I also led development for integration with Jreport, specifically the custom security layer. Currently I'm working on Quartz scheduling for their JMS based event reporting and hibernate for data persistence.
Designed and developed Spring and JMS features to provide point-to-point messaging of event reporting related to the client's ROI analysis.
Created a custom security layer so XcelLive application could communicate with a Jreport server.
Designed and integrated a Quartz based scheduling system so event reporting would be handled by JMS and Hibernate.
Designed and developed the Pipeline data using Python.
Lead developer responsible for design, development and integration of new features previously described, and coordination with other developers.
Development and deployment using NetBeans.
Designed and developed JUnit tests.
CVS and later SVN were used for source management.
Environment: Java 7, J2EE 1.4, JSP, Struts, Servlets, JSTL, Spring, Hibernate, Apache Commons, SQL Server, ActiveMQ, Jreport, Hudson, HTML, XML, JavaScript, Netbeans, Eclipse, JUnit, Ant, Log4J, Windows XP, Linux.
Wells Fargo, Minnesota, USA Oct 2008 - Dec 2010
Sr. Software Engineer
Developed and tested J2EE application for wholesale banking and lockbox. I contributed to all aspects of the projects including new transmission procedures. Provided improvements to existing GUI, adding new middleware for enhancements. Designed PDF format for bank records using iText. Standard test methodology was used for full cycle development. Coordinated projects with other teams to meet deadlines. I also participated in a 24-7 service rotation for our product.
Designed and developed transmission procedures based on SFT and SAFE.
Designed and developed JUnit tests.
Development and deployment using Eclipse and WebLogic.
Responsible for design, development and integration of wholesale banking and lockbox software.
Update older frameworks to Spring and Hibernate.
Used JMS to provide point-to-point messaging.
ClearCase was used for source management.
Environment: Java 1.6, J2EE 1.4, JSP, Struts, Servlets, JSTL, Spring, Hibernate, Apache Commons, Oracle, HTML, XML, JavaScript, WebLogic, Eclipse, JUnit, Ant, Log4J, Windows XP, Linux.
Carlson Travel, Minnesota, USA Oct 2007-Oct 2008
Sr. Software Engineer
Developed and tested J2EE middleware and GUI. Developed web services to allow travelers to make air/hotel/car reservations. Provided improvements to existing GUI, adding new middleware for enhancements. Agile methodology was used for full cycle development. Coordinated projects with other teams to meet deadlines.
Designed and developed web services using Apache Axis.
Designed and developed JUnit and HTML Unit tests.
Development and deployment using Eclipse and WebLogic.
Responsible for the design, development, and integration of travel software for the business community.
Update older frameworks to Spring and Hibernate.
Update Ant projects to Maven.
Subversion was used for source management.
Environment: Java 1.4, J2EE 1.3, JSP, Struts, Servlets, JSTL, Spring, Hibernate, Apache Commons, Oracle, HTML, XML, JavaScript, WebLogic, Eclipse, JUnit, Ant, Log4J, Windows XP.
GMAC-RFC, Minnesota, USA Aug 2007 - Oct 2007
Sr. Software Engineer
Developed and tested J2EE middleware. These asynchronous services used JMS and JMX to provide financial transactions. The scale of this project involved over 100 services running on several servers using many Oracle databases for the mortgage industry.
Designed and developed EJB based services.
Designed and developed JUnit tests and system tests.
Development and deployment using Eclipse and WebLogic.
Responsible for design, development, and integration of financial transactions.
Used JMS to provide point-to-point messaging.
Subversion was used for source management.
Environment: Java 1.4, J2EE 1.3, JSP, Struts, Servlets, JSTL, Spring, Hibernate, Apache Commons, Oracle, HTML, XML, JavaScript, WebLogic, Eclipse, JUnit, Ant, Log4J, Windows XP.
Rosemount, Minnesota, USA Jul 2005 - Aug 2007
Sr. Software Engineer
Developed and tested Java web-based application to interface with temperature and pressure monitoring equipment. This web application used Apache Tomcat in an embedded environment.
Designed and developed JSP and Java servlets in an embedded environment.
This project uses J2EE, MVC framework, Apache Web Server, Tomcat, Struts, XML, AJAX, and SQLite for database persistence.
Designed and developed JUnit tests. Development and deployment are on Linux using Vmware. ClearCase for software management.
Environment: Java 1.4, J2EE 1.3, JSP, Struts, Servlets, JSTL, Apache Commons, SQLite, HTML, JavaScript, Tomcat, Eclipse, JUnit, Ant, Log4J, ClearCase, VMware, Linux, Windows XP.
Metris, Minnesota, USA May 2005 - Jul 2005
Sr. Software Engineer
Developed and tested J2EE intranet/internet web applications using Oracle 10G Application Server, MVC framework, Eclipse, Struts, Hibernate and CVS.
Writing and implementing JUnit tests.
Writing J2EE application that manages archived records. This application also utilizes UNIX Cron.
Designed a J2EE/portal interface for financial records.
CVS was used for source management.
Environment: Java 1.4, J2EE 1.3, JSP, Struts, JSTL, Servlets, Apache Commons, Oracle, HTML, JavaScript, Hibernate, WebLogic, Eclipse, JUnit, Ant, Log4J, CVS, Windows XP.
Renovo Software, Minnesota, USA Nov 2004 - May 2005
Sr. Software Engineer
Developed software for video conference scheduling. This allowed the client to schedule video conferences through video streaming technology. Technologies include: J2EE, Java, MVC framework, JavaScript, HTML, Servlets, Struts, EJB, XML, Eclipse, Tomcat, Hibernate, Oracle 9i, and MySQL.
This project was a redesign of an HTML/JSP/COM system, which now incorporates Struts and standard J2EE design practices.
This multi-tiered enterprise product improved performance, stability, and being based on J2EE design made it easier for the client to maintain.
This enterprise application used JSP, Servlets, Struts, Jasper Reports, and JDBC.
Improved SQL queries for better performance.
Writing and implementing JUnit tests.
Delivered this product on time and according to the client’s specifications.
CVS was used for source management.
Environment: Java 1.4, J2EE 1.3, JSP, Struts, JSTL, Servlets, Apache Commons, Oracle, HTML, JavaScript, Eclipse, JUnit, Ant, Log4J, CVS, Windows XP.
Born Information Service, Minnesota, USA Mar 2004 - Nov 2004
Sr. Software Engineer
Served as a developer in the network solutions industry. Designed a scalable web-based architecture to support requirements gathered during the discovery phase to reengineer the project. Developed an HTML prototype showcasing the proposed user interface for client approval. Compiled coding standards documents. Set up project development environment and implemented portions of the application using above mentioned architecture. Responsibilities also included creating test cases and involvement in testing. Technologies used included J2EE, MVC framework, JSP, Servlets, EJB, Struts, HTML, XML, SQL and JavaScript, WebSphere 5.1.1, Oracle 9i, and PVCS were the development tools used.
This project was a redesign of a warehouse/inventory management system using WebSphere Application Developer and Oracle. Standard J2EE technology was used to produce a better product for the client.
This multi-tiered J2EE product replaced an older ASP/.NET product. The improved design gave a faster and more stable product.
We employed a rapid application design which given a tight schedule produced a solid product with regular build releases.
Participated in creating another J2EE product, which was used by a major medical company to track test results. Writing and implementing JUnit tests.
CVS, PVCS, Subversion was used for source management.
Environment: Java 1.4, J2EE 1.3, JSP, Struts, JSTL, Servlets, Apache Commons Pool, CVS, PVCS, Oracle, HTML, JavaScript, Eclipse, JUnit, Ant, Log4J, Windows 2000.
Seagate (Lumina Engineering), Minnesota, USA Jul 1998 - Mar 2004
Sr. Software Engineer
SurvivaLink Minnesota, USA Jan 1997 - Jul 1998
Software Engineer
Nortel/Datatrend (Programming Alternatives of MN) Minnesota, USA Jan 1996 - Jan 1997
Software Engineer