Yoongeun Kim ( Brian Kim)
Irvine, CA 92620
(408) 800- 8743
skype :: live:windkim60
linkedin: Yoongeun Kim
Language: C/C++, C#, Delphi, Perl, Bash-Shell, Visual Basic, Assembly, Pascal, Fortran, Fp, Prolog, Lisp, Motif, PHP, Java
Server: Tomcat, Glassfish, Squid, Apache, MS Transaction Server, Microsoft Internet Server
Protocol: TCP/IP, UDP, TELNET, HTTP, FTP, DNS,
Database: MySQL, MS Access, Codebase 5.0, DB/2, MS SQL Server and backend coding
Development Environment: Eclipse, MS Visual Studio, Embarcadero, SVN Sub Version Control System, Delphi (7, XE, XE2), X-window, NetBeans, JavaEE, Minitab
Technology: Object Orient Programming, COM, DCOM, Microsoft Foundation Class, Common Object Request Broker Architecture(Corba)
Skills & Experience
Harman, Novi MI 01/2017 – 03/2017 (System automation by Perl and Java)
Harman International Industries, Incorporated is an American company that designs and engineers connected products for automakers, consumers and enterprises worldwide, including connected car systems; audio and visual products, enterprise automation; and connected services.
The control of industrial machinery is often taken care of by Programmable Logic Controllers(PLC). The PLC’s provide process information to the control room, where the operator uses dedicated display to monitor the process.
Make the engineering data flows freely in a richly interconnected manner that reduces the need to duplicate data by using Perl automation.
Provide the data set to the Oracle SQL Server for the Restful Web Service to use the data in the real time.
Core Java Programming for Java Server Pages.
Hibernate mapping for the persistent classes.
Java Swing programming for Lists, Tables, and Trees.
Java Script and JQuery Programming for User Interface construction.
Make XSD file for the large size data and validate against XML files.
CVS/Omnicare, Cincinnati OH 05/2016 – 10/2016 ( Refactoring codes by using Delphi 10.1)
CVS pharmacy is one of largest corporations in USA and hires more than 100,000 people. Its system software which manage its daily operations has more than 10 million lines of code. I modified the system software written by Delphi programming language for the system security remediation.
Targeted to developers and security practitioners, the Common Weakness Enumeration (CWE) is a formal list of software weakness types created to:
Serve as a common language for describing software security weaknesses in architecture, design, or code.
Serve as a standard measuring stick for software security tools targeting these weaknesses.
Provide a common baseline standard for weakness identification, mitigation, and prevention efforts.
To make the software to be strong against any possible attacks from the outsiders is the purpose of this project.
Project: Memory Leak(CWE #404) and Hard coded any sensitive information(CWE #259) May’16 to Oct,16 Delphi Developer
Team Size: 7
Environment: Delphi, Oracle, Microsoft Team Foundation Server, Visual Studio
Description: There are over 900 tables in Oracle database. And the application calls the tables, stored procedures very often. Whenever it wants to connect to the database, it uses the hard-coded password and id number. Also it uses SSN number to search the records in the database. If the attacker reads the memory in the system, the attacker can know all of the sensitive data for the CVS customers. So I changed the program not to be vulnerable from the attackers.
Also I handled the various memory leak problems which are caused by the wrong programming. I scanned all of the source codes and find the vulnerable places and replace the wrong codes by the healthy and robust codes.
Description: To make the codes to be healthy in terms of CWE. (There are more than 500 CWEs which make the software to be vulnerable from the outsider attack.)
Scan the source codes and make the security remediation.
North Pacific Inc, Irvine CA 06/2015 – 04/2016 (Java, Java Script and Perl)
This is my friend's the start-up company for B2C.
I helped him to install the system and to run the programs.
I also modified some programs to meet the company's need.
Project(1): Web Client Programming Application-
Environment: Apache Web Server, Perl, Java, Css, Html, Java Script, JQuery, JSON, XML, Window 7, My SQL
Description: To develop the company’s web site, I built the web site by CGI programming.
Designed the web site of the complex web hierarchy.
Make the customized per module which is working in Apache Web Server.
Make many HTML forms and Java Scripts for HTML forms.
Do some beautification of the forms by CSS
Construct the data transportation by using JSON and XML
Tomcat Performance Tuning to increase the Web Server Performance (Benchmark testing by using Apache Jakarta JMeter)
Restful Web Service by Java Spring Framework
Implement MVC by Java Spring Framework
Java Servlet Construction
Building Java Server Pages
Project(2): Interprocess Communication using Shared Memory C++ Developer
Environment: Linux Cento OS 7, gcc
Description: Using shared memory enables us to design a system where we have a single server and multiple clients communicating in both directions with the server. Communication is initiated by the client -- server is normally in idle state waiting for the client request. Communication is thread safe is a sense that only a single client may exchange information with the server at any moment of time. This is very useful for the high performance server architecture.
Connect all different servers and all different clients and make the thread safe environment for the communication.
Socket communication between the servers
Implement unicast, multicast, and broadcast interface for the networking by using sockets.
Decouple software component
Carefully controlled parallel processing
Asynchronous scheduling of workload components
Batching of asynchronous workload components to improve efficiency, throughput and scalability.
Project(3): Application-Resource Usage Matrix C++ Developer
Environment: Linux Cento OS 7, gcc
Description: To increase the performance and the throughput, make the matrix to optimize the throughput and the response time.
Calculate the total resource utilization for each resource for the application workloads represented in the matrix.
IST Inc, Aliso Viejo CA 01/2010 – 05/2015
IST Inc is a network software development firm. Its main product is WTCP which is the optimization of TCP. It uses the TCP slicing technology which is extremely difficult. The product consists of 3 parts which are WTCP (C Language) in the blade server, ONM Server (C++ Language) in the Linux Server, and ONM Client (Delphi) in the Window7. Its main customers are the big telecom companies to reduce the wireless telecom traffic. Its basic idea was provided by two former famous UC Irvine Professors who are “Tatsuya Suda” and “Wei Tsai”. IST worked with Korea Telecom(Korea) and NTT Docomo(Japan) for the testing and implementation of their system. I managed onshore team and offshore team together for the very large volume of network traffic testing at the core network of KT which covers 0.8 million customers in Korea.
Project(1): Perl supporting HTCondor distributed file system April’14 to May'15 Perl Developer
Environment: Linux Cento OS 5.8, HTCondor System, Perl, MySQL, MSSQL
Description: HTCondor is an open-source high-throughput computing software framework for coarse-grained distributed parallelization of computationally intensive tasks. By using HTCondor system, a lot of the text processing job can be distributed.
MySQL Server support via Perl DBI module.
MSSQL Server support via ODBC via DBD:ODBC module
Monitoring Space Usage on Database Servers
Project(2): CDN Modification Aug’14 to March'15 C++/Perl Developer
Environment: Linux Cento OS 5.8 / Ubuntu 10.0, Apache, Squid, Perl, C and C++
Description: CDN is to serve content to end-users with high availability and high performance. Squid Server is the open source code. Instead of working for the original single threaded version which is provided in the original code, the multithreaded version can handle the multiple CDN servers and backend and can make the total statistics for those servers. I modified the Squid Servers to work for the CDN Servers. So the multiple CDN server and the multiple Squid Servers are integrated together and are working concurrently.
Responsibilities: Designed, Developed and Implemented the statics gathering for the multithreaded environments.
Executed Squid server source modification via C++ for CDN (Content Delivery Network) to meet the company needs. Modified the various codes for the multithreading to enhance realtime processing.
Implement the adapter design patterns for the different network environments.
Make TCP socket programming between the main linux server and the 16 blade servers.
Unit Testing by using Cppunit Testing Farmework
Interprocess communication between processes by using Perl(IPC::Open2 IPC::Open3).
Project(3): Testing Performance Feb ‘14 to Aug'14 Perl Developer
Environment: Linux Cento OS 5.8, Ubuntu 10.0, Perl, Apache, MySQL
Description: Made the artificial wireless environments by using Linux System MTU (Maximum Transmission Unit) setting and the configuration of the networks between the computers. Tested for the different environments (Large/Small File Size, Long/Short RTT (Round Trip Time), Heavy/Light Network Traffic, etc)
Responsibilities: Design, Development and Implementation of the Perl Modules for each different environment.
Made Perl modules to do the polygraph testing for the web performance.
Compared the WTCP Performance with the existing TCP Products (Big, Cubic, Westwood, Reno) for purpose of the verification of the performance improvement.
MySql Database Accessing and storing by using Perl Script.
Project(4): Kernel Modifications and Testing Feb’13 to Feb'14 C/Perl Developer
Environment: Linux Cento OS 5.8, Perl, C
Description: Implemented WTCP by the theoretical guide line. And it verified in the various network environments.
Responsibilities: Modifyed and tested the original linux kernel codes and tested the packets in the wireless environments.
Implemented and modified WTCP Kernel in /linux/net/ipv4 by using WTCP algorithms ( tcp.c, tcp_input.c )
Guessed the optimal bandwidth for the network by using inter-packet arrival time and inter-packet departure time. The time makes the network to guess the optimal window size.
So it enables the network to carry out the maximum bandwidth utilization.
Monitored the per-connection TCP information of all the active connections, load “sockmon” utility with the kernel and measure the RTT (round trip time).
Measure the 10 consecutive moving average of the inter arrival time between the net buffer of Access Point and the net buffer of Mobile Device This is the main idea of WTCP algorithm.
Project(5): Squid Server Cache Modification Aug’12 to Feb'13 C++
Environment: Linux Cento OS 5.8, C++, Squid
Description: Implemented multiple Squid Server and make the integrated Cache checking mechanism by POSIX thread.
Responsibilities: Squid is the open source Web Server. It uses web caching technology. Web Caching refers to the act of storing certain web resources(i.e, pages and other data file) for possible future use. The web caching for single squid server is already implemented in the squid server. But IST uses the multiple squid server for the faster processing. To handle multiple squid server needs the integrated web caching technologies. So implement the integrated Web Caching by checking the multiple Squid Server, and increase hit ratio of the web page. This is achieved by POSIX threads implementation.
Use less bandwidth on the internet connection when surfing the web.
Reduce the amount of time web pages take to load.
Make the proper proxying for the web traffic by using the POSIX threads.
Make the dynamic memory management system for the Cache to use the dynamic memory very efficiently.
Project(6): User Interface Modifications and Data Display Dec’11 to Aug’12 Delphi Developer
Environment: Window7, Delphi XE, MySQL 5.5, Word/Excel
Description: Show the results and the statistics by the request of the network administrator. The front ends are made by three independent processes. Send/Receive Data by using com interfaces.
Make the reports by using Word/Excel OLE. Make the web form by using CSS.
Import the data from MySQL and transfer the data by using XML.
Notified the emergency alarms to the network administrator by using window message system. Modified Data Display by using ActiveX Data Objects(ADO) in Delphi XE.
Displayed the data in the relatively short time by using Database Optimization (Indexing) and Client DataSet
Project(7): Code Refactoring Sep’11 to Dec'11 Delphi Developer
Environment: Window7, Delphi 5, Delphi XE,
Description: The Company has the huge amount of the legacy source codes in Delphi5/Delphi7. The company wants to convert the source codes from Delphi5/Delphi7 to Delphi XE.
Responsibilities: Make the Delphi Unit testing and the integration testing. Set up the testing environments.
Have done a unit testing by the method so called “Extreme Programming”(TDD) in Delphi5.0, Delphi7.0 and DelphiXE.
Implement xUnit Test Patterns.
Project(8): Redesigning SQL tables/Queries/stored procedures Jan’10 to Aug'10 Delphi/SQL/Perl Developer
Environment: Window7, Delphi 5, Delphi XE, Cento OS 5.7 MySQL5.5, Perl
Description: Redesign the data access layer/ user interface layer and update the database related objects. Squid Server Optimizations to increase the performance.
Tuned up the Squid Server by testing and changing the directives.
MySql Database optimization by splitting databases and by using indexing.
Developed the Perl modules to measure the WTCP system processing time exactly.
Project(9): Monitoring and alarming the system components. Jan’10 to Feb'10 Delphi Developer
Environment: Window7, Delphi 5, Delphi XE, Cento OS 5.7
Description: Monitor the 32 blade servers in the commercial core network and L2/L4 switches in the network and Display the 3 processes status in the blade servers in the real time. Make the optimizing the client/server systems.
Responsibilities: Make the multithread architectures for the processes.
Developed multithreaded system to update the processor status by using Semphores, Mutex, Conditional Variables.
Developed TCP/IP and Telnet interface by using Delphi and C++
Made MDI (Multiple Document Interface) GUI form.
Developed high-performance client-server by optimizing techniques (SQL Server, Client, Server)
Project(10): Designing the multi-server multi client systems. Jan’10 to Aug'10 Delphi Developer
Environment: WindowXP, Delphi 7 Cento OS 5.4
Description: Instead of the one server and the multi clients system, design the multi server and multi client systems. Change the whole system architecture.
Responsibilities: Make the COM Objects and each COM Objects communicates each other and update data simultaneously. Access the database concurrently. Develop the efficient TCP socket communication between the servers and clients by using Delphi socket / C++ Sockets.
Developed MS Com Architecture and constructed client-server System in Delphi XE
Developed the multi-server multi-client system by using Delphi and C++.
Make UML Diagram for the new system architectures
E & J (Ellen & Joan) Orange County, CA 05/2003 – 12/2009
E-commerce Company for the Digital Image Processing (photography transmission) and photograph selling by using internet.
Project(10): Java Web Service Developer Aug 04 to Dec 09 Java Developer, C#
Environment: Linux, Java, PHP, MySQL, Apache, Tomcat, WebLogic, Hibernate, Spring, JMS(Java Messaging Service), Maven, EJB, Apache
Description: Implementing Restful Web Service; : Order, Delivery and Payment Information for the company daily operation. The basic architecture for the system consists of the Java front end, Java Server and MySQL Server.
Supported Java Persistence for MySQL Database with Hibernate Framework to support automatic and transparent object/relational mapping.
Make Web Page by using PHP and MySQL
Java EE Java Beans Container Construction
Personal Security(Authorization) implementation in Java Beans by Using Aspect Oriented Programming in Spring Framework.
Restful Web Service by using Jetty, Jersey and Jax-Rs.
Unit Testing by using Junit and Arquillian
Restful Web Service implementation with Jersey for the servlet container to identify the web resources.
Deploy @WebService under Tomcat and securing the @WebService under Tomcat.
Make the service side handler for request validation.
Make the SOAP logical handler for the system operation and the company statistics.
Make DOM tree by XML Processing for the front-end browsing operation.
Make Java Native Interface to handle C++ projects in the runtime operation.
Make and modify WSDL files for the SOAP based Restful Service.
Do security and authorization by using javax.security.auth modules.
Database support by using @Entity model.
Make the Persistence Configuration files for the mutually interconnected databases.
Make four layer architectures. (View layer, Application Model layer, Domain Model layer, Infrastructure layer) and modifies EJB for that architecture and makes the domain object.
Make the transaction listener for the company standard requirement to access the customer information.
Java thread synchronizations for the multiple concurrent operation and make ejb bean managed concurrency and timelock for the beans in the container.
Implementing the timer service for the session beans.
MIST Inc., TORONTO, ONTARIO : 09/2002-04/2003
A cash machine development firm. Its main products are Freedom1 and Freedom2 terminal.
Design Real Time Data Display on Point Of Sale portable Wireless Terminal.
FINCAD, SURREY BRITISH COLUMBIA 09/1994 – 09/2002
FinancialCad Corp is a financial software development firm. Its main products are Perfect Hedge and FinancialCAD Developer. Its main product is stock market service provider for investors. The software handles derivatives products such as Equity, Futures, Options, Interest Rate, Credit, and Bonds. It is working with Bloomberg Terminal to import the data.
Project(12): Build Corba System Architecture Sep’94 to March'02 Visual Basic/C++ Developer
Environment: Window2000, MS Visual Studio, Visual C++, Visual Basic, MS Transaction Server
Description: Build CORBA (Common Object Request Broker Architecture) for the financial objects.
Build three tier systems (thin client and fat server). The objects are constructed in the real time and are deposited into the object pool and are reused whenever it is necessary. Construct the distributed object –based systems.
Built a real time CLIENT-SERVER application. Used VISUAL C++ for the Server and VISUAL BASIC for the client.
Handled Com and Dcom problems in Visual Basic.
Master in Computer Science 1993 PENNSYLVANIA STATE UNIVERSITY: University Park, PA. USA
Construction of Compilers for C and Pascal Language.
Implemented a distributed file system
I designed the distributed system with only C and Unix without using any commercial tool.
I used only Remote Procedure Call to make the distributed system.
It is the updated version of Amoeba distributed system.
Amoeba is a distributed operating system developed by Andrew S. Tanenbaum and others at the Vrije Universiteit Amsterdam. The aim of the Amoeba project was to build a timesharing system that makes an entire network of computers appear to the user as a single machine.
Implemented UNIX shell commands for the distributed system
BA. Computer Science. 1989 UNIVERSITY OF IOWA: Iowa City, IOWA USA
The below projects are the verification of some Furer’s Algorithms.
He was my thesis adviser.
Color of random graphics.
Approximated the minimum degree-spanning tree to within one from the optimal degree
Design of an efficient NC algorithm for finding Hamilton cycles in dense directed graphs.
Fürer's algorithm is an integer multiplication algorithm for quite large integers possessing a very low asymptotic complexity, which can be optimized by using the inverse Ackermann function instead of the iterated logarithm. It was designed in 2007 by the Swiss mathematician Martin Fürer of Pennsylvania State University  as an asymptotically faster algorithm (when analysed on a multitape Turing machine) than its predecessor, the Schönhage-Strassen algorithm published in 1971.