Overview
Technical skills
Timeline
Roles

Overview

Backend engineer (Middle) focused on Java and Spring-based REST APIs with a strong emphasis on test coverage. The strongest proven skill is building secure REST endpoints and auth flows, demonstrated by JwtUtils, AuthTokenFilter, WebSecurityConfig and comprehensive AuthControllerTest. There is limited evidence of production scalability tooling, schema migration history, or advanced observability and resilience patterns in public code.

Technical skills

JavaScript
SQL
TypeScript
Kotlin• Middle
Python• Middle • 5y+ • 3 projects
Java• Middle • 4y+
Kotlin
Mockito
Java
Hibernate
Spring Security
Spring Data JPA
AssertJ
Spring Boot• 7y+
Databases
Redis
PostgreSQL
AI/ML
LLM
RAG
NumPy
Pandas
Scikit-learn
TF-Keras
XGBoost
Deep Learning
Time Series Forecasting
Jupyter Notebook
AI Agents
DevOps
AWS Lambda
CI/CD
Git
Docker Compose
Rest API• 9y+
AWS• 7y+
Docker• 7y+
GitHub Actions• 7y+
Jenkins• 7y+
Kubernetes• 7y+
Analytics
Plotly
Matplotlib
Frontend
Angular
React.js

Timeline

Backend Engineer (Full Stack Collaboration) Middle
Thomson Reuters Full-Time
Mar 2019 to Present 7 Years 5 Months Tbilisi Partially remote
Designed and developed Spring Boot REST APIs for enterprise web applications and internal tools. Collaborated with frontend developers to integrate APIs, improving data flow reliability and performance. Worked on microservices architecture and supported CI/CD workflows using Jenkins and GitHub Actions. Contributed to cloud-based services using AWS, Docker, and Kubernetes, and helped integrate backend services for knowledge retrieval and automation features.
Spring Boot
Rest API
Jenkins
GitHub Actions
AWS
Docker
Kubernetes
Java Backend Developer (Full Stack Support) Middle
Public Service Development Agency Full-Time
May 2017 to May 2019 2 Years Tbilisi In office
Developed backend services for government web platforms and digital services. Built REST APIs consumed by frontend applications to support user-facing functionality while maintaining API consistency and data correctness. Designed and implemented ETL processes for data transformation and created BPMN workflows using Camunda for process automation. Supported production systems through debugging and testing.
Rest APIsince 2017
Caucasus University (CU, КУ)
Bachelor's Degree Engineering in Informatics
2014–2018 Tbilisi, Georgia
Middle Backend Developer Confidence: High API Engineer
Backend engineer (Middle) focused on Java and Spring-based REST APIs with a strong emphasis on test coverage. The strongest proven skill is building secure REST endpoints and auth flows, demonstrated by JwtUtils, AuthTokenFilter, WebSecurityConfig and comprehensive AuthControllerTest. There is limited evidence of production scalability tooling, schema migration history, or advanced observability and resilience patterns in public code.
API Design
3/10
How well APIs are designed
Basic REST API design with clear endpoints and Swagger annotations but no explicit versioning, pagination, or idempotency handling; error contracts are ad hoc and use generic bad request responses.
Evidence
todo-app/todo-app/backend/src/main/java/com/taskmaster/controller/TaskController.java
todo-app/todo-app/backend/src/main/java/com/taskmaster/config/SwaggerConfig.java
Data Layer & Database
3/10
Working with databases
Uses Spring Data JPA repositories and transaction boundaries with some custom repository queries; no migration history or explicit schema evolution artifacts are visible.
Evidence
todo-app/todo-app/backend/src/main/java/com/taskmaster/service/TaskService.java
todo-app/todo-app/backend/src/main/java/com/taskmaster/repository/TaskRepository.java
Scalability & Performance
1/10
Handling load and speed
Little evidence of production scalability work such as caching, queueing, connection pooling tuning or rate limiting; test harness shows remote test execution but not backend performance engineering.
Evidence
Browserstack-automated-test/src/test/java/com/browserstack/SeleniumTest.java
System Architecture
3/10
Overall system structure
Conventional layered architecture (controllers, services, repositories) and separation of concerns are present, but there is no multi-service decomposition or advanced config/secret management shown.
Evidence
todo-app/todo-app/backend/src/main/java/com/taskmaster/controller/TaskController.java
todo-app/todo-app/backend/src/main/java/com/taskmaster/service/TaskService.java
todo-app/todo-app/backend/src/main/java/com/taskmaster/security/WebSecurityConfig.java
Security & Auth
4/10
Protecting data and access
Security awareness is evident: JWT utils, auth filter, security config, password encoding and tests for auth flows are implemented, though token lifecycle and revocation are not visible.
Evidence
todo-app/todo-app/backend/src/main/java/com/taskmaster/security/JwtUtils.java
todo-app/todo-app/backend/src/main/java/com/taskmaster/security/AuthTokenFilter.java
todo-app/todo-app/backend/src/test/java/com/taskmaster/controller/AuthControllerTest.java
Reliability & Observability
3/10
Stability and monitoring
Good unit and controller test coverage with Mockito and AssertJ showing attention to reliability and error cases; lacking operational observability, retry/backoff, and graceful-shutdown patterns in code.
Evidence
todo-app/todo-app/backend/src/test/java/com/taskmaster/service/TaskServiceTest.java
todo-app/todo-app/backend/src/test/java/com/taskmaster/service/UserServiceTest.java
todo-app/todo-app/backend/src/main/java/com/taskmaster/security/AuthEntryPointJwt.java
Expertise
Java• Middle
Microservices & API Architecture• Middle
Technologies
Java• Middle • 4y+
Kotlin• Middle
PostgreSQL
Docker Compose
Hibernate
Mockito
Spring Data JPA
Spring Security
AssertJ
Recommendations
  • Develop and maintain Spring Boot REST services with JWT authentication and unit/integration tests.
  • Expand production readiness by adding database migration scripts, structured logging, metrics and health checks.
  • Build automated UI and cross-browser test suites and CI integration using the existing BrowserStack/Selenium tests.
  • Harden API design with versioning, pagination, explicit error contracts and idempotency where needed.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Junior AI/ML Engineer Confidence: Medium Data-centric
Time-series / data-focused practitioner (middle level) with hands-on end-to-end forecasting pipelines and practical cloud training attempts. The strongest proven skill is building and training forecasting models (GRU + Prophet + XGBoost) and integrating with AWS SageMaker and S3 as shown in Phase II second_load.py and First_load.py. The public code is noisy and copy-pasted with numerous syntax/duplication issues and lacks structured experiment tracking, CI, or production-grade deployment artifacts.
Model Architecture & Training
3/10
How well models are designed and trained
Uses standard deep learning components (GRU/LSTM) and classical forecasting tools (Prophet/XGBoost) with straightforward training (model.fit) but lacks custom training loops, hyperparameter tuning infrastructure, or robust experiment design.
Evidence
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: tf.keras Sequential model with GRU layers, model.compile(loss='mean_squared_error', optimizer='adam') and model.fit(..., epochs=200, batch_size=32)
Automated-data-import-and-forecasting/Date forecasting by python code/Phase I first load of data/First_load.py: Prophet usage and xgboost estimator setup (sagemaker.estimator.Estimator(...), xgboost hyperparameters set)
Data Pipeline & Feature Engineering
4/10
How data is prepared for models
Data ingestion and feature preparation are present with parsing/cleaning of CSV fields, scaling, and time-window dataset construction, but code is ad-hoc and contains repeated copy-paste patterns rather than a structured pipeline.
Evidence
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: string cleaning of numeric columns (re.sub), handling 'K'/'M' volume suffixes, eth['Date'] = pd.to_datetime(eth.Date)
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: create_dataset(dataset, time_step=1) function and MinMaxScaler usage before model training
Experimentation & Evaluation
3/10
How results are measured and tested
Basic evaluation and diagnostics are included (RMSE, MAE, MSE, explained_variance, plots, train/validation history) but there is no experiment tracking, reproducible config management, or systematic ablation/validation protocol.
Evidence
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: computations of RMSE/MSE/MAE and explained_variance_score, plotting training/validation loss from history
Automated-data-import-and-forecasting/Jupiter Notebook/Phase III succesfull load and forecasting implementation/ethereum_price_forecast.ipynb: prophet.fit and forecast steps with plotting and saved figures
MLOps & Deployment
3/10
How models are shipped to production
Has practical MLOps touches: S3 uploads, SageMaker estimator setup and attempt to run training jobs, but integration is brittle with many copy-paste errors and no robust deployment/versioning or monitoring.
Evidence
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: get_execution_role(), sagemaker.image_uris.retrieve(...), sagemaker.estimator.Estimator(...) and xgb.fit({'train': s3_input_train})
Automated-data-import-and-forecasting/Date forecasting by python code/Phase I first load of data/First_load.py: S3 bucket creation attempts and repeated boto3 Session uploads (upload_file calls)
Computational Efficiency
1/10
How efficiently computing resources are used
Minimal evidence of computational efficiency engineering; uses standard batch sizes and epochs but no profiling, GPU/CPU optimization, quantization, or distributed training patterns.
Evidence
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: model.fit(..., batch_size=32, epochs=200) and occasional commented hints about installation, but no profiling or optimization code
Research Depth & Innovation
1/10
Depth of research and new ideas
No original research, novel architectures, or paper-reproduction rigor; work is implementation-focused with standard recipes (GRU/Prophet/XGBoost) and many duplicated cells.
Evidence
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: standard Sequential GRU stacks and Prophet usage without novel modifications
Automated-data-import-and-forecasting/Jupiter Notebook/Phase I first load of data/First_load.ipynb: exploratory notebook style rather than research-grade implementation
Expertise
MLOps & Model Lifecycle• Junior
Industries
Blockchain & Crypto• Junior
Data & Analytics• Junior
Technologies
Deep Learning
Redis
XGBoost
AI Agents
LLM
RAG
forecast• mentioned only
Recommendations
  • Harden and refactor the forecasting pipeline into reusable, tested modules (data ingestion, cleaning, feature engineering, model training, evaluation) with clear config files.
  • Add reproducible experiment tracking (MLflow or W&B), parameterized training scripts, and unit/integration tests for data transforms and model I/O.
  • Clean up SageMaker/S3 integration with correct error handling, idempotent S3 operations and clear deployment/playbook for model serving and monitoring.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories:
Junior Data Scientist Confidence: Medium ML Practitioner
A mid-level ML practitioner building time-series forecasting prototypes and ETL-oriented model pipelines - comfortable implementing GRU/Prophet models and visualizations. The strongest proven skill is end-to-end time-series model development and evaluation as demonstrated by the GRU training loops and Prophet forecasting in the ethereum_price_forecast.py and the First_load.ipynb notebook. The public work shows limited production hardening - many notebooks contain copy-paste blocks, syntax issues, weak reproducibility and no business-cost analysis or robust validation pipelines.
Statistical Rigor
2/10
Correct use of statistics
Basic metric reporting and use of Prophet with prediction intervals are present but there are no assumption checks, hypothesis tests, uncertainty discussion or experiment controls.
Evidence
Automated-data-import-and-forecasting/Jupiter Notebook/Phase I first load of data/First_load.ipynb: Prophet fit and printed outputs (yhat/yhat_lower/yhat_upper)
Automated-data-import-and-forecasting/Date forecasting by python code/Phase III succesfull load and forecasting implementation/ethereum_price_forecast.py: printed RMSE/MSE/MAE and explained_variance_score
Data Wrangling & Cleaning
4/10
Preparing and cleaning data
Concrete cleaning steps and parsing logic exist but there are copy-paste patterns, in-notebook package installs and scaler usage that risks train/test leakage.
Evidence
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: loop converting 'Price','Open','High','Low','Vol.' strings to numeric types
Automated-data-import-and-forecasting/Jupiter Notebook/Phase I first load of data/First_load.ipynb: MinMaxScaler used and scaler.fit_transform applied before several train/test operations
Exploratory Analysis & Visualization
3/10
Exploring and visualizing data
Multiple exploratory charts (plotly/matplotlib) and aggregations exist but written interpretation and hypothesis-driven narrative are minimal.
Evidence
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: monthwise aggregation and plotly line/bar charts
Automated-data-import-and-forecasting/Jupiter Notebook/Phase III succesfull load and forecasting implementation/ethereum_price_forecast.ipynb: several visualization cells and plotted forecast vs history
Predictive Modeling
4/10
Building models that predict
End-to-end predictive work is implemented including GRU models and Prophet forecasting and evaluation metrics, but there is limited model selection, no robust CV, and potential data leakage.
Evidence
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: TF Keras Sequential GRU model definition and model.fit training loop
Automated-data-import-and-forecasting/Date forecasting by python code/Phase III succesfull load and forecasting implementation/ethereum_price_forecast.py: Prophet model creation, future dataframe and forecast generation
Business Insight & Impact
1/10
Turning analysis into business value
Very little evidence of linking forecasts to business metrics, cost-of-error analysis, or actionable decisions for stakeholders.
Evidence
Automated-data-import-and-forecasting/Date forecasting by python code/Phase III succesfull load and forecasting implementation/ethereum_price_forecast.ipynb: comments like 'Considered period to predict Ethereum close price' but no cost/impact analysis
Reproducibility & Notebook Hygiene
2/10
Clean, repeatable analysis
Notebooks run-through style with inline installs, repeated blocks, syntax issues and no pinned environment, seeds, DVC or packaging for reproducibility.
Evidence
Automated-data-import-and-forecasting/Jupiter Notebook/Phase I first load of data/First_load.ipynb: inline pip/conda commands and many repeated cells
Automated-data-import-and-forecasting/Date forecasting by python code/Phase II second load of data/second_load.py: numerous copy-paste blocks and visible syntax/formatting errors
Expertise
Analytics• Junior
Industries
Blockchain & Crypto• Junior
Technologies
Jupyter Notebook
Scikit-learn
Matplotlib
Plotly
Pandas
NumPy
TF-Keras
Time Series Forecasting
forecast• mentioned only
Recommendations
  • Harden time-series projects into reproducible pipelines - extract data ingestion, preprocessing, training and inference into modular scripts with pinned environments and a deterministic seed.
  • Add proper train/validation splits and cross-validation for time series, avoid fitting scalers on full dataset to prevent leakage, and introduce baseline models for comparison.
  • Improve notebook hygiene - remove inline installs, fix syntax errors, consolidate duplicate cells and add short written interpretations for each visualization and experiment result.
  • Package successful models for deployment - demonstrate one end-to-end deployment path (SageMaker or scripted inference), CI test for data contracts and unit tests for preprocessing functions.
Repositories
The developer's experience in this domain has been verified based on AI analysis of the following repositories: