My name is Christian Karl Bahram Thorn, I studied Computer Science in Nuremberg and currently work in tech as a 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.
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 got into building PCs for myself, family, and friends. My first networking experience - hubs, switches, network cables, IP addresses, and all that - came from figuring things out during LAN parties with classmates and my "Counter-Strike clan." This was back in the day, before Google or smartphones, so we’d just tinker around, hoping to get everyone’s PC into the game lobby. Once I was old enough, I started hitting up public LAN events with crowds ranging from a few hundred to a thousand people.
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.
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.
What I do not know I do not think I know
Basics In Markup And Programming Languages
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.
What an awesome language since it is so flexible for creating all kinds of different applications.
I worked out some nice and sweet lines of code with JavaScript - really enjoy working with it.
I coded SQL when taking lectures in databases at college and was schooled in using MySQL before.
A few hours of self-teaching the syntax, private lectures and briefly used in combination with Unreal Engine.
I came across this language at college when learning about computer architecture.
Used for creating different kinds of documents and presentations - but the syntax can get really messy, I don't like that.
When I was tought Symfony Framework, YAML was used for templating and I also created YAML scripts for testing pipelines in Azure DevOps.
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.
IDEs, APIs, Frameworks, Engines, Tools
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.
A data access framework for object relational mapping. Worked with it full time for one and a half years - quite enjoyed it 👍.
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.
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.
Popular GUI Framework for .NET developers. Basic knowledge from studies and developing with EF Core.
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).
Managing work items, pull requests, some communications, testing pipelines and extensive documentation via wiki.
This IDE was great fun to work with because it was very intuitive and easy to use - so enjoyable. 😚
Fifteen years ago, this IDE felt already twenty years old - I never got used to work with it.
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).
Had a few weeks of training and summer-school, but sincerely these kinds of apps are too huge for a "weekend-trip".
I used to create lots of documents, letters and sometimes presentations in ID, I was also schooled in this for one semester.
I did not enjoy working with it because back than it was too complex for me as I was not as aware as today.
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.
Great panorama stitching and virtual tour creation software.
Editor for designing 3D scenes for simulating and testing automated driving systems.
Spreadsheet API, in my case used for creating Excel documents from templates on the server side.
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).
Just to mention them
I grew up using those OS for more than 25 years now. Skipped Vista for obvious reasons 😅.
Ubuntu 18.04, Debian 10 buster, Raspberry Pi OS (previously called Raspbian), CentOS. I used each of those for different projects.
Some insights through development for Android smartphones (Android 7.0 Nougat - 2016).
During my training on web development I worked with MacOS for six months straight, but I never really enjoyed that system.
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.
Repairs, Builds And Everything Else
I just assembled too much PCs already in my life - got a little bit bored of it.
Proper Planning Prevents Piss Poor Performance.
I have worked a little bit with these, assembling, calibrating and software wise.
Lots trial and error, but I can enjoy that.
(In 2017/18:) Still a young technology, but very nice to get in touch with the latest HMDs from HTC Vive and Oculus.
Hobby - Nikon 😍.
My favorite chapters of IT-studies
Where I worked and studied
Microbusiness (5 employees)
ISO Group 100% external at Siemens Healthineers
Medium Business (500+ employees) / Corporation (72.000 employees)
½ Software development (.NET), ¼ analysis and troubleshooting, ¼ processes and formalities (internal stuff)
Insights into the operating systems for CT and MRI devices, regarding installation 🛠, backup 💾, and restore ♻, along with various Siemens-Healthineers-specific details and knowledge of software development processes for medical devices
A fantastic, friendly and professional team with immense brainpower 🧠 all around, plus great bosses, managers and a positive and polite work atmosphere
0 sick days
Microbusiness (5 employees)
Fulltime Backend Developer (Junior)
Web API Applications
Self-taught in architectural guidelines, CI/CD processes, Azure DevOps/Git administration, requirement engineering; created documentation and guidelines for software development; very limited insights into the insurance business
💲 Helped the sole other developer by refactoring existing code base and knowledge transfer
First time thinking about becoming scrum master, team lead or building my own team 🦾
0 sick days
Jus-IT Servicezentrum der bayerischen Justiz
Medium Business (500+ employees)
Fulltime Backend Developer (Junior)
Enterprise Applications
Learned a whole lot about programming, version control, coding principles, code reviews and best practices from my awesome colleagues 👋👍
In the development process, the official Microsoft documentation and Martin Fowler's Design Patterns For Enterprise Application Architecture served as the ultimate guiding principles and solutions for most challenges 🧠🧠🧠
💰💰💰💲💲💲 Professional, Relevant and State-of-the-Art .NET Enterprise Application 😍😍
Created learning presentations for the Dev and Testing teams, as well as development documentation and guides
Mentor to a student intern (40 hours over 20 weeks)
If the government pay were just a bit higher, I would have stayed much longer 😢
0 sick days
HORIBA - 2bc CAD+Engineering
Corporation (8000 employees)
Working Student
Software Development
ADAS / LIDAR Testing
Great learning experience! ⭐
Agile Practices and Engineering Insights 🚀
💰 Driving Simulation Prototype
Stepped in as Scrum Master in the absence of the main and backup scrum masters
0 sick days
iSyst - Test house for embedded systems
Small Business (100-500 employees)
Final Thesis B.Sc.
Software Development
In cooperation with HORIBA
Evaluation of CARLA for ADAS Simulation
Thank you once more for the awesome guiding and support during my final thesis 😃👌⭐⭐
Great learning experience! ⭐
Agile Practices and Engineering Insights 🚀
💰 Driving Simulation Prototype
Stepped in as Scrum Master in the absence of the main and backup scrum masters
0 sick days
Schwarzlichtfabrik - 3D Minigolf Nuremberg / Wurzburg
Very Small Business (10-20 employees)
Internship / Working Student
Software Development
Many awesome experiences 😊⭐ Even when the team stopped working at 10PM we stayed at the workplace long after midnight many times, just chatting, having a beer, playing VR, etc.
💲💲 Multiple Prototypes on different platforms 🌐🚀
Collaborated on complex challenges in 3D game development for AR/VR with developer colleagues, felt like a "dev-problem-punchball" 🥊😂 and contributed ideas despite my limited understanding during our beneficial problem-solving sessions
10 out of 10 stars ⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
0 sick days
evosoft GmbH - 100% Daughter Siemens AG
Small Business (100-500 employees)
Working Student
IT Support 2nd Level
Good first "professional" experience 💼💪, getting to know JIRA, ticket systems and gaining insights into how IT Support, and thereby IT in general, works in a big corporation
Great colleagues that taught me a lot (1st and 2nd level support team)
💰💰 "Hands-on on all office floors, server rooms and computer storages 😅"
0 sick days
Student Assistant
E-Tutor
Peer Assessment Programming I & II
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.
Semester Tutor
Preparatory Courses Tutor Programming I
Private Teacher
Coding & Math
Private lessons for college students in:
Casual Employment
Physical work like constructions and relocations
Bartender
Hof University of Applied Sciences
Media informatics
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)
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)
Karolinenschule, Ansbach
2nd-4th Grade
Abendrothschule, Cuxhaven
1st-2nd Grade
Web Business Manager
Web Designer Grade I
Web Developer Grade I
Web Developer Grade II
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.
Previous and current achievements
Simplifying and logging 3D print jobs @ Schwarzlichtfabrik.
My Photography on Flickr: Flickr
My current Perspective on Software Development, Design and Code-Bases
As a junior developer with 2 years of full-time experience, I understand the essence of creating high-quality software. Aligning the right technology, elaborated requirements, a passion for coding, a commitment to clean architecture, rigorous testing, thorough review processes, senior leadership, empathy for coworkers, customers and all other stakeholders, teambuilding, along with a solid organizational structure and effective project management, all contribute to a tangible outcome:
Good code is a love letter to the next developer who will maintain it
I thought that after the end of my studies, my head would never smoke again like it did during semester exams.
Boy, was I wrong! 😂😂
Domain Driven Design 🚗 Entity Framework Core 🖼 REST API 😴 HATEOAS 🏃♂️
I left two lectures, besides elective courses, for after my final thesis to solely focus on those readings: Software Architecture and Project Management
Started working full-time in tech as a backend developer
Deepened my insights into professional agile project management
Scheduled my BSc thesis for March 15th, 2020, coinciding with the start of the semester and unexpectedly, the onset of COVID measures in Germany - planned to isolate and focus on my work anyway 😂💪
Finished the IT team project for college, where I was assigned as Scrum Master
Endured some tough lectures, mostly delving into heavy math and advanced computational concepts
Enjoyed some good lectures covering machine learning, UI, theoretical computer science and compiler construction
Fail fast, fail forward. Understand the problem, keep on trying, keep on movin'
Switched from Business Informatics BSc to Media Informatics BSc.
Some good lectures regarding statistics and databases
Established a routine of being the first person in each lecture and the last to leave the room
Hello World Project Bootstrap: Birth of this Portfolio Page 😀⭐😀