Detailed - About Me
Steve Biedermann February 05, 2023Who Am I?
Career
I'm a self-taught software engineer who started programming when I was 15 years old. First I was just playing around with QBasic and then I moved on to VBA in Microsoft Excel and to VB.NET after that. Sadly my first job had nothing to do with programming. I was doing an apprenticeship as a plastics technician.
During my training I still kept learning VB.NET in my free time, but my first chance at a programming job I got years later. I was an intern in a company and overheard them talk about a buggy VBA script they had. I offered my help and managed to fix the bug.
A few days after the company offered me a job, because they needed a VBA programmer for an upcoming project. Using VBA wasn't my dream but it still was a chance that I couldn't afford to miss. Finally a programming job on my cv.
The job was implementing CAD-stuff in VBA, but I could use my VB.NET knowledge as well. I even got the chance to start learning C#. Sadly the company culture was really draining, ending in me having a mental breakdown, which caused me to leave the company.
A few months later, I got scouted for a Delphi job, building customer software for ISPs. I stayed at this company for 7 years, working on everything from desktop software, to architecture, to software interfaces and much more. I also found my love for programming languages and custom tools.
While I worked there I learned D, C++, Go, TypeScript, Rust and a few more. I wrote multiple tools in all of these languages. Logging tools, http api mocks, build automation, simple parsers and more.
After 7 years the company got bought, which resulted in a shift in development I wasn't happy about. After a few colleagues and even our CEO quit, I decided to do the same.
Now I'm working at a company in the solar sector that uses C++ as it's main language.
My Love for Languages
All those languages I mentioned are just the main ones I used for most of my implementations, but I learned many more. In total I learned more than 25 programming languages up to the point, where could do minor projects in them. I did this to broaden my horizon and to see how other languages tackle problems, in order to apply some of those techniques where I saw fit.
I rewrote a central piece of delphi in a part of our product in functional style, which removed a few houndred lines of unnecessary boilerplate and made reasoning about the code and finding bugs a lot easier.
From all the languages I've learned, Rust is currently my favorite, because it let's me focus on what I want to do, instead of focusing about all the accidental complexity that comes with using other languages.
Here are some of my favorite features from all the languages I learned:
| Feature | Language |
|---|---|
| First Class Functions | Most Modern Languages |
| First Class Modules | OCaml |
| Pattern Matching | Rust |
| Iterators | Rust |
| Image Based Development | Lisp, Smalltalk |
| Repl Based Development, Live Coding | Lisp |
| Macros | Lisp |
| Meta Object Protocol | Lisp |
| Homoiconicity | Lisp, Red |
| Dependent Types | Idris |
| Refinement Types | Ada |
| Contract Driven Development | Ada |
| Actors | Erlang, Pony |
| Term Rewriting | TXL |
| System Modeling | TLA+, PlusCal, P |
Other Hobbies
When I'm not programming I'm spending my time with gaming, reading or DMing for my D&D group.