Skip to content
View devnulli's full-sized avatar
💭
I may be slow to respond.
💭
I may be slow to respond.

Block or report devnulli

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
devnulli/README.md

Hi there, I'm devnulli 👋.

devnullis github stats

What I do.

Sometimes, I like to code things, apart from work. I like coding them, sometimes even live, while playing groovy music. It relaxes me.

Formerly, I never did that. I had the full software engineering show at work, and I didn't have the feeling that I miss out any new technologies and such.

Now, working with legacy systems, I mainly code things to keep in touch with the real world. (Docker Containers, Azure, SOLID, service architecture, keeping up to with VS, new design paradigms, new requirement engineering paradigms, CI, etc.)

I almost never complete them, or have professional need for them, though. I mostly push it far enough to see if I understand, and then I move on.

About my job

I always LIVED for software architecture and software engineering. I've seen what great software architecture and requirements engineering are capable of, and would never want to be without that. As a result of that, I HATE legacy software. I hate bad software design. That I really do.

So, ironically, where I work right now can be defined as deep, deep in that legacy code world. I work as a development lead and software architect for a company with a huge legacy problem, and my whole work is dedicated to pointing out a way, and then transitioning from that legacy back to maintanability.

My job is done when we have catched up with industry standard and state of the art. And that is a very exhausting, but rewarding task. Rewarding, because I learn a LOT about the essence of "how you do it right", by looking at what happened when you didn't.

How did I get that job? - Why didn't I just quit and work in a modern software house?

When I entered my current job, I was 😮 SHOCKED! 😮 When I saw the first code lines, my first instinct was (literally) to stand up, and quit right away. I would never accept working in that environment. With that multi million € piece of worthless crap, sold as a success to the stakeholders...

Next thing I remember, I had a talk with my boss, and what can I say. He said something in the effect of. "Well? How do you like it here?". And I think I said something like "I have never seen anything that bad before, in 13 years of my software-engineering career"... and he kept on: "Yeh well, I heard it's not that good..." he said, pretty pragmatic about it. "Yes, we need to tackle that.". Ok, I said. I want to help.

Inner Monologue

(:brain: "Wait.. You wanted to quit, and now.. are you crazy? They have been working that way for years, decades.. and you go there and tell them it sucks, and you can do better... don't you think your're out of your league. You should have just gone to a NORMAL software-company, with state-of-the-art standards..")

(:heart: "Sorry but I cant resist watching that story to the end.."")

Challenge accepted

It took me a while to realize what just happened. My opinion about that source code is somewhere between "time to put it to sleep" and "burn it with fire"... All the waste of manpower and effort, just to keep that crazy machinery running? Why should I stay and and fight to save that?

I can gain a lot by seeing this through, tell you why.

Of course, I could just shake my head and move on to something else. I could do that. I already done that. But In THAT case, I would really miss a huge story.

Everyone can produce good and clean code in a good and clean environment. We learn that fast.

But.. somewhere in my belly I felt, that they are serious. They really search for a way out. So if I take the easy way out, I miss the crazy way out. And a lot of learnings:

  • What excactly does that really mean, having a good and clean enviroment?
  • The best way to learn that is to try and create one myself.
  • With people who never had that.
  • And of course, not from scratch, but from hell.
  • How do you set up, how do you start
  • How do you embrace existing complexity, how do you re-engineer, do the brown field architecture?
  • How do you create a mindset that allows for the above, from below (developers) and above (management awareness)

So I chose the first option.. And I learned to love my job. (DISCLAIMER: this is diverse). Not for the coding (not yet). It's god damn legacy hell.. dont get me started.

BUT:

I LOVE that In my current job, have a huge chance to try and move something big from full legacy to state of the art, and write down my experiences and stories I encounter on that road. A chance, I will never get again in my life. So. I stayed.

NOW LET'S SEE

There will be a lot to learn on this journey. I think someday I'll write a book about that. Its gonna be a thriller. Our hero wakes up after a party night, with a new job. To work as software architect in legacy hell:

  • Will he succeed? Or will it break hi,?
  • Will he be strong enough to battle that legacy pain creeping in my mind? Or will it zombify me, make me a legacy programmer as well.
  • Will he become slave to those processes and submit to empty and inefficient workflows=
  • Will he be successful in delivering an first an Island of happiness, and then, away out, maybe even a Business Layer, maybe even DDD?
  • Will they even listen?
  • Will that legacy system change him? Break him? Or will he manage to turn around the wheel?
  • Will he finally be crucified by those developes and consultants who fear or fail to understand these concepts? Who now live pretty good of the cost, surreality, and inefficience, and damage they caused? Or worse? Make HE become one of them?

Yeeees! that book will rock!

Popular repositories Loading

  1. EvlWatcher EvlWatcher Public

    a "fail2ban" style modular log file analyzer for windows

    C# 434 54

  2. TelegramBotApi.NET TelegramBotApi.NET Public archive

    a .NET Core 3.1 implementation for the Telegram Bot API

    C# 2 1

  3. devnulli devnulli Public

    devnullis public profile

  4. localapp localapp Public

    launching local things out of the browser sandbox, in an easy yet safe and configurable way