Senior Software Engineer and data scientist with a demonstrated history of developing micro-services and data analysis pipelines. I contributed to projects are used by thousands of life scientists to gain insights from gene expression data. Designed and regularly maintained a knowledge base with biomedical data collected from various data sources. Proficient in supporting project deliverables and maintaining releases, I deployed micro-services and data processing pipelines with AWS cloud technology. I strive for quality and maintainability of the source code to reduce the cost of software maintenance, increase security, and ease program comprehension.
Applied my software engineering expertise to reduce the cost of developing bioinformatics tools and databases. Learned and applied Git, GitFlow process and continuous integration and deployment with Jenkins.
Implemented and evaluated several research prototype tools that are referenced in publications. Supervised undergraduate students working on research projects.
Courses: Software Engineering, Algorithms, Introduction to Computer Science. Designed lab materials in Java and C++ consisting of well defined tasks on open source projects.
Dissertation: Static Extraction Of Dataflow Communication For Security
Advisor: Dr. Marwan Abi-Antoun
Thesis: Revealing Hidden Dependencies in Software Systems
Advisor: Dr. Václav Rajlich
A web application for analysis of gene expression data used by life-scientists for research purposes. As the senior software engineer, I was leading a team of 3 who designed and implemented two new modules. Customers use the new modules for gene-network analysis, drug discovery and repurposing. As the team lead, I was also responsible for requirements elicitations, estimating effort, and finding cost-effective solutions for deployment on AWS. As a software developer part of a team of 5, I contributed to the implementation micro-services, data analysis and ETL, for parsing input data and integration with 3rd party API. As a research associate, I contributed to a Small Business Innovation Research (SBIR) grant that was awarded to the company. I was responsible for prototype implementation and gathering preliminary results.
A web application for analysis of genetic data used by life-scientists for research purposes. As the back-end developer, I was part of a team of 5 who implementation several micro-services. I was responsible for the database design, data analysis, and integration with 3rd party API. I was leading a team of 4 who designed and implemented a databases of 30M scientific publications associated to gene and variants data.
I contributed to several projects during my graduate school. All projects were written in Java.
Developers often create manual dataflow diagrams to reason about the architecture and security risk in their programs. Prone to human errors, such a diagram might omit important dependencies present in the code. The goal of the project is to develop a sound static analysis that extracts a hierarchical object graph with dataflow edges that convey architectural abstractions. Then, machine-checkable constraints executed against the abstract object graph can find architectural flaws. An evaluation on several extended examples adapted from the CERT standard for Java and one Android application was published at IEEE International Conference on Automated Software Engineering: ASE 2013 . Source code is available on GitHub .
The goal my master thesis project is to reveal a new category of dependencies called hidden dependencies that exists between methods aparently independent of each other and can be used as a replacement for dataflows. The project is using dyanmic execution traces and invariants produced by Daikon invariant detector and Simplify theorem prover . A prototype implementation was evaluated on JUnit 4.4, Drawlets 2.0, and Apache FtpServer and published as a conference paper at IEEE Internatioal Conference on Software Maintenance: ICSM 2010 .
JRipples is based on the philosophy of “intelligent assistance”, which requires a close cooperation between the programmer and the tool while changing existing software. While the programmers focus on implementation of new functionality, JRipples estimates the impact of the change and keeps developers organized during change propagation. JRipples is implemented as a plug-in for the Eclipse platform. The tool was originally developed by Maksym Petrenko. I maintained JRipples together with Chris Dorman.
Global Mentorship Initiative - 2022, 2023
Wayne State Industry Mentors - 2023
Provide guidance and business skills to colleague students at the start their career.
Apart from being a software engineer, I enjoy my time being outdoors, gardening.
When indoors, I follow a number of movies and television shows, and Formula 1. I like to cook, and I spend a large amount of my free time exploring the latest technology advancements.