Summary
Senior Software Engineer with 20+ years of experience building
complex internal tools, high-performance graphics, and engineering automation. I specialize
in bridging the gap between deep technical domains and functional product interfaces. Deeply
experienced in .NET, Node.js, and TypeScript, building front-ends in Svelte and React, and browser-based graphics in WebGL2.
Experience
Senior Software Developer Sep 2019 – Present ·Düsseldorf - Develop and customise auxalia PlantTools in C# and .NET: add-ons that extend AutoCAD Plant 3D and AutoCAD P&ID, working against the AutoCAD APIs and the SQL project databases behind them.
Senior Software Developer Sep 2016 – Aug 2019 ·Nürnberg - Built add-ins for the Autodesk Revit platform in C# and .NET, on the team behind SOFiSTiK’s software for structural engineers.
RebarDraw
Independent 2013 – 2016 - Automated the structural detailing process for engineers by building RebarDraw, a C#/WPF (later TypeScript and browser-based) application that generates DXF exports and schedules directly from design data.
- Demo: youtube.com/watch?v=nB8yswznxGo
Structural Engineer
Design and analysis 2010 – 2013 - Designed and analysed structures. The domain that RebarDraw and my later CAD work grew out of.
Self-taught programmer
QBasic, then the web 1998 – 2010 - Wrote my first program in QBasic in 1998, mostly by trial and error. That curiosity led through HTML, CSS, and Flash into building websites, and eventually into professional software development.
Education
MSc, Civil Engineering (Earthquake Engineering)
University of Tabriz 2007 – 2010 - Thesis: Evaluation of the Integrated Force Method for Free Vibration Analysis of Structures.
BSc, Civil Engineering
University of Tabriz 2002 – 2007
Personal projects
WebGL2 2D vector graphics engine - A GPU-accelerated 2D vector renderer that tessellates geometry, draws it in instanced batches, and shapes text with HarfBuzz. It holds 60 FPS with hundreds of thousands of shapes on screen, and a quadtree keeps hit testing fast at that scale.
TypeScriptWebGL2GLSLWebAssemblyHarfBuzzPathKit
QBasic 1.1 compiler and virtual machine - A QBasic 1.1 compiler and virtual machine that runs in a browser tab, from the lexer through to bytecode execution, with VGA graphics and audio of its own. Programs run live on the page at original early-90s hardware speeds, rather than as a recording.
TypeScriptSvelteChevrotainCanvas 2DWeb Audio
Structural detailing CAD for the browser - The browser rewrite of the original C# and WPF desktop tool. Engineers draft in 2D, detail the reinforcement, import their models from ETABS, and export the result to DXF, all of it drawn on a Canvas 2D renderer I wrote myself.
- Demo: youtube.com/watch?v=MSeMHu1wtEg
TypeScriptSvelteCanvas 2DDXFVitest
Technologies
- Languages
- C#, TypeScript, JavaScript, GLSL
- Web
- Svelte, React, WebGL2, Canvas 2D, WebAssembly, Vite, Node.js
- Desktop
- .NET, WPF, WinForms, DevExpress
- Data
- SQL Server, PostgreSQL, SQLite
- Tooling
- Git, GitHub, Vitest, xUnit, NUnit