I graduated from Queen's University in Kingston, Ontario, with a Bachelor of Computing (Honours), specializing in Software Design. Now I am eager to apply what I have learned both in school and in my work to a challenging, dynamic, and teamwork-oriented role.
Currently, I am working as a Data Engineer at Jarvis Consulting Group. I am expanding my skill set at Jarvis by exercising agile development methods and periodically learning new technology. More specifically, I have been working with my team in an Agile/Scrum development cycle and have developed applications with Linux, PostgreSQL, and Java. I have a passion for writing clean, efficient, and high-quality code, and I hope that my work at Jarvis shows that.
What excites me about software development is the limitless potential. I can create anything I want or can think of–from trivial applications like a music downloader to a large-scale, graphical operating system with millions of lines of code like Windows. I can turn any small idea I have into potentially the next Twitter, Facebook, or YouTube; the only thing limiting me as a software developer is my creativity and drive.
I sincerely hope that the skills, passion, and work shown here make you want to learn more about me. If so, I look forward to speaking with you.
Proficient: Java, Linux/Bash, RDBMS/SQL, Agile/Scrum methodology, Git, Data Structures, Algorithms
Competent: Python, Docker, Maven, Google Cloud Platform, Windows/Powershell, Waterfall methodology
Familiar: C, C#, C++, HTML, PHP, CSS, Javascript, Node.js, Vue.js, UML, Artificial Intelligence
Project source code: https://github.com/jarviscanada/jarvis_data_eng_JohnnyLeung
Linux Cluster Resource Monitoring App [GitHub]: Developed a Linux Cluster Monitoring Agent (LCMA) that is used to record hardware specifications and resource usage (e.g. CPU/Memory) in real-time. The Jarvis Linux Cluster Administration uses it for a Linux cluster of nodes/servers running CentOS 7. Crontab triggers are used to collect data from the host machine every minute, which is then stored in a Relational Database Management System database using PostgreSQL (PSQL). Bash scripts are used to create, stop, and start the PSQL Docker instance for data collection. SQL queries are used to analyze and present the collected data; they can find the average memory a node uses over a time interval and detect server failures.
Core Java Apps [GitHub]:
- Grep App: Developed an application to replicate the Linux grep command, which recursively searches for a specified text pattern in files in a given directory and outputs matched lines to a file. The IntelliJ IDE was used with JUnit testing, and methods were written using the Java 8 Lambda Stream API. Maven was used for packaging the application into a JAR file. A Docker image of the application was made and is available on Docker Hub.
- JDBC App: Developed a customer-order-processing system programmed in Java 8 and using the Data Access Object (DAO) pattern. It is connected to a PostgreSQL (PSQL) database that runs inside a Docker container. Java Database Connectivity (JDBC) is used to connect the application with the database. JDBC is also used to allow the user to run queries and perform all 4 CRUD (create, read, update, and delete) operations on the database. The database contains basic sales information, which includes customers, orders, salespeople, and products. PSQL was used to create, populate, and query the database; Maven to compile and build the project and manage its build dependencies; a Docker container for deploying the database; and DBeaver for database testing and verification.
Conway's Game of Life [GitHub]: Developed an artificial intelligence project that simulated constantly-evolving artificial life, with a live graphical display. Written in Python.
Connect Four with Reinforcement Learning [GitHub]: Training a reinforcement learning agent to play a game of Connect 4, with a visual simulation. The agent utilizes the deep Q-learning algorithm to learn after every game against either a human or another agent. Written in Python.
Learning Management System: Developed a web application for Queen’s University’s drama and music department, which is made up of 80+ staff. Allows users to build an annual list of course offerings, track instructor teaching history and administrative service, calculate workload, and update/modify the database. A year-long project that involved group work, design and code review meetings, delivery of complete software specification and design, and applying the waterfall process to plan, manage, and track the project. Required frequent communication with the customer and supervisor through progress updates, oral presentations, and formal meetings. Used HTML, CSS, JavaScript, Node.js, Vue.js.
Software Developer, Jarvis (2021-present):
- Exercised Agile/Scrum methodology on a daily basis with team, both as a member and a lead
- Implemented Gitflow framework for collaboration and project planning
- Personally developed various software applications using Linux, PostgreSQL, Bash, RDBMS, Docker, Maven, and Java
Test Automation Developer, National Bank of Canada (February-June 2022):
- Provided support for the planning and overall integration of test activities in projects implementing IT solutions in Agile mode
- Developed automated application tests using NBC's frameworks embedded in continuous testing (CT)
- Supported and assisted (onsite/offshore) parties involved in testing, coordinate team activities, and act as a coach to help resources master QA activities
- Suggested and influenced the definition and development of QA practices and processes
- Helped implement test automation tools in a DevOps environment and recommend other appropriate tools
- Ensured the quality of deliverables and that deadlines are met while managing risks
- Monitored QA activities daily including developing and executing tests, managing irregularities, and providing progress report
Teaching Assistant, Queen's University (2020-2021):
- Worked closely with students via email and Zoom calls to provide individualized attention and assistance
- Collaborated with instructor and other TAs to ensure efficient operation and delivery of courses
- Created a friendly, open environment for students during hosted office hours, where students could get help, study, work on assignments, share concerns, talk with others, or simply hang out
Queen's University (Graduated June 2021), Bachelor of Computing (Honours), Software Design
- Dean's Honour List (2019-2020): The Dean's Honour List for undergraduate students in the Faculty of Arts and Science recognizes those students who have achieved an academic year GPA of 3.50 and above, based on the combined GPA for all courses taken in the Fall, Winter and Summer terms.
- Learning REST APIs - LinkedIn Learning (2021)
- Learning JDBC - LinkedIn Learning (2021)
- Java: Automated API Testing with REST Assured - LinkedIn Learning (2021)
- Watching tech channels on YouTube (Linus, Marques Brownlee, etc.)
- Casual gaming
- Watching movies/shows