Portrait Picture

Christian Karl Bahram Thorn

Software Developer
Skills
Resume
Projects
Gallery
Links

Christian Thorn

My name is Christian Karl Bahram Thorn, I studied Computer Science in Nuremberg and currently work in tech as backend dev.

When I learned to read and write in the first grade of elementary school I was able to start games like Sokoban and Leisure Suit Larry 1 on the family’s computer. That machine was running an IBM PC DOS (developed by Microsoft), had a 5.25-inch floppy disk drive 💾 and a green monochrome monitor as output in 1990. Solving computer related problems is fun to me since my earliest years.

IBM Loading Screen

A little while later we also had a Compaq Laptop that featured a VGA color display, a brand-new OS named Windows 3.1 and more games 🙂. In the seventh grade I got my first own PC (Compaq, Intel Pentium about 160MHz if I remember right, Windows 98). Later I started building PCs for myself, family and friends. I learned about networks when doing the first LAN parties with friends and as soon as I was old enough I visited public LAN party events with up to a thousand attendees.

Eventhalle Geiselwind, gefüllt mit Gamern und fast alle Computer noch mit Röhrenmonitoren.
Lan Nation 2006

I got into video editing (Adobe Premiere, Canon DV Disk Camcorder), learned a bit about scripting, animations, HTML / CSS and had to deal with many problems, on my own PCs and hundreds of PCs of people I knew with driver installations, viruses, worms, hard disk corruptions, recovery operations, other hardware/software issues, …. Back then all that stuff was a common thing up until Windows 7 (released 2009) became popular.

I am lucky and happy to have grown up during important times of digitalization with the mass adaptation of the public internet, smartphones, many different embedded systems (IoT), machine learning and upcoming of Google, Microsoft, Apple, Meta and Co - as well as the "Golden Age of Gaming" (PC, Atari, Game Boy, NES, SNES, Sega Master System, Mega Drive (CD), Saturn, N64, 3DO, Neo Geo, Neo Geo CD, PS, XBOX, Dreamcast, GameCube, WoW Vanilla, etc.).

I really struggled when I had to learn my first high level programming language (Java) at the university in 2006. I couldn't get my head fully behind that OOP thing and was a bit like a "guinea pigs" during the Bologna Process 🍝 as the first Bachelor degree program ever at that university. So that did not quite work out for me.

But that failing of my first studies led me to an academy where I was taught web development (LAMP Stack - primarily XHTML, CSS, Photoshop, JavaScript, MySQL, PHP and clean code habits) by supervised coding all day for half a year. Suddenly all that stuff with "abstract classes" and "magic methods" made sense to me - that was back in 2010. During my studies beginning 2013 I felt great joy from finally understanding how a computer really works, at least above the electrotechnical level, and was excited to learn about more advanced topics regarding software architecture, like GoF patterns and modern principles, that would further shape my coding skills. I had much success and great joy in teaching and helping others when learning their first programming language, since I always tried to remember how much I struggled during my first studies of computer science.

While being at college I was tutoring fellow IT students in learning C# and Basics of Computer Science for many semesters and before that I had other responsibilities in school or sports clubs. For a one-year long university programming project I was unanimously selected as the SCRUM Master and project lead.

During my internship at Schwarzlichtfabrik Nuermberg in 2017 and the following final years of university, I picked up photography as a hobby.

Eisvogel sitz auf einem Ast. Der glänzende blaue Streifen auf dem Rücken glitzert schön und der Eisvogel ist umgeben von grünen Blätern und Zweigen.

In 2021 I started working full time as a backend developer and looking back at my studies now in 2023, I really miss standing near a white or chalk board and teaching IT stuff.

So, when I am not sitting at the computer or shooting some urban wildlife with my DSLRs, I do a bit of sports, enjoy going out, having BBQ with friends or just riding my mountain bike.

Nothing is permanent but change.

My Skills

What I do not know I do not think I know

Languages

Basics In Markup And Programming Languages

C# 😍

I loved this language on first sight back in college where I then helped many people learning C#. I like to think that for understanding advanced code all you need is great basics and someone who cares about clean code.

PHP 🤩

What an awesome language since it is so flexible for creating all kinds of different applications.

JavaScript 😎

I worked out some nice and sweet lines of code with JavaScript - really enjoy working with it.

Python

Basic programming experience gained during my BSc thesis.

SQL / LINQ

I coded SQL when taking lectures in databases at college and was schooled in using MySQL before.

C++

A few hours of self-teaching the syntax, private lectures and briefly used in combination with Unreal Engine.

Java

I wrote some small apps for my android phone (f. e. compass-, lamp-, notes-apps, etc.).

IJVM (Integer Java Virtual Machine by Andrew Tanenbaum)

I came across this language at college when learning about computer architecture.

MIPS32 Assembler

Learned and taught the fundamentals during college.

LaTeX

Used for creating different kinds of documents and presentations - but the syntax can get really messy, I don't like that.

R

Just had a few weeks of training during studies.

XML-Family (XAML, JSON, etc.)

Never had problems when needed for Android, Symfony, etc.

YAML

When I was tought Symfony Framework, YAML was used for templating and I also created YAML scripts for testing pipelines in Azure DevOps.

HTML5

What is there to say about this markup language - it is a handy tool.

CSS

Not hard to learn - yet the syntax is not as enjoyable as the results.

UML

Obviously, the Unified Modeling Language is not a programming language and does not really compile (Model Driven Architecture). But since its main purpose is to describe software systems I still list it here.

Software

IDEs, APIs, Frameworks, Engines, Tools

Visual Studio IDE / JetBrains ReSharper 💪

One of my favorite IDEs - I have been coding with it for years. ReSharper I also used, great for refactoring to a common code style within a team - also dotCover was pretty useful.

Entity Framework Core

A data access framework for object relational mapping. Worked with it full time for one and a half years - quite enjoyed it 👍.

XUnit Tests

A test tool for .NET framework, as the name suggests used for unit testing. I definitely sleep better at night when my code is thoroughly tested.

SoapUI

End-to-End Functional, Load & Security Testing for REST & SOAP APIs and other web services. It is free, open source, but the UI looks like crap and the automation is lacking.

Windows Presentation Foundation

Popular GUI Framework for .NET developers. Basic knowledge from studies and developing with EF Core.

Docker

Decoupling applications from the machine is obviously very handy.

Virtual Box

Awesome for developing or testing stuff on different operating systems on a single machine, like running different LINUX distributions on a Windows OS (my most common use case).

Azure DevOps Server

Managing work items, pull requests, some communications, testing pipelines and extensive documentation via wiki.

Trello

Visual appealing tool for organizing any stuff like (software) projects or studies/work.

NetBeans IDE

Once upon a time my most used IDE, it does the job well.

Android Studio IDE 📱

This IDE was great fun to work with because it was very intuitive and easy to use - so enjoyable. 😚

Eclipse IDE

Fifteen years ago, this IDE felt already twenty years old - I never got used to work with it.

Magix Movie Studio / Vegas

Hundreds of hours of editing 😍, recently mostly basic stuff.

Audacity

Great for off-screen recordings and sound editing.

Unreal Engine

I started working with the Unreal Engine during an internship, where I trained for a few months. There I got familiar with the GUI, created a typical Third Person "Hello World" Game, learned a bit about terrain generation / creation, state machines and PostFX effects. Later during my BSc thesis, I created some 3D worlds for driving simulations (Carla).

Autodesk 3ds Max

Had a few weeks of training and summer-school, but sincerely these kinds of apps are too huge for a "weekend-trip".

Three.js

Great API for learning the basics of 3D animations.

SAP ERP

Participation in a semester-long internship (2 CP).

Adobe Photoshop

I was schooled in PS on college and during my web development education.

Adobe InDesign

I used to create lots of documents, letters and sometimes presentations in ID, I was also schooled in this for one semester.

Bootstrap 👞

This page is pretty much my first bootstrap project 😉.

Symfony

I did not enjoy working with it because back than it was too complex for me as I was not as aware as today.

Slic3er, Cura

Used for creating 3D prints.

Repetier Server API

Involved in one of my projects (3D Printer Manager Application).

IntelliJ IDEA

Briefly used during a lecture in software architecture.

Git and Perforce

I versioned with Perforce briefly (UE) and Git for different projects during my studies. Since working full time I use Git on a daily bases.

KOLOR Autopano & Panotour (acquired by GoPro in 2015)

Great panorama stitching and virtual tour creation software.

Carla Simulator

Open-source simulator for autonomous driving research.

VectorZero RoadRunner (MathWorks)

Editor for designing 3D scenes for simulating and testing automated driving systems.

ROS - Robotic Operating System

A Middleware to build robot applications.

GrapeCity Documents for Excel, .NET Edition

Spreadsheet API, in my case used for creating Excel documents from templates on the server side.

Google

Very important and quite a skill to master - the first search engine I ever used was AlltheWeb.com back in 1999 (shut down in 2011).

Operating Systems

Just to mention them

Windows 3.1x, 95, 98, 2000, XP, 7, 8, 10

I grew up using those OS for more than 25 years now. Skipped Vista for obvious reasons 😅.

LINUX

Ubuntu 18.04, Debian 10 buster, Raspberry Pi OS (previously called Raspbian), CentOS. I used each of those for different projects.

Android

Some insights through development for Android smartphones (Android 7.0 Nougat - 2016).

MacOS

During my training on web development I worked with MacOS for six months straight, but I never really enjoyed that system.

iOS

I had to jailbreak my iPhone 2 and never understood why they made it such a pain to transfer a mp3 file - since then I ceased to use Apple.

Hardware

Repairs, Builds And Everything Else

PC Build / Repair

I just assembled too much PCs already in my life - got a little bit bored of it.

Network Troubleshooting

Proper Planning Prevents Piss Poor Performance.

Plotter (Textile Film) and Laser Cutter (Engraving)

I have worked a little bit with these, assembling, calibrating and software wise.

3D Print

Lots trial and error, but I can enjoy that.

Virtual Reality Head Mounted Displays

(In 2017/18:) Still a young technology, but very nice to get in touch with the latest HMDs from HTC Vive and Oculus.

DSLR Photography 📸📸📸

(Urban-) Wildlife
Macro
Landscape / Panorama
Low Light
Portrait

Hobby - Nikon 😍.

My Resume

Where I worked and studied

Where have I worked

Fulltime Backend Developer

Enterprise Applications

Fulltime Backend Developer

Enterprise Applications

HORIBA - 2bc CAD+Engineering

Working Student

Software Development

ADAS / LIDAR Testing

iSyst - Test house for embedded systems

Final Thesis

Software Development

In cooperation with HORIBA

Evaluation of CARLA for ADAS Simulation

Schwarzlichtfabrik - 3D Minigolf Nuremberg / Wurzburg

Internship / Working Student

Software Development

Student Assistant

E-Tutor

Peer Assessment Programming I & II

  • WS 18/19
  • SS 19
  • WS 19/20

All BSc students at the computer science faculty of TH Nuremberg GSO had to successfully complete six to eight weekly assignments and evaluate two assignments from other students each week to be eligible for the exams on Programming I and II during their first two semesters.

My job was to prepare and administrate the web platform (Moodle) for this over three semesters, make sure everything goes smoothly and I also supported the students where I could.

Alongside I checked quizzes and exercises created by students and made some corrections if necessary.

Preparatory Courses Tutor Programming I

  • WS 18/19

evosoft GmbH

- 100% Daughter Company Siemens AG

Working Student

IT Support 2nd Level

  • Networking (Hardware / Software)
  • Testing network monitoring & security tools (Nagios XL, OpenNMS, Icinga, etc.).
  • Basic computer support
  • Mobile-App development for Android (Android Studio IDE 2.x)

Semester Tutor

  • Basics of Computer Science
    • Number Theory, Boolean Theory, Sequential Logic, Assembler (MIPS), Common Computer Architecture
    • SS 15
  • Basics of Programming I
    • Datatypes, Operators, Control Structures, Methods, Classes, Reading and Writing Files
    • WS 16/17
    • WS 18/19
  • Basics of Programming II
    • Concpets of OOP, Operator Overloading, Conversion Operators, Linked Lists, Exception Handling, Genercis, Delegates, Events
    • WS 14/15
    • SS 15
    • SS 16

Private Teacher

Coding & Math

Private lessons for school students in mathematics.

Private lessons for college students in:

  • Coding
  • Basics of Computer Science
  • Mathematics
  • Algorithms
  • Data Structures
  • Cryptography
  • Business Administration and Informatics

Casual Employment

Physical work like constructions and relocations

Poker Dealer

Events / Casino

Me working as poker dealer in a event with thousands of players

Bartender

Gastronomy

Where have I studied

University

Nuremberg Institute of Technology Georg Simon Ohm

Media informatics

B. Sc.


Business informatics

Academy

Webmasters Academy Nuremberg GmbH

Web Devoloper

Web Developer Grade II
University
Technical School

Lothar-von-Faber Schule, Nuremberg
12th Grade
Student Council
President (1 Year)
Class President (1 Year)


Städtische Fachoberschule, Nuremberg
11th-12th Grade
Student Council
President (1 Year)
Class President (2 Years)

Secondary School

Veit-Stoss-Realschule, Nuremberg
8th-10th Grade
Student Council
President (2 Years)
Class President (3 Years)


Theresien-Gymnasium, Ansbach
7th Grade


Platen-Gymnasium, Ansbach
5th-6th Grade
Class President (1 Year)

Primary School

Karolinenschule, Ansbach
2nd-4th Grade


Abendrothschule, Cuxhaven
1st-2nd Grade

Certifications

Certification Webmasters Europe

Web Business Manager
Web Designer Grade I
Web Developer Grade I
Web Developer Grade II

Curriculum

Certification Neo4j Developer

Neo4j GraphAcademy

ISTQB Tester

I absolved a course at college based on this certificate and a year later when working full time I had a five day course without the certification.

My Projects

Previous and current achievements

What have I helped build or built by myself

Enterprise Application

  • Backend Dev

Software Evaluation Carla

  • Software Develompent, Autonomous Driving, Deployment, 3D Creation

Webapplication

  • Project Lead, SCRUM Master, Content Creation

Website

  • Webdesign

Photography 360 Virtual Tour

  • Content Creation - Just for fun

Game Development & Virtual Reality

  • Internship and Working Student

PHP Application

3D Printer Manager Application

Simplifying and logging 3D print jobs @ Schwarzlichtfabrik.

  • Uploading *stl / *obj files for printing
  • Listing details about 3D printers within the network
  • History of print jobs and easy reprint
  • Managing uploaded files, 3D preview of models
  • 3D Preview of *.gcode before print
  • Interacts with Repetier Print Server API
  • Operators only select a few options, including a dropdown list of config files specified for each 3D printer

Website (DEPRECATED)

  • Webdesign

Tutorial Videos

  • Voice Over Video Creation

Contact Me

via E-Mail (best)

hidden



via LinkedIn:

🔗

on Flickr:

🔗

on iNaturalist:

🔗

on YouTube:

🔗

via Facebook:

🔗