Summary
With over 20 years of professional experience, I'm driven to leverage
my expertise in full-stack
development, cutting-edge back-end and front-end technologies, cloud-based solutions to drive product innovation.
Enthusiastic, good work ethics, reliable.
Independently and professionally manages BioModels
production system across the large codebase. Good
task prioritisation. Proactive. Very approachable, always
eager to support database curators or external users.
Excellent work in preparing an archival instance of
BioModels in BioStudies, including good collaboration with
BioStudies team. In the process also intensified
collaboration with other EBI resources like EuropePMC,
identifiers.org, and Reactome.
Professional Skills
Java ecosystem
- Core Platform Components: Java Virtual Machine (JVM), Java Runtime
Environment (JRE), Java Development Kit (JDK) and Java Standard Libraries (APIs).
- Core Java: OOP, Collections, Generics and Exception Handling.
- Functional Java: Lambda, Streams API, Optional, Method References.
- Multithreading & Concurrency: Virtual threads, Actor
Model (scala), Executors, Thread Contention (volatile, atomic, semaphore), CompletableFuture,
Reactive pipeline, structured concurrency.
- Java EE: Servlets, JSP, JPA, JMS
- Spring Framework: Framework Core, Boot, MVC, Data, Security, JPA
- Grails Framework: Groovy, Framework Core, GORM (Grails Object Relational
Mapping), Domain Classes, Controllers, Services, Tag Libraries, Plug-ins, RESTful Web
Services, Scaffolding, Convention over Configuration, Hibernate, Gradle/Maven, REST API
Development, Groovy DSL, WebFlow, GSP, Grails CLI.
- Persistence & Databases: JDBC, Hibernate, JPA.
- Web Development: REST, JSON, WebSockets.
- Testing & Debugging: JUnit, Mockito, Selenium, Logging (SLF4J, Log4j).
- Build & Deployment: Maven, Gradle, Docker.
- Microservices & Messaging: Spring Boot Microservices, Quarkus, Kafka,
RabbitMQ.
Python, Data Science and AI
- Core Python: standard libraries (IO, Data Structures and Algorithms,
Numerical and Scientific Computing), Concurrency and Parallelism, Networking and Internet
Protocols, Text Processing and Manipulation.
- Utilities: Virtual Environment Management (pyenv, virtualenv, Conda,
Anaconda), Packaging tools (pipenv, poetry, hatch, pdm).
- Tools for Data Science: Pandas, Numpy, Matplotlib, Plotly, Seaborn, Bokeh,
Scikit-learn, Tensorflow, Keras, Pytorch, SciPy, Jupyter Notebook.
- Web: Flask, Fast API, Bottle; Python ORM: SQLAlchemy, Peewee, PonyORM
- LLM: Models: GPT-4, Claude, Llama, or Mistral. APIs and Tools: OpenAI API,
LangChain, LlamaIndex, Transformers, Encoder, Decoder, Hugging Face Transformers, Model
Tuning.
Cloud & CD/CI
- Cloud Platform: AWS, GCP.
- Containerization & Orchestration: Docker, Vagrant, Terraform.
- CD/CI Pipelines: GitLab CD/CI, GitHub Actions.
- Monitoring & Logging: Prometheus, ELK Stack (Elasticsearch, Logstash,
Kibana).
- Security & Authentication: OAuth, IAM, Vault.
Relational Databases (SQL-based)
- Databases: MS SQL, MySQL, PostgreSQL, Oracle.
- Core Skills: SQL, Indexing, Transactions (ACID), Stored Procedures, Query
Optimization.
Non-Relational Databases (NoSQL)
- Key-Value Stores: Redis, Amazon DynamoDB.
- Document Stores: MongoDB.
Search & Indexing (Lucene-based)
- Lucene Core: Full-text search, indexing, tokenization.
- Elasticsearch: Distributed search, aggregations, real-time analytics.
Financial Skills
- Trading and Investment Systems: order management, execution (algorithmic trading), clearing, and settlement.
- Core Trading models: Trend-Following Models (Moving Average Crossover - MAC,
Breakout), Momentum Indicators (Relative Strength Index - RSI, Moving Average Convergence
Divergence - MACD), Mean Reversion Models (Bollinger Bands/RSI model), Arbitrage and
Statistical Models.
- Regulatory Compliance: Anti-Money Laundering - AML, Know Your Customer -
KYC, GDPR.
- Security Protocols: secure coding practices,
encryption (e.g., public-key cryptography), and authentication protocols (e.g., OAuth 2.0).
- Libraries, API, Tools for analysing: REST API, Websocket, yfinance, Pandas,
Numpy, Matplotlib, Plotly, Seaborn, Bokeh.
UI Skills
- Core Web: HTML, CSS, JavaScript, TypeScript.
- Frontend Frameworks: Vue.js, JQuery, Mustache template.
- Component Libraries: Bootstrap, Foundation CSS.
- REST & API Integration: Fetch API, Axios, WebSockets.
- Performance Optimization: Lazy Loading, Code Splitting, Virtual DOM.
- Testing: Selenium, Jest, React Testing Library.
- Build & Deployment: Webpack, Vite, NPM/Yarn.
Work Experience
Senior Software Engineer
EMBL-EBI Oct
2019 — Sep 2025 Cambridge, United Kingdom
- Focused projects: BioModels on Kubernetes and interconnected distributed
services - implementing security design principles.
- Advanced in Java: Multithreading, Threadpools, Synchronisation, Concurrency and
CompletableFuture, Rich Standard Libraries, Simplified Syntax with Lambda
expressions and Stream API;
- Software Design and Architecture: GoF Design Patterns, DDD, DTOs, MVC,
Microservices, Message Queues/Streams (with Redis Stream, Apache Camel),
- Cloud-based solutions: Docker, CI/CD pipelines with GitLab; migrated BioModels
services and
its
legacies (in PHP, Node.js, MongoDB, NoSQL, etc.) to EBI's Kubernetes cloud.
- Microservices: a service with Spring Boot 2.0 to create CombineArchive files,
a service using Flask to download and upload large files over 1GB, a service using
FastAPI combining to Slurm to
exchange the requests between BioModels and EBI's High-Performance Computing (HPC) Cluster.
- Extended REST API to allow programmatic submissions and supported our
collaborators to update over 1000 curated models using the API.
- Developed Python pipelines to submit BioModels content to BioStudies as a mirror repository.
Worked with GitHub actions, huge data submissions, Redis cache, Bash script.
- Refactored the large codebase of BioModels to speed up Kubernetes cloud deployment,
reducing from 12 to 3 minutes.
- Technologies updated: React, Vue (worked with BioStudies), MongoDB.
- Always go the extra mile when supporting end users, collaborators, and our database curators.
Software Engineer
EMBL-EBI Nov 2015 — Sep 2019 Cambridge, United
Kingdom
- Projects: DDMoRe, BioModels, and DeepOC
- Java skills: Object-Oriented
Programming (Encapsulation, Inheritance, Polymorphism and Abstraction), JVM tuning: JVM
arguments and options, Automatic Garbage Collection, Exception Handling,
Security Manager, Logging and Monitoring frameworks; Testing: Unit testing
(JUnit, Mockito), integration testing, end-to-end testing; Hibernate/JPA: ORM
(Object-Relational Mapping), entity relationships, caching strategies.
- Mostly employed the principles of Software Development: SOLID, DRY, KISS, and more.
- Heavily used the best practices for implementing coding standards and clean code such as:
naming conventions,
formatting and indentation, comments and documentation, error handling, and DRY Principle.
- Primarily upgraded BioModels using JUMMP written in Grails Groovy and Java.
Maintained the existing business implementations and added new features.
- Model Repositories: support various community standards and formats for computational models
such as SBML, PharmML, MDL, etc. Worked with Ontologies, Metadata RDF, FAIRness.
- Searching and High-Performance Computing (HPC): Solr, BioSolr, indexing-based search, IBM Spectrum LSF
- Programming: Spring, Java, Grails 2.x, Groovy, MySQL, LDAP, Bash script
- Agile Development, Git, JIRA, Maven, Gradle
- JavaScript, jQuery, Backbone, Underscore, ReactJS, Node, AngularJS 1.0
- FrontEnd technologies: Angular 8, Foundation CSS Framework 5.0, 6.0, Bootstrap 4, 5
- Taken part in building a model repository using an open source project, called JUMMP, a
deliverable of the DDMoRe project
PhD Student
LaBRI Oct 2010 — Feb 2015 Bordeaux,
France
- Investigated and proposed a potential approach to analyse the enormous sets of elementary flux
modes in metabolic plant cell networks, then integrate the analysed results for finding motifs:
employed Minimal Cut Sets into analysing feasible pathways.
Studied methods of complex network analysis, clustering algorithms.
- Built and modelled biological graphs. Researched solutions for the project and completed the
final report as the doctoral thesis.
- Participated in conferences, workshops and gave two talks on related works.
- Used C++, Python, and R programming language massively.
Software Developer — Trainee
LaBRI Jun 2009 — Nov 2009 Bordeaux,
France
- Researched and implemented a Graph Editor in 3D using Common Lisp programming
language to manage metabolic networks. It allows users to visualise graphs
in 3D and interact with their graphical elements.
University Lecturer
Hoa Sen University Aug 2004 — Oct 2010 Ho Chi Minh City,
Vietnam
-
Be responsible for the syllabuses of the courses about Microsoft Office suite,
the courses about Web Design with Dreamweaver and Presentation Design
with PowerPoint. Delivered these courses as well as supervised students.
- Designed and delivered new Software Engineering courses: Software Architecture using
Design Patterns
and
Usability Engineering.
- Supervised research groups and supported students through a pastoral or advisory role.
- Participated in staff training activities.
- Published a book on Microsoft Excel 2010 in 2010 in Vietnamese.
- Webmaster for the Department of Maths and Information Technology’s website.
Projects
DDMoRe
(A Drug Disease Model Resources)
Maintain and enhance the published open-source DDMoRe standards and tools to deliver and
improve the quality, efficiency and cost-effectiveness of Model-Informed Drug Discovery &
Development (MID3) and Therapeutic Use. I contributed to developing and delivering its model
repository, and it is an open source project named
JUMMP
(JUst a Model Management Platform).
BioModels using JUMMP
A repository of mathematical models of biological and biomedical systems.
It hosts a vast
selection of existing literature-based physiologically and pharmaceutically relevant mechanistic
models in standard formats.
Our mission is to provide the systems modelling community with reproducible,
high-quality, freely accessible models published in the scientific literature.
DeepOC
Developed a Deep Learning model to classify the models
deposited in BioModels based on their Gene Ontology information using Deep Learning.
The deliverables are a Deep Learning model implemented in Tensorflow and an
D3 zoomable sunburst chart to facilitate
browsing models based classes, automating the classification and predicting new classes.
Education
PhD in Computer Science
Université de Bordeaux,
Oct 2010 — Feb 2015
Talence, France
Master's in Software Engineering
Université de Bordeaux
Sep 2007 — Dec 2009
Ho Chi Minh City, Vietnam
Bachelor's in Computer Science
University of Quy Nhon
Sep 2000 — Jun 2004
Quy Nhon, Vietnam
General Skills
Agile Methodologies, Exhibit Leadership and mentorship, Problem-solving, Time
Management, Priority, Teamwork, Communication, Software Development, Software Architecture
Design, Debugging, Microservices architecture, Technological literacy, Organisation,
Adaptability, Empathy, Data analysis, Dependability
Hobbies
Badminton
Playing in the regional league as my best strong sport
Swimming
Going to swimming pool every Tuesday with my family
References
Prof Dr Beurton-Aimar Marie
My PhD supervisor, LaBRI, Université de Bordeaux, France
Henning Hermjakob
Group Leader, Molecular Networks, EMBL-EBI, United Kingdom
Dr Rahuman S Malik-Sheriff
Project Leader, EBML-EBI, United Kingdom
Mihai Glont
Tech Lead, Featurespace, VISA Inc., United Kingdom
(Note: Details of the references are available upon request.)