Compare commits

..

2 commits

Author SHA1 Message Date
da797997c0
Downgrade checkout
Some checks failed
Build and Deploy Hugo / deploy (push) Failing after -16m33s
2025-07-12 00:25:32 -04:00
24a03827c8
Remove external dependency
Some checks failed
Build and Deploy Hugo / deploy (push) Failing after -16m50s
2025-07-12 00:24:34 -04:00
10 changed files with 68 additions and 235 deletions

View file

@ -10,40 +10,16 @@ jobs:
deploy:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v2
with:
submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo
run: |
wget https://github.com/gohugoio/hugo/releases/download/v0.147.8/hugo_0.147.8_linux-amd64.tar.gz
tar -xzf hugo_0.147.8_linux-amd64.tar.gz
chmod +x hugo
mkdir -p ~/bin
mv hugo ~/bin/
echo "~/bin" >> $GITHUB_PATH
- name: Setup
run: apt-get install hugo -y
- name: Build
run: hugo --minify
- name: Setup SSH
run: |
echo "Setting up SSH..."
mkdir -p ~/.ssh
if [ -z "${{ secrets.SSH_PRIVATE_KEY }}" ]; then
echo "ERROR: SSH_PRIVATE_KEY secret is not set!"
exit 1
fi
echo "SSH_PRIVATE_KEY secret is present"
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
chmod 700 ~/.ssh
echo "SSH key saved and permissions set" ssh-keyscan -H alexselimov.com >> ~/.ssh/known_hosts
echo "Host key added to known_hosts"
# Test SSH connection
echo "Testing SSH connection..."
ssh -o StrictHostKeyChecking=no -o BatchMode=yes root@alexselimov.com "echo 'SSH connection successful'" || echo "SSH connection failed"
- name: Deploy
run: rsync -azvr public/* root@alexselimov.com:/var/www/alexselimov.com/
run: rsync -azvr public/* root@smokey:/var/www/alexselimov.com/

2
.gitmodules vendored
View file

@ -1,3 +1,3 @@
[submodule "themes/hugo-theme-terminal"]
path = themes/hugo-theme-terminal
url = https://forge.alexselimov.com/aselimov/Terminal-Hugo-Theme.git
url = https://github.com/panr/hugo-theme-terminal.git

View file

View file

@ -5,17 +5,14 @@ date: 2022-10-03T14:17:10-04:00
layout: index
---
<pre class="figlet-banner">
_ _ ____ _ _
/ \ | | _____ __ / ___| ___| (_)_ __ ___ _____ __
/ _ \ | |/ _ \ \/ / \___ \ / _ \ | | '_ ` _ \ / _ \ \ / /
/ ___ \| | __/> < ___) | __/ | | | | | | | (_) \ V /
/_/ \_\_|\___/_/\_\ |____/ \___|_|_|_| |_| |_|\___/ \_/
</pre>
I am a materials scientist and software developer proficient in Rust, Fortran, C++, Java, and Python. I have extensive experience with Unix operating systems on both high performance computing resources and on my personal computer (check out [Void Linux](https://voidlinux.org)). I currently work at [UKG](https://www.ukg.com) as a Java Backend Engineer.
**Checkout recent posts below or posts organized by topic [here](/topics)**
This website is a place for me to post about a range of topics from professional news, to tech tutorials, to recipes I enjoy very much. Checkout some of my recent posts below or find them all organized by tags [here](/posts).
**Thanks for stopping by!**
I also designed and manage a few websites for family members, so check them out:
[alexanderselimov.com](https://alexanderselimov.com)
[iberoamericanliterarysociety.com](https://iberoamericanliterarysociety.com)
**Checkout some posts below and thanks for stopping by!**

View file

@ -6,70 +6,10 @@ date: 2022-10-04T23:35:54-04:00
Alex Selimov
==================
**alex@alexselimov.com · [https://alexselimov.com](https://alexselimov.com)**
## Skills
- Programming Languages: Python, C++, Rust, Java, Fortran, Bash
- Algorithm design, data structure design, runtime complexity analysis
- High Performance Computing: Message Passing Interface (MPI), OpenMP, C++17 parallelism, Rayon, Python multithreading
- Proficient in Linux environments on desktop, personal server, and computing cluster architectures.
- Knowledge of product development tools such as git, Docker, CI/CD pipelines, JIRA, and Agile workflow.
- Expertise with development and profiling tools: Valgrind, gdb, gprof, Intel VTune profiler, tau profiler.
- Technical writing abilities which resulted in 8 published journal articles and creation of software specifications/documentation.
## Experience
**UKG**, Atlanta\
*Software Engineer (May 2025 -- Present)*
- Worked as backend engineer on notifications as a service using a microservice architecture built on top Java, SpringBoot, Kafka, RabbitMQ, MongoDB, Splunk, and Grafana technologies.
- Implemented improved observability for services to reduce service downtime.
- Acted as a Security Champion and addressed security vulnerabilities in existing code based on SAST and SCA scans performed using CXOne Checkmarx.
- Led implementation of testing services for web push notification services.
- Assisted in development of MCP server and LLM chatbot proof-of-concept to act as an internal assistant for providing support to other UKG teams.
**SpaceWorks Enterprises**, Atlanta\
*Senior Software Developer (January 2024 -- April 2025)*
- Lead development and maintainer role for commercial off-the-shelf (COTS) software products as well as NASA and NAVAIR programs in Rust and Python.
- Led development of modular and extensible simulation libraries for modeling applications including multi-body six-degree-of-freedom simulations, state-space linear simulations for control system design, differential evolution optimization, among others.
- Improved mesh based calculations from **~1 hour to ~1 minute** per analysis through improved data structure and algorithm design.
- Implemented multi-threading for accelerating simulation analysis and for asynchronous execution.
- Developed equilibrium gas composition solver for different stages of a rocket engine cycle with **order-of-magnitude improved speed compared to legacy approach**.
- Product owner for COTS product including final approval of merge requests, interfacing with customers for sales and technical support, and helping to develop software roadmaps.
- Developed and maintained CI/CD pipelines for COTS products using Gitlab runners and docker containers.
- Mentored junior developers in idiomatic Rust and software architecture.
**Third Wave Systems**, Minnesota\
*Computational Mechanics Engineer (December 2022 -- January 2024)*
- Worked in an Agile team on a variety of projects requiring fast context switching to implement cutting edge functionality in C++, Fortran, and Python.
- Worked on large legacy C++ FEA code bases to add new functionality as well as address subtle legacy bugs resulting from race conditions, invalid memory access, and incorrect usage of programming language built-ins.
- Refactored core solvers utilizing an Octree data structure for adaptive mesh refinement, utilizing OpenMP and C++17 built in multi-threading, resulting in **90% reduction in simulation time**.
- Implemented improved force models for drilling through addition of analytical equations for elastic indentation, **which reduced error by 10% relative to experiments**.
- Led team members in implementation of machine learning analysis in Python requiring accurate effort estimation and selection of functionality based on effort/risk to reward.
- Mentored junior developers in idiomatic Python and machine learning concepts.
- Automated manual simulation creation and analysis workflows using Python, leveraging active learning based adaptive sampling, to reduce manual effort by engineers and **reduce usage of compute resources by ~80%**.
**McDowell Research Group**, Dr. David McDowell, Georgia Tech\
*Graduate Research Assistant (August 2017 -- December 2022)*
- Developed and extended Concurrent Atomistic-Continuum (CAC) simulation toolkit involving the development of a coupled finite element method and classical many-body molecular dynamics simulation tool in C++ and Fortran.
- Developed a series of Python pipelines for analyzing simulations and visualization of simulation results.
- Refactored significant portions of the code to **reduce simulation run times by 60%** through design of new algorithms and improved implementation of communication subroutines utilizing MPI.
- Profiled and tuned software performance for high performance computing clusters including implementing code structure changes enabling improved compiler optimizations and addressing MPI communication bottlenecks.
- Worked independently on self-guided research topics while also collaborating with external sources such as Sandia National Lab and University of Florida.
- **Authored three published journal articles and four conference presentations**.
**Mechanics of Materials Organization**, Dr. Xiaowang Zhou., Sandia National Lab\
*Intern - Engineering Sciences Summer institute (May 2021 -- August 2021)*
- Restructured simulation toolkit codebase to abide by an object-oriented programming paradigm to ease addition of functionality.
- Worked on the development of finite temperature CAC simulations through design of novel finite elements.
- Developed methods for pressure controlled CAC simulations.
**aselimov3@gatech.edu · [https://alexselimov.com](https://alexselimov.com)**
[{{< fontawesome class="fa-solid fa-download" >}}PDF version](/AlexSelimovCV.pdf)
## Education
- **Georgia Institute of Technology** (North Avenue, Atlanta, GA 30332)\
@ -92,3 +32,44 @@ Alex Selimov
Funding Source: Extreme Science and Engineering Discovery Environment (XSEDE)\
Project Title: Concurrent atomistic-continuum simulations of extended scale defect interactions in heterogeneous microstructures (TG-MSS150010)\
Funding Period: Jan 1, 2019 - June 30, 2022
## Research Experience
**McDowell Research Group**, Dr. David McDowell, Georgia Tech\
*Graduate Research Assistant (August 2017 -- Present)*
- Worked on the development and extension of the Concurrent Atomistic-Continuum method for running massively parallel coarse-grained atomistic simulations of dislocation interactions with interfaces and other defect structures in nanolaminate and stainless steel materials.
- Improved parallel implementation and tuned calculation algorithms of in-house simulation suite obtaining runtime reductions of 66%. Also contributed to a fork of LAMMPS implementing the CAC simulation method.
- Implemented the finite element method to solve conservation law field equations to enable reductions in degrees-of-freedom leading to reduced computational cost.
- Tested various metrics to numerically characterize atomic interface structure of metallic semi-coherent interfaces and applied machine learning methods to track the interface structure evolution with loading.
- Modeled solute distributions in diffuse Cu/Ni semi-coherent interfaces and their effect on the glide of interface misfit dislocations and overall interface properties.
- Investigated the sequential interactions between dislocations and obstacles in various systems to quantify evolving obstacle strength and interaction mechanisms.
**Mechanics of Materials Organization**, Dr. Xiaowang Zhou, Sandia National Lab\
*Intern - Engineering Sciences Summer institute (May 2021 -- Aug 2021)*
- Studied the barrier strength of grain boundaries with embedded helium bubbles to improve hardening predictions of irradiated stainless steel materials, collaboration continued beyond internship period.
- Extended molecular dynamics barostat algorithms to coarse-grained regions for pressure relaxation.
- Worked on CAC capabilities for high temperature dynamics simulations through development of new finite element types and extension of neighboring codes for cluster potentials.
**AeroStructures Lab**, Dr. Seetha Raghavan, UCF\
*Research Assistant (September 2013 -- December 2016)*
- Utilized photoluminescence spectroscopy and piezospectroscopy for the characterization of material and mechanical properties in ceramic and composite materials.
- Worked on collaborative project with Imperial College London (Dr. Ambrose Taylors Research Group) for the testing and characterization of novel hybrid carbon fiber reinforced polymer (HCFRP) composites.
- Worked on collaborative project with German Aerospace Center (DLR) to study stress development in thermally grown oxide layers of thermal barrier coatings.
**Pollock Research Group**, Dr. Tresa Pollock, UCSB \
*RISE Undergraduate Intern, NSF funded REU (June -- August 2015)*
- Studied Magnesium-zinc alloys to determine methods for texture weakening for improvement of material properties through analyzing presence of intermetallic particles.
- Utilized scanning electron microscopy to take secondary electron images, backscatter electron images, and to analyze crystallographic texture through electron backscatter diffraction
- Prepared image analysis tools to determine volume fraction of intermetallic particles from SEM images for comparison to grain size distribution of samples with Matlab.
## Skills
- Programming in Fortran, C, and C++ with additional expertise utilizing the Message Passing Interface (MPI) for implementation of parallel and scalable simulation tools.
- Programming in MATLAB, HTML, and CSS.
- Data analysis and pipeline creation using Python with Numpy, Scipy, Scikit-Learn, Pandas, and Tkinter modules. Additional familiarity with Jupyter Notebooks.
- Expertise in atomistic simulations using LAMMPS with Molecular Statics, Molecular Dynamics, and Monte-Carlo methods.
- Expertise with Linux software environment and building applications for use with computing cluster architectures.
- Familiarity with software development methodologies including test case design and CI/CD pipelines.

View file

@ -1,20 +0,0 @@
---
title: "The folly of Debian major version upgrades"
date: 2025-07-13T08:35:50-05:00
topics: ["git", "matrix", "self-host"]
---
I recently realized that my web server was still on Debian Buster, **2 whole major versions behind** the latest Debian version. Normally this kind of thing wouldn't matter to me except that my matrix-synapse server was unable to federate with matrix synapse servers running newer versions. I normally run rolling release distributions on my local machines (I use Void btw) and it had been a long time since I tried this kind of upgrade. I went in hopeful that it would be straightforward.
**This is a reminder to backup consistently.**
Of course after thinking everything went fine, I tried to install a new package and libcrypt ends up getting removed leaving me unable to login to my server. Luckily I had backed up before this which saved all of my bespoke configurations. I'm sure no one noticed the down time but I did use this as an opportunity to make the followjng changes:
- matrix-synapse upgrade to dendrite for better performance.
- Gitea to forgejo just to try something different.
- Properly set up actions to auto build and deploy site on push.
- Rework website and swap to the [terminal hugo theme](https://forge.alexselimov.com/aselimov/Terminal-Hugo-Theme)
So far, I have positive opinions of all of my changes and highly recommend dendrite and forgejo.
**Note to self: Never consider it upgrading Debian version. Always structure it as a migration to newer Debian version to avoid downtime**

View file

@ -1,53 +0,0 @@
---
title: "Misc thoughts on AI"
date: 2025-08-01T07:45:26-04:00
topics: ['AI', 'Software development', 'LLMs']
---
## AI has become a very useful tool for me
If you know me personally, you know that I've been pretty slow on the LLM/GenAI uptake.
At this point, however, if you are a software developer that isn't integrating GenAI tools into your workflow I think you are probably going to be left behind.
I've been playing around with these tools a lot more lately, and I've come to a few conclusions.
1. Models that can be run locally (I've used a lot of different Ollama models) are mainly just ok. The best results I've had is with Gemma3:27b on an m4 macbook. Haven't tried qwen3 coder yet.
2. The amazing metrics you see referenced require 100b+ models that are not going to be feasible to run locally for most people.
3. Your application matters a lot. I find that these tools are extremely useful for java spring boot microservices but a lot less useful for scientific projects in Rust.
4. I really enjoy using the expensive LLM tools provided at work and enjoy using the free version of tools less.
5. Claude has given me the best performance so far.
I'm still debating which subscription to get for personal projects.
I know Claude is my favorite, but it's also much more expensive.
I also have a newborn right now and not much time for side projects, so I'm delaying the decision.
## AI has NOT become an irreplaceable tool
I am not a vibe coder and don't think I will ever give in to the vibes.
Even when I prompt claude code to make changes, I always know exactly what I want done and how I want it done.
Many times I'll make the changes myself because it's faster than trying to prompt Claude.
LLMs have definitely improved my efficiency, but I would be fine if all the GPUs in the world suddenly melted down.
I'm not a viber for a couple reasons:
1. I enjoy coding and problem solving.
2. I'm not convinced models are capable enough to be fully trusted.
3. I want to keep my own skillset because the future of AI is uncertain to me
## How does the economics of AI work?
From my very limited understanding, the fact that major AI companies are still requiring funding rounds indicates that AI is currently not profitable.
That makes sense to me since ChatGPT and Claude are available for free even though inference is certainly not free.
I think the significant portion of cost is due to model training.
It seems like model training costs won't be stopping anytime soon as companies race towards general and then "super" intelligence.
I'm not convinced either of those are a given.
As a result, prices will have to increase or ads will be introduced to recuperate investor money.
I'm also not sure how this applies to providers of open weight models.
Those prices can seem more reasonable, but are those subsidized as well? Finally, the current datacenter power consumption for model training seems entirely unsustainable.
If I recall correctly, Elon Musk is powering some of his datacenters with a constant flow of diesel fuel into generators because he can't get enough power from the power grid.
The scale of everything at the moment seems to border absurdity.
I think we are in for a bumpy ride for the next few years as the impact of GenAI technology and infrastructure works itself out.
Please let me know if I'm wrong about anything or with better predictions!

View file

@ -8,7 +8,7 @@ unsafe = true
[params]
contentTypeName = "posts"
showMenuItems = 3
showMenuItems = 5
postsToShowOnIndex = 3
fullWidthTheme = false
centerTheme = true
@ -18,12 +18,13 @@ tag = "tags"
topic = "topics"
[languages]
[languages.en.params]
[languages.en]
title = "Alex Selimov"
subtitle = ""
keywords = ""
copyright = "© Alex Selimov"
[languages.en.params]
menuMore = "Show more"
readMore = "Read more"
readOtherPosts = "Read other posts"
@ -34,25 +35,17 @@ logoHomeLink = "/"
[languages.en.menu]
[[languages.en.menu.main]]
identifier = "about"
name = "[About Me]"
url = "/about"
weight = 10
[[languages.en.menu.main]]
identifier = "cv"
name = "[CV]"
url = "/cv"
weight = 1
weight = 10
[[languages.en.menu.main]]
identifier = "git"
name = "[Git]"
url = "https://forge.alexselimov.com/aselimov"
weight = 1
[[languages.en.menu.main]]
identier = "linkedIn"
name = "[LinkedIn]"
url = "https://www.linkedin.com/in/alex-selimov/"
weight = 2
[[languages.en.menu.main]]
identier = "Scholar"
name = "[Google Scholar]"
url = "https://scholar.google.com/citations?user=w6unVk8AAAAJ&hl=en&oi=ao"
[[languages.en.menu.main]]
identifier = "gpg"
name = "[GPG public key]"
url = "./public.key"
weight = 10

View file

@ -1,41 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
oOzx0x0y7ELQVGJVtpxqVxLcA58xJCE34I+h
=5X5g
-----END PGP PUBLIC KEY BLOCK-----

@ -1 +1 @@
Subproject commit 7cd0b57a0276349b9f107afb48f692e72f0d931a
Subproject commit 4e2b01779a5d2cc1b869c6bce1edf4676a4684b9