
A backend engineer passionate about Linux, open-source software, and scalable systems — sharing how curiosity around Numeric Calculus evolved into a career in software engineering.
My journey into software development started in an unexpected way: struggling with Numeric Calculus.
During university, while studying Physics Engineering at Universidade Federal de Goiás, I was having difficulty fully understanding some numerical methods and algorithms. At some point, I decided to implement those algorithms myself to better understand how they worked in practice.
That decision changed everything.
What started as a learning exercise quickly turned into genuine curiosity about programming, computational modeling, and problem solving. Soon after, I began doing research in Computational Physics alongside a professor, combining physics, mathematics, and software development to simulate and analyze complex systems.
Without realizing it at the time, that was the moment I truly entered the world of programming.
Coming from a physics background gave me a very analytical way of thinking. I became fascinated by the idea that software could model real-world behavior, process large amounts of data, and automate complex tasks.
Motivated by my naturally curious personality, I gradually started researching software development more deeply. Around that time, I also discovered Linux and the open-source ecosystem, which completely changed the way I viewed technology.
Programming and Unix systems quickly became more than just academic interests — they became hobbies. I spent countless hours exploring operating systems, backend technologies, developer tools, and low-level system behavior simply because I genuinely enjoyed learning how things worked internally.
My professional career began from a desire for financial independence. Since I was already deeply invested in programming and had seen significant progress through self-study and personal projects, I decided to try turning my hobby into a profession.
Because this career path started from passion rather than obligation, I dedicated an unusual amount of time to it. There was a period where I spent twelve to fourteen hours a day programming, building projects, studying technologies, and experimenting with new ideas.
Many of those projects never saw the light of day, but every single one taught me something valuable. Looking back, that constant experimentation was one of the main factors that accelerated both my learning and my career growth.
One thing that has always guided me is curiosity.
I genuinely believe that every meaningful skill requires both curiosity and dedication. Progress takes time, repetition, mistakes, and persistence. There are no shortcuts for truly understanding something at a deeper level.
Because of that, my advice to anyone starting in software development is simple: build things.
It doesn’t need to be revolutionary or change the world. Small projects, experiments, unfinished ideas, and even failures are all valuable. Every project teaches something new, whether it’s architecture, debugging, problem solving, or simply learning how to think more clearly.
Learning through trial and error is still one of the most effective ways to grow as a developer.
Modern tools like LLMs are incredibly useful and can significantly accelerate learning and productivity, but relying on them too heavily can also slow down long-term growth if curiosity and independent problem solving are lost along the way.
Technology changes constantly, and that’s one of the reasons I enjoy this field so much. There is always another problem to solve, another system to understand, and another opportunity to improve.
Looking back, it’s funny to think that my entire journey into software started simply because I wanted to understand Numeric Calculus better.
Today, that curiosity has evolved into a career centered around building reliable systems, solving complex problems, and continuously learning along the way.