Coder Social home page Coder Social logo

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.

Brian Ngamsom's Projects

csci926-py2puml icon csci926-py2puml

Generate PlantUML class diagrams to document your Python application.

lesson-2 icon lesson-2

Creating our first component, homepage and adding scss to help us with writing our styles

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.