Sergey Bilovytskyy's Personal Site

Programming #

My first experience with writing any instructions for a computer to interpret was when my father introduced me to HTML5. After playing around with it for a little while, I quickly switched over to Java as a primary language and I also learned a bit of Windows Batch scripting as well. My first project was working on a platform game in Java, where I used the Netbeans IDE and followed a tutorial. During this time period I had also started working on an Astrophysical calculator and a simple 2-d Game engine in Java. I had also worked on a small quiz in Windows Batch for a school project and also tried to mimic 'telnet towel.blinkenlights.nl' in windows Batch with delays - which never ended up panning out but had me learn a lot about the tools in the Windows' command line. I had also tried to program in C++ but never got the environment set up correctly.

2 years later my school had a Unity 3D game development seminar that intrigued me and prompted me to start learning C# programming and setting up a Unity3D environment. While I did make a few things outside of the tutorials, I mostly stuck to the given tutorials and then expanded upon them after I was finished. About a year later, I was beginning to get bored of Minecraft but I was interested in trying to make Minecraft mods - so I set up a modding environment in Eclipse with Minecraft Forge and followed a few tutorials, but since I had no big graphics design experience I didn't take it too far other than learning more about how the Game Engine works and how to interface with it.

My first official program was a small parsing program in Java for the company I started working at which needed to have an interface to abstract the process away while also quickly processing the data. At the same company around 5-6 months later I had also made another parsing program in Python to automatically extract information using Regex from an email and put it in a spreadsheet for engineers to view and manage. While at this time I was primarily developing in a Windows environment, I was also just beginning to learn Linux-primarily focused on Kali Linux with a bit of Ubuntu. Also, at this time I had started programming a bit in NASM assembly and was enjoying it a lot and diving into scripting with Windows PowerShell to automate administration on Windows machines.

In the second semester of my first year of College I took a deep plunge into the world of Linux. My first install was Manjaro but only a few days later I wiped it out in place of Arch Linux since I wanted to do an install on my own. During this I learned a lot about scripting with POSIX shell, bashisms, but ended up using zsh as my default shell. Also, I started developing in C, as well as NASM, and with a bit of Python for prototyping/ plotting with matplotlib. Now, I primarily develop in Assembly(gas and NASM), for x86 and ARM architectures, and C(gcc). I have programmed a bit in Rust but I found that it is not as portable to embedded environments and not as suited for low level development that I am used to. I have exposure to Hardware Descriptor languages, Verilog and VHDL, but do not have as much practice on them as I do in Assembly and C. (I worked on a DE10-Lite Nano).

Hardware #

While I do not have as much experience with hardware as software, I have enjoyed it just as much. As mentioned before, I have experience with the DE10-Lite Nano FPGA. As a child, I loved tearing apart computers and other electronics, either to get batteries or to see how the devices work under the hood. The other microcontrollers/computers I have experience with are Arduino Unos and Raspberry Pi 2, 3B, 4. Lately, I have been working with a Zilog Z80 to try and make a simple computer. I primarily focus on embedded/ bare-metal environments - that is where I have the most fun and learn the most.

Mathematics #

My deep love for wanting to figure out how things work on a deeper level has given me a deep love for both Theology and Mathematics. Before my second year of College, my view of Mathematics was just as a tool to use to solve equations-which in turn explain how the world works to some level. Starting in my second year of College, my view of Mathematics changed radically and immediately made my favorite subject Mathematics. During this time, I had been writing out all of the classes I would need to take through my senior year, and I found that I was further on a Mathematics degree than my Physics degree. Additionally, I found that I had just enough room to squeeze a Mathematics second major along side of my Physics major, which is why I am now a Mathematics-Physics dual major. Anyway, what prompted this radical change was that I was finally exposed the writing proofs and learning the fundamentals of Mathematical Logic - I was hooked! While I would not recommend most people to go to University, I think my mathematical education in college, along side some cool Physical principles and formulations, has made my college education worth it in my case.

Physics #

From my passion to learn about the fundamental principles behind everything that I can, I sought out to study Physics. There was only one physics class taught in my High School and so I took that in my senior year--the earliest I could. I learned the basic principles, but I only really started learning Physics in college. Starting out my College physics classes I learned about basic Newtonian dynamics, electrostatics, basic thermodynamics, optics, and modern physics. At this time I learned lots of the formulas and a bit on how to think like a Physicist--something that I had already started acquiring in my self-taught programming journey. Recently, I have learned the Lagrangian formulation of mechanics, something I hadn't known or had been exposed to prior to the course, the basics of Electrodynamics with Differential Equations, Mathematical Physics, as well as a deep dive into the Theory of Quantum Mechanics-3D, Variational Principle, Time-independent Perturbations, etc. Most of what I have learned after the basic Physics classes has been very interesting and worthwhile to learn. I especially enjoy my Quantum Mechanics classes since I get to use my linear algebra knowledge of vector spaces and commutators-Linear Algebra and Mathematical Logic have to be my favorite mathematical subjects followed by Real and Complex Analysis.