Skip to content
View ngamsomset's full-sized avatar

Highlights

  • Pro

Block or report ngamsomset

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
ngamsomset/README.md

Hi there👋 My name is Brian, and below is a short description of me.

My background

I have a background in aircraft engineering, particularly - aircraft maintenance. I worked as a certified aircraft mechanic for two years before I switched my career to software development. Engineering has been my domain since I was young, I love to disassemble things to see how it works. Obviously, sometimes you can't actually put it back together. But that's part of the learning process. One thing in common between aircraft engineering and software engineering is they require logical thinking throughout. You need to know exactly what is going on before you make a decision. This requires a solid understanding of the underlying logic of the system that you are working on. But one thing that I think makes software engineering stand out is that it's malleable. Regardless of ideas that's on your mind, you can turn it into reality. This is the part where I think software makes me fall in love with it.

Education

I have a Master's degree in computer science with a major in software engineering and machine learning. If you are curious why I did two majors? My answer is very simple, curiosity. Before I start my master's degree I know that software engineering is what I wanted but at the time, machine learning skyrocketed with the introduction of ChatGPT. I want to know what that is all about so I thought to myself that I should dig deep into the topic. My software engineering major focuses on microservices, software testing and design patterns. They guided you through how things work not how to use it. This might sound in contrast to what it is supposed to be but in reality, knowing how something works systematically and conceptually helps me understand when I need to implement them. Another key lesson that I learned is how important is the planning part. There are countless components that need to be taken into consideration in building a piece of software. All of them are connected to each other in some way. For instance, why do microservices work the way they are? How to think of service-oriented computing in the first place? How important is software testing? And what will happen if you don't implement them? I love one quote from one of my professors when I asked him about software testing, I asked: "If I build a small application, is all testing necessary?" he replied "Testing is mandatory for every piece of software, not optional." throughout the subject, he demonstrated how important for software to have testing implemented before we even start to write an actual code.

On the other hand, machine learning subjects teach me many things from the mathematical concept behind them and the implementation of the program in specific areas. The interesting part is what makes a good machine-learning model. This is the question that needed to be answered along the way while I was on the journey. However, the answer is not that straightforward and requires a lot of particular domain knowledge. In some topics, the machine learning model still be a black box and requires further research. The good part about machine learning is that there are many areas that need to be explored. Some of the areas of machine learning that have proven to be working benefit our daily lives, such as computer vision. One of the areas of machine learning utilises cameras to detect and analyze objects from street sign detection, speed cameras and object recognition. Machine learning allows me to be exposed to various tools and frameworks that are used in the market such as Pythorch and Scikit-learn.

Experience

I have two years of full time work experience with one of the agencies here in Sydney. This was before I decided to take my master's degree course. I was responsible for all the front-end web applications using React. There is an overlapping area where I also need to work on the backend part using PHP and Laravel. Since we had a small team at that time, cross-area work was inevitable. I have worked on various projects in two years from greenfield projects to legacy projects. Apart from React, I also have a chance to work with WordPress building small content-based applications. Most of the applications that we build in that timeframe will have a tech stack as follows, the frontend part always be React and Next.js(at that time, Next.js is still in an early stage). The backend implemented PHP and Laravel and the deployment of choice is AWS. It was quite an industry standard at that time for the tech stack. I learned a lot from many engineers in the team and I also had a chance to expose the area that I'm interested in which is the backend development. I also have .NET C# experience from freelancing projects.

Who am I as an engineer?

I think it's important you know who I am as a software engineer or developer. I have an engineering mindset when thinking about building something. This means, a lot of planning and discussion with teammates. When it comes to software, it must be maintainable, scalable and robust. Every single piece of software must be thoughtfully built, time is critical but not as much as how software will last for years to come. There is no point in building a quick production software without a proper structure and the right mindset, because, at the end of the day, time spent rebuilding those codes will take much longer time than carefully building one in the first place. If you are looking for someone who can smash things as quickly as possible without thinking throughout, I might not be the one that you are looking for. Because I'm a big believer that the quickest way to build any piece of software is to thoughtfully build in the first place. This includes but not limited to how the software will be design, what design patterns the project will utilize, how we will write the testing, what is the CI/CD pipeline will look like or how we will deploy applications so that it will be scalable in the future and have the best cost efficient.

Popular repositories Loading

  1. nodejs-max-p nodejs-max-p Public

    JavaScript 1

  2. hello-world hello-world Public

    how to repository

  3. thisisajax thisisajax Public

    ajax

    HTML

  4. mydesignweb mydesignweb Public

    mydesignwebsite

    HTML

  5. booklist booklist Public

    booklist

    JavaScript

  6. pdfreader pdfreader Public

    pdfreader

    JavaScript