Wooyoung Son, Developer in Lynnwood, WA, United States
Wooyoung is available for hire
Hire Wooyoung

Wooyoung Son

Verified Expert  in Engineering

Software Developer

Location
Lynnwood, WA, United States
Toptal Member Since
October 20, 2022

Wooyoung is highly self-motivated about anything related to computers, including software engineering, networking, system administration, data analysis, and visualization. He is very excited to work with different companies and clients and learn new technologies. Anything involving computers is always inspiring to Wooyoung.

Portfolio

Tech4x
AWS IAM, AWS Lambda, Amazon S3 (AWS S3), Node.js, TypeScript, React, Supabase...
Tiers
Java, Spring Boot, Hibernate, JPA, Domain-driven Design (DDD)...
TriggerReactor Team
Java, Compilers, Compiler Design, APIs, API Integration, Open Source...

Experience

Availability

Part-time

Preferred Environment

Linux, Visual Studio Code (VS Code), IntelliJ IDEA, Docker

The most amazing...

...thing I've built and been maintaining is a fully functional code interpreter that works with the custom programming language that I created.

Work Experience

Senior Full-stack Developer

2023 - PRESENT
Tech4x
  • Integrated an OpenAI model into the back-end process using Node.js, deployed it on AWS Lambda, and linked it with S3 for file input and output, all while ensuring code adaptability through the dependency inversion principle.
  • Established distinct IAM roles for each S3 bucket to prevent accidental infinite loops when setting up signed URLs for secure file uploads.
  • Configured the AWS Lambda function to trigger upon S3 bucket upload events and established the necessary IAM roles with least-privilege permissions for downloading files from the output buckets.
  • Enhanced the existing React front end by implementing Redux state management, allowing for the clean separation of the global state across multiple pages that needed to propagate state to child components.
  • Incorporated new components, pages, and features per the client's requests, all while upholding excellent code quality by segregating logic out of the UI using the React hook pattern.
Technologies: AWS IAM, AWS Lambda, Amazon S3 (AWS S3), Node.js, TypeScript, React, Supabase, Mantine, Redux, OpenAI GPT-3 API, OpenAI GPT-4 API, Linux, Front-end, REST, Amazon EC2, ChatGPT, Proof of Concept (POC)

Senior Back-end Engineer

2022 - PRESENT
Tiers
  • Employed a domain model and a use case diagram to examine the domain and use cases thoroughly, identifying pertinent entities and use cases crucial for fostering micro-service architecture, as per the CEO's request.
  • Implemented a resilient back-end service using Spring Boot, as per stakeholders' request, and seamlessly integrated it with Auth0 for authentication.
  • Leveraged SOLID principles and Clean Architecture extensively to foster domain-driven development, enabling seamless integration of business logic with diverse third-party services without affecting our service's implementation.
  • Documented the codebase thoroughly while providing detailed instructions in Confluence, to enhance comprehension of the architecture and facilitate a smooth onboarding for future coworkers and maintainers of the system.
  • Configured and deployed the implemented service to AWS using Elastic Container Service, which included VPC configuration and IAM role/identity center setup.
Technologies: Java, Spring Boot, Hibernate, JPA, Domain-driven Design (DDD), Clean Architecture, SOLID Principles, Docker, Docker Compose, Spring, PostgreSQL, AWS IAM, Amazon Web Services (AWS), Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Container Registry (ECR), Linux, REST, Amazon EC2, Proof of Concept (POC)

Lead Software Engineer

2016 - PRESENT
TriggerReactor Team
  • Innovated by developing three experimental projects as prototypes that utilized different compiler theories and structures to establish the ultimate project structure, which led to our successful implementation.
  • Managed the project by initiating the set up of the Kanban board provided in the GitHub repository, allowing me to track every issue and efficiently divide the work among willing volunteers.
  • Managed and distributed releases to the community website, ensuring that the latest updates for TriggerReactor were available and accessible to the community through our pages.
  • Ran and offered support to end-users through the Discord channel with 600 members by answering inquiries, introducing new features, and adding any reported bugs to the Kanban board.
  • Configured the Github Action to automate the build pipeline so that the coverage tests would automatically run for new pull requests. The binary files would be built and uploaded to the release page, and the Javadocs to the GitHub Page.
Technologies: Java, Compilers, Compiler Design, APIs, API Integration, Open Source, Asynchronous I/O

Senior Full-stack Developer

2023 - 2023
JAM Fintop Capital
  • Engaged in discussions with the client to gather requirements, delivered new features and bug fixes outlined in the requirements, and provided clear demonstrations of the results.
  • Articulated and visually presented potential choices when confronted with ambiguous situations, ensuring clarity for a non-technical audience, the client.
  • Resolved an unforeseen bug in the document viewer that was affecting the client's ability to interact with specific elements on the website, even though it was not initially part of the requirements.
Technologies: Wagtail CMS, Django, Python, PostgreSQL, JavaScript, HTML, Bootstrap, CSS, Linux, Docker, Front-end, REST

Unity Developer

2023 - 2023
APAC, I.A.P. Asociación Pro Personas con Parálisis Cerebral
  • Took ownership of a game scene, implemented its core gameplay features, and ensured the scene included all necessary gameplay elements.
  • Collaborated with a fellow developer to discuss the game's overall system and flow and closely aligned with their code style to boost efficiency.
  • Maintained modularity and organization for all game objects and scripts, facilitating adaptability to changing requirements throughout the development process.
  • Developed a comprehensive UI system with built-in language translation support that can be effortlessly reused across all game scenes.
Technologies: Unity, Proof of Concept (POC)

React Developer

2023 - 2023
RightCompany
  • Converted a native JavaScript, CSS, and HTML website into React and incorporated essential new components to enhance efficiency.
  • Set up Webpack and Babel to transpile the website for compatibility with IE 11 and resolved all pertinent issues.
  • Maintained regular communication and utilized git rebase to facilitate a seamless merging process for the current team members.
  • Created custom polyfills for node modules that didn't function properly with transpilation.
Technologies: React, JavaScript, HTML, CSS, Internet Explorer, Webpack, Babel, Front-end, REST, Proof of Concept (POC)

Lead Software Engineer

2021 - 2022
Near Vision Institute
  • Facilitated requirement elicitation and populated the backlog inventory by working closely with the optometrist from our research group through constant collaboration and communication.
  • Revamped the legacy codes to employ the DI and OOP patterns for better maintainability while creating relevant artifacts such as UML diagrams and detailed documentation to assist future maintainers.
  • Contributed to weekly whole team meetings by recording new requirements and updates, breaking down the requirements into smaller tasks, and updating the Trello board accordingly to ensure the team was aware of any changes or updates.
  • Established the GitHub Action to automate the build pipeline, enabling coverage tests to run automatically for new Pull Requests and ensuring that the binary files were built and uploaded to the institution's private Google Drive.
  • Conducted interviews with previous developers, stakeholders, and end-users, producing a domain diagram and dictionary to understand the domain better and clarify any ambiguous jargon.
  • Mentored junior developers to help them quickly adapt and understand the project by developing detailed tutorials and providing one-on-one tutoring to each of them.
  • Gained administrative access from the project owner and managed the IAM roles appropriately, allowing only the minimum permissions required to accomplish the assigned tasks.
Technologies: Git, Project Management, Agile, Software Architecture, Architecture, Amazon Web Services (AWS), Documentation, Cloud, Requirements Analysis, Technical Project Management, Leadership, Object-oriented Programming (OOP), Identity & Access Management (IAM), C#.NET, .NET, SQL, Asynchronous I/O, OpenAI GPT-3 API, REST

Software Engineer

2020 - 2021
Near Vision Institute
  • Executed the implementation of a distance estimation algorithm that gauges the distance between the user's face and the smartphone, utilizing the frontal camera of the smartphone and resulting in an error margin of roughly around +-3cm.
  • Employed the Inversion of Control pattern to modularize the estimation system, making it simple to add or remove from the application.
  • Developed an implementation of the estimation algorithm that operated asynchronously, utilizing coroutines to process real-time images without blocking the main thread.
  • Took part in the SNOW (School Nurse Organization of Washington) Conference alongside the optometrist from NVI and exhibited the estimation algorithm to the school nurses.
  • Developed the communication logic between the application and back-end using the HttpRequest of .Net Framework and utilized coroutine to ensure that the I/O operation did not block the main thread.
  • Made extensive use of Git branches to separate each feature into its branch and created descriptive commits by concentrating on the parts and grouping only relevant chunks of changes together.
Technologies: C++, C, C#, Unity, Git, Machine Learning, Android, OpenCV, APIs, REST APIs, API Integration, Multithreading, Coroutines, C#.NET, .NET, Asynchronous I/O, REST, Proof of Concept (POC)

Software Engineer

2012 - 2018
Self-Employed
  • Teamed up with the moderators of the game server to collect new requirements and identify system failures within a real-time online game environment.
  • Developed various plugins as needed, written in Java, to improve the user experience, detect cheating, maintain reliability, and add new game rules.
  • Implemented careful design of I/O operations to be run in separate threads to avoid blocking the main thread and ensure a better user experience.
  • Configured various network-related settings, including port forwarding, firewall rules, and internal traffic redirection, to efficiently handle real-time traffic from or to the user.
  • Monitored the memory allocation and thread usage using VisualVM and fine-tuned JVM parameters to efficiently handle the high number of short-term instances. This helped to minimize the impact of the garbage collection process on the user experience.
  • Scheduled the cron job to create daily, weekly, and monthly backups using Rsync.
Technologies: Java, JVM, Linux, Windows Server, Multithreading, Databases, Scripting, Networking, Relational Databases, Back-end, API Integration, System Administration

Vision Screening Application

http://courses.washington.edu/css497/wooyoung_son.jpg
I had an exciting opportunity to work on a project that involved re-engineering a mobile application prototype. The goal of the application was to detect and screen vision problems in children and refer them to optometrists for further testing and treatment. I proactively analyzed the current system and gathered functional requirements, using various UML diagrams to redesign the architecture and refactor the codebase. I employed the Inversion of Control and Single Responsibility principles to decouple a lot of the code, making the application maintainable and production-ready.

Working with the back-end team, I implemented a data uploading feature to an AWS server for real-time data collection. This data could be used by researchers to improve vision screening practices. I also added a distance estimation feature using a machine learning algorithm to provide appropriate feedback to the user, advising them to maintain a proper distance from the mobile phone to optimize vision screening.

To ensure security and data protection compliance, I configured AWS Cognito User Pool for user authentication and wrote a Node.js module to verify access tokens and restrict access to protected resources.

In-game Script Interpreter

https://github.com/TriggerReactor/TriggerReactor
I created a plugin that enables script writing without server restarts, which increases server reliability by supporting hot replacement and allows for the implementation of simple functionalities without the need for writing Java code.

As an administrator, I know firsthand that writing Java code can be challenging, and writing simple scripts in the custom programming language I created can be much more productive. Additionally, this plugin's language is not dependent on strong typing like Java, making it easier to integrate multiple plugins. With this plugin, I was able to reach production much faster and provide a more efficient workflow.

Inventory Tracking System

https://github.com/wysohn/CSS343-Assignment4
During a school project, my team and I developed an inventory tracking system. The system allowed users to read information from plain text files, including media stock information, user information, and miscellaneous information.

My role in the project was to create a hashtable that allowed for constant time access to each inventory item, and I also conducted unit tests to ensure the quality of the software. The project was a great opportunity to work collaboratively and learn about the importance of testing and efficient data structures. Overall, I enjoyed working on the project and was proud of the final result.

Hellscape Inc.

https://paulwhite93.github.io/HellScapeINC/
As part of a school team project, we developed a 2.5D exploration game with horror elements where the player character needs to find a way to escape while a monster is chasing them.

As one of the team members, my main responsibility was to organize the code produced by my teammates and encourage them to produce modular code for easier integration in later stages of development. I spent a lot of time refactoring the code while ensuring that all the functionalities were maintained.

Additionally, I implemented a general-purpose Finite State Machine that drove the monster's behavior in real-time, making the gameplay more exciting. I also developed the user interface elements for the game, which showed the current progress of the user's objective. Overall, my contributions helped to improve the game's functionality and user experience.

Advertisement Writing AI

https://www.kaggle.com/code/wysohn2/mxnet-title-to-content-gen
I developed a prototype software that aims to help marketers quickly write blog articles that are likely to receive more exposure. The process involved web scraping using Python's BeautifulSoup4 and requests library, with data stored in SQLite.

The data was then queried, pre-processed using Open-refine software, and fed into a pre-trained GPT-2 model that was fine-tuned for five epochs on the entire dataset. The resulting output was evaluated and deemed convincing by a human evaluator.

Brain Hemorrhage Detection

I collaborated with a professor and her research team to develop a machine-learning model that could detect brain hemorrhages from ultrasound images. We analyzed the ultrasound image by dividing it into 12 sectors and combining them using various methods like sum, average, and median. We then analyzed them using Principal Component Analysis.

As an additional experiment, I was assigned to retrain the model developed by a previous graduate student to see if it would perform better at different time frames of the ultrasound image.

Our aim was to improve the model's accuracy in detecting hemorrhages by identifying the specific time frame within which the ultrasound image showed the best sign of hemorrhage. We tested the model's performance on different time frames. We found that the accuracy was better in the specific frame used than in its neighboring frames, indicating that the experiment was successful in improving the model's accuracy.

Keyword Search Helper

I developed a web-based platform to assist marketers in finding popular items for sale. The platform uses metrics such as Google Trends and the number of items available on online shopping sites to provide users with valuable insights.

I built the platform using React/Next.js for the front-end, Django/DRF for the back-end, and Maria DB for the database. Additionally, I created several Python scripts to scrape websites and process data in the database.

To ensure easy deployment to cloud environments, I designed the entire system using Docker. With this set up, if the software proves profitable, it can be easily transferred to cloud environments.

Dockerized Text Classification Algorithm

https://github.com/wysohn/rt_text_class_base_gpt2_hf
I was tasked with implementing a deep learning algorithm for text classification for a startup's machine learning platform. I chose to use GPT2 since it was a state-of-the-art algorithm with fewer parameters, making it suitable for the client's needs.

Using a smaller model also helped speed up the development process, and I ensured the code was cleanly written to work with the provided specifications. The client was pleased with my expertise and knowledge in AI/ML tools, as well as my clear communication and timely delivery. Overall, I received high praise for my work on this project.

"Wooyoung is a great AI/ML engineer. He delivered a GPT2-based text classification to us as per our specifications. He is very knowledgeable [and] skilled in AI/ML tools. He communicates clearly and delivers on time. Highly recommend working with him!"

Instagram Automation Bot

https://github.com/wysohn/InstaBot
I developed a Node.js software application that leverages the Puppeteer library to automate feed searching and execute various configured tasks. The application uses a state machine agent that continuously transitions between states depending on the browser context and adapts to unexpected variables.

I opted for a state machine design due to the chaotic nature of internet communication and unstable network connections that make it necessary to discretize variables into finite states to better handle such variability.

This approach also makes it easier to maintain the existing codebase and add new features. Overall, I am proud of the state machine-based design of this project, as it has allowed me to create a robust and adaptable software application.

Inventory System for In-game Use

I developed an inventory system for games using Unreal Engine. I utilized C++ to implement the inventory logic, including adding, removing, and querying items, as well as locating empty spaces. Additionally, I made the inventory abstract to accommodate a specialized form of inventory UI, ensuring that user interaction with the inventory would be less impacted by UI changes. The blueprint script was utilized to perform the remaining steps, which natively accessed the C++ code through Unreal Engine's serialization support. With this approach, I efficiently developed a stable inventory system for the game that is unlikely to undergo core logic changes.

Languages

Python, Java, JavaScript, TypeScript, Python 3, C, C++, C#, SQL, C#.NET, Markdown, Octave, R, HTML, CSS

Libraries/APIs

React, Node.js, Dlib, REST APIs, GSON, Beautiful Soup, NumPy, Pandas, OpenCV, Python API, Asyncio, Scikit-learn, OpenID, Puppeteer

Tools

Git, GitHub, Gradle, NGINX, MATLAB, Docker Compose, Webpack, Babel, AWS IAM, Amazon Elastic Container Service (Amazon ECS), Amazon Elastic Container Registry (ECR)

Paradigms

Object-oriented Programming (OOP), REST, Continuous Delivery (CD), Continuous Integration (CI), Requirements Analysis, ETL, Management, Linear Programming, Agile, Microservices, Compiler Design, Data Science, DevOps, Clean Architecture

Platforms

AWS Lambda, Amazon EC2, Linux, Docker, Android, JVM, Amazon Web Services (AWS), Windows Server, Google Cloud Engine, Google Cloud Platform (GCP), Google App Engine, Kubernetes, Internet Explorer

Other

Data Structures, Algorithms, APIs, Web Scraping, Back-end, Multithreading, Scraping, API Integration, OpenAI GPT-3 API, OpenAI GPT-4 API, Front-end, ChatGPT, Proof of Concept (POC), Software Engineering, Software Analysis, Software Design, Operating Systems, Machine Learning, Deep Learning, Principal Component Analysis (PCA), Plugins, Natural Language Processing (NLP), Data Processing, Full-stack, Software Architecture, Architecture, Scripting, SSL, Networking, Documentation, Cloud, Data Scraping, Store Scraping, Technical Project Management, API Documentation, Open Source, CI/CD Pipelines, System Administration, Artificial Intelligence (AI), Text Classification, GPT, Generative Pre-trained Transformers (GPT), Asynchronous I/O, Neural Networks, Bots, Computer Vision, Game Development, Calculus, Multivariate Calculus, Differential Equations, Linear Algebra, Probability Theory, Statistics, Discrete Mathematics, Analysis, Numerical Analysis, Bayesian Statistics, Microeconomics, Leadership, Compilers, Identity & Access Management (IAM), Coroutines, Cloud Computing, CSV, Site Reliability Engineering (SRE), Amazon Cognito User Pools, OAuth, Data Analysis, Front-end Development, Unreal Engine 5, Blueprints Visual Scripting, Technical Writing, Domain-driven Design (DDD), SOLID Principles, Wagtail CMS, Supabase, Mantine

Frameworks

Unity, Django, Spring, JUnit, Mockito, Next.js, Bootstrap, Spring Boot, OAuth 2, .NET, Material UI, Hibernate, MXNet, Web Frameworks, Flask, Unreal Engine, JPA, Redux

Storage

MySQL, JSON, MariaDB, Databases, Relational Databases, PostgreSQL, Amazon S3 (AWS S3)

Industry Expertise

Project Management

2018 - 2022

Bachelor's Degree in Mathematics

University of Washington - Bothell, WA, USA

2018 - 2022

Bachelor's Degree in Computer Science

University of Washington - Bothell, WA, USA

NOVEMBER 2022 - PRESENT

Developing a Google SRE Culture

Coursera

NOVEMBER 2022 - PRESENT

Google Cloud Fundamentals: Core Infrastructure

Coursera

JUNE 2020 - PRESENT

Bayesian Statistics | Techniques and Models (with Honors)

Coursera

APRIL 2020 - PRESENT

Strategic Business Management | Microeconomics

Coursera

SEPTEMBER 2019 - PRESENT

Mathematics for Machine Learning | PCA

Coursera

SEPTEMBER 2019 - PRESENT

Mathematics for Machine Learning Specialization

Coursera

SEPTEMBER 2019 - PRESENT

Bayesian Statistics | From Concept to Data Analysis (with Honors)

Coursera

JULY 2019 - PRESENT

Mathematics for Machine Learning | Multivariate Calculus

Coursera

MAY 2019 - PRESENT

Machine Learning | Linear Algebra

Coursera

JULY 2018 - PRESENT

Neural Networks and Deep Learning

Coursera

MAY 2018 - PRESENT

Machine Learning

Coursera

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring