adriantomgar@gmail.com +48 571 517 065 LinkedIn GitHub Kraków, PL
Adrián Tomás García

Kraków, Poland · open to backend roles

Adrián Tomás García

Mechanical Engineer Backend Developer

Mechanical engineer turned backend developer. I write the software mechanical engineers need.

I build Python systems that solve real engineering problems: mesh repair pipelines for AI-generated 3D geometry, custom FEM solvers, ML models that catch anomalies in gas pressure-reduction data before they become failures.

That foundation built from scratch, before I leaned on any AI assistance, is what I bring into fast, AI-assisted development now. I don't trade accuracy for speed, and I don't ship code that doesn't need to exist.

01 — WORK EXPERIENCE

Where the code met the machine

Each animation below represents the kind of work the role involved. It is a visual entry point, not a numerically exact simulation — the linked repository is the technical proof.

R&D & Lab Operations EngineerFicta3D P.S.A Kraków, Poland Jul 2026 — Present ENGLISH
  • Leading the fluid-dynamics design of a new resin 3D printer (FICTA O), covering the full product lifecycle from CAD modelling in Inventor to prototype validation and technical documentation.
  • Building the backend of an automated 3D mesh processing pipeline (Python, trimesh, NumPy): geometry validation, non-manifold and self-intersection repair, and conversion of AI-generated and customer-supplied models.
  • Implementing over it a shrinking-ball algorithm directly over NumPy vertex-face arrays, and nearest-neighbor queries (SciPy), applying linear algebra and low-level mesh data structures to detect thin walls before printing and convert them into printable geometry.
Mesh repair pipeline

FIG. 01 Topology diagnosis, repair and resin print of an AI-generated mesh.

Junior Mechanical EngineerENAGÁS S.A. Zamora, Spain Nov 2025 — May 2026 SPANISH · ENGLISH
  • Developed Python services for predictive maintenance and anomaly detection on SCADA time-series data, monitoring 1,000+ gas pressure-reduction trains under multiple operational regimes.
  • Built the full data path in-house: ingestion and cleaning of noisy sensor streams (pandas, NumPy), feature engineering, and model training and evaluation (scikit-learn, TensorFlow).
  • Reviewed P&IDs and high-pressure fluid-transport infrastructure for hydrogen pipelines, building expertise in the design and verification of pressure-bearing mechanical components.
  • Validated high-precision industrial sensors through controlled lab testing, including performance benchmarking and reporting of technical recommendations.
Anomaly detection

FIG. 02 Five sensors on a 72 → 16 bar line feeding a multivariate anomaly model.

Junior Engineer · Industrial Dept. ManagerMkZ Soluciones de Ingeniería S.L. Zamora, Spain Feb 2025 — Jan 2026 SPANISH
  • Developed Python automation scripts in FreeCAD to generate repetitive components and macro-driven geometry, reducing modelling time by ~30% on large mechanical assemblies.
  • Performed FEM-based fatigue and stress analysis of milling-machine spindle shafts in ABAQUS, supporting design verification, optimization, and component lifecycle extension through simulation.
  • Built parametric 3D models and assemblies in Autodesk Inventor, working from technical documentation in English, and validated numerical results against analytical hand calculations.
  • Designed 5-axis CAM strategies and additive manufacturing solutions (metal and polymer) following DfM principles for rapid prototyping and design iteration.
  • Managed the industrial department: scoping, client requirements, and delivery.
CAD automation

FIG. 03 Parametric wing rib: parameters, toolpath generation and 3-axis machining.

Engineering InternshipTalleres Óñiga — Precision machining Salamanca, Spain Jun — Aug 2024 SPANISH
  • Hands-on experience with conventional and CNC machining, defining manufacturing operations and contributing to co-design with a manufacturing approach.
  • Executed high-precision tolerance verification and optimization under strict client requirements for the nuclear industry (ENUSA).
05 — KEY PROJECTS

Built from scratch, validated by hand

Structural Frame Calculation Program with AI ImplementationBachelor's Thesis · University of Salamanca School of Engineering, Zamora Presented September 2025 Advisor: Manuel Domínguez Lorenzo
  • Built a custom Python/NumPy FEM solver for 3D steel frames from scratch, implementing the direct stiffness method — the same approach underlying SAP2000, ABAQUS and ANSYS — including a custom-derived Gram-Schmidt rotation pipeline for global-axis transformation and a Eurocode 3 section resistance check module.
  • Full 3D beam element formulation: 12×12 elemental stiffness matrices covering axial, bending (both local axes), shear and torsional degrees of freedom per node (6 DOF × 2 nodes per element). The Gram-Schmidt rotation procedure includes a special case for purely vertical elements, where the general orthonormalization method degenerates.
  • Supports point loads, uniformly distributed loads and self-weight; computes internal axial, shear and bending stress diagrams along each member's length at user-defined resolution.
  • Validated against hand-calculated textbook cases across multiple load orientations, and documented and root-caused the one discrepancy found (axis-mapping in intermediate data handling) rather than glossing over it.
  • Explored LLM-assisted structural design generation (custom JSON prompting) as a rapid-prototyping layer on top of the solver. Stack: Python · NumPy · SciPy · PyVista · PyQt6 · OpenAI API.
FEM analysis

FIG. 04 24 × 24 m building, 5 frames at 6 m · HEB 240 columns · IPE 400 rafters · q = 1.0 kN/m².

3-axis CNC Milling MachinePersonal / academic project
  • End-to-end design of a portable CNC milling machine using LinuxCNC — covering mechanical design, electronics and control system integration. Included noise-reduction solutions for use at mineral exhibitions. Prototype pending due to budget.
07 — TECHNICAL SKILLS

By proficiency, not by percentage

Grouped by how much I actually use them. No invented numbers — where a tool sits in the middle tier, it is because there is a project on this page that proves it.

Using every day

Python Git Inventor FreeCAD

Solid experience, real projects

each one linked to the work that proves it

Familiarized / active learning

SciPy Ubuntu Server ABAQUS ANSYS 5-axis CAM SolidWorks Catia V5
08 — WHAT I CAN DO FOR YOU

Three patterns, each visible in two places

01

I pick up what the job needs, before anyone asks me to.

Nobody hired me at MkZ to write Python — I taught myself FreeCAD scripting and cut modelling time on large assemblies by around 30%. At ENAGÁS that turned into building an entire in-house data path, from noisy sensor ingestion to trained model, for 1,000+ pressure-reduction trains.

MkZ → ENAGÁS

02

I can carry a physical problem all the way into a software pipeline.

For my thesis I derived and implemented the direct stiffness method from scratch, in NumPy, then validated it against hand calculations. At Ficta3D the same instinct goes into mesh geometry: shrinking-ball and nearest-neighbour queries over raw vertex-face arrays to find thin walls before a print fails.

Thesis → Ficta3D

03

I write things down so the next person can use them.

I have co-authored two technical books — one on applied AI and ML for business, one on 3D printing and FEM-based design validation. The same habit shows up in the work: the FICTA O printer shipped with its technical documentation, and the thesis documented the one validation discrepancy it found instead of hiding it.

Publications → engineering documentation

10 — EDUCATION

Formal training, academic and musical

Bachelor's Degree in Mechanical Engineering — University of Salamanca

Salamanca, Spain · Sep 2020 — Oct 2025

Specialization Program in Piano Mechanics — European University Miguel de Cervantes

Valladolid, Spain · Sep 2018 — Jan 2020

Professional Degree in Classical Guitar — Professional Music Conservatory of Salamanca

Salamanca, Spain · Sep 2011 — Jun 2018

Precision instincts formed regulating piano mechanics: a key that travels a tenth of a millimetre too far is a key that feels wrong, and no amount of explaining fixes it. That is the same standard I apply to a tolerance, a stiffness matrix, or a mesh that has to be watertight.

11 — LANGUAGES

Languages

Spanish

Native

English

C1

Professional working proficiency.

Polish

A0 — actively learning

Already living in Kraków.

12 — CONTACT

Let's talk about your backend.

If you are hiring for Python or backend work and want to see how I think about a problem before the interview, everything above is already the answer. Write to me and I will reply.

adriantomgar@gmail.com