Quentin McGaw
Tags: FullStackDev, CS MSc, EEE MEng, Go, Nodejs, React, Cloud, Crypto
Introduction
- Working at SweetIQ as a full stack developer in downtown Montreal, Canada
- Author of multiple 500K+ downloads open source projects
- Graduated from my Master of Computer science at New York University in May 2018 with 3.358 GPA
- Graduated from my Master of Electrical and electronic engineering with management from Imperial College London in June 2016 with upper second class honours
- Fluent in English and French
- Maurtian and Luxembourgish, and lived:
- 2019- Montreal
- 2018-2019 Luxembourg and Romania
- 2016-2018 New York City
- 2012-2016 London
- 2006-2012 Nice, France
- 2005-2006 Villars-sur-Ollons, Switzerland
- 1995-2006 Luxembourg
Links
Expertise - Full stack dev and more
My favourites are Go, NodeJS, Docker, React.JS, Typescript, PostgreSQL, Redis, networking and cryptography/security
I also master several other languages such as Java, Python, C++ although I do not use them in my daily life.
The following represents icons of software or technology I am skilled in.
You can check a list of my skills in detail at the bottom
Work experience
SweetIQ, 2019
- Software developer
- Go programming mostly
- Event driven architecture
- Unit and integration tests writing
- Final state machine development
Mobile app development, 2018-2019
- Consists in a scalable mobile app
- Involves the following technologies
- Golang and high performance web scrapping
- Docker, Docker-Compose
- PostgreSQL, Redis
- ReactJS, React Native with Typescript
- Puppeteer nodejs server (HTMLSpitter)
- Google Places API and Geocoding
Hospital catering mangement system, nov-dec 2018
- Google App Engine based, written in Typescript
- Supports 3 hospitals and a total of 8 floors simultaneously
Multiple websites
- Law office website
- Initial development of idonly.com frontend
- Culinart restaurant
- My website
Internship at Coinplus, 2015
- 6 months in a Bitcoin startup in Luxembourg
- Regulated and secured storage of bitcoins
- Regulated transactions of bitcoins
- My role as a software engineer was to develop a security solution for the storage of Bitcoin private keys
- Cryptography (PKI, RSA, ECDSA, secret sharing...)
- Bitcoin protocol
- Python programming
- Networking, RabbitMQ
- The final outcome was the patenting of my solution under the company's name.
Summer internship at STMicroelectronics, 2014
- 3 months at STMicroelectronics in Sophia Antipolis, France.
- In the NFC mobile application development team of 15 persons.
- The company was developing a new NFC chip for Android smartphones.
- My role was to add support for the detection of multiple NFC cards simultaneously by an Android smartphone with their chip
- Android OS modifications in C, C++ and Java
- Android app development to showcase the OS modifications made
- Understanding of the Android OS and of all the NFC technologies to date
- Use of CyanogenMod on a Nexus devices for testing during development
Personal projects
- Go Dev container to develop in a container with VS code
- Updated written in Go, to periodically generate malicious lists of IPs and hostnames
DDNS Updater written in Go, 450K+ pulls
HTMLSpitter to scrap the web with Puppeteer
- Welcome written in Go to automate SSH login tasks
- Simple QR code generator written in Go
Many Docker images
DNS over TLS, 500K+ pulls
Private Internet Access VPN, 500K+ pulls
Teamspeak server, 93K downloads
- Port checker written in Go
Meemo server, 63K pulls
Stackedit server, 11K pulls
- Omada controller
- Caddy proxy on Scratch
- Call of duty server
- Docker Hub trigger
Open source contributions
Design of Redio
- Design of simple desktop web pages using Adobe XD for a travelling website (for a Psychological study)
- My computing course (unfinished)
- ThumbGifs (which is used for this document actually)
Hobbies
Homelab
- Main server - Arch Linux - Ryzen 2600X - 2x12TB + 2xSSD all in encrypted ZFS
- DNS over TLS server, self-made
- DDNS Updater, self-made
- Caddy on Scratch, partly self-made
- Gitea
- PIA VPN client, self-made
- Plex Media Server, contributed
- Youtube-dl, partly self-made
- Syncthing
- Deluge
- COD4x Dedicated server, partly self-made
- Minecraft Spigot server, partly self-made
- DockerHub trigger, self-made
- Docker proxy, self-made
- Drone CI
- Droppy
- Iperf
- Meemo, partly self-made
- Netdata
- Rsync, self-made
- Samba
- SFTP
- Wireguard
- Updated, self-made
- Wekan
- Secondary server - Alpine Linux - Ryzen 2600 - 120GB SSD in encrypted ZFS
- Running Caddy, Rsync, Samba, Wireguard, DNS over TLS server and DDNS updater
- Synology DS918+ - 4x4TB NAS in BTRFS with all services using Docker
- Raspberry Pi 3B
- GliNet AR300 for airports essentially
- Assembling desktops and servers
Social
Other
- Cycling, gym, skiing, running
- Cryptocurrencies, Ebay, Audiobooks
- Games: PlanetSide 2, Minecraft, Call of Duty 4
Education
New York University, September 2016 to May 2018
Courses
- Cloud computing
- AWS with CloudFoundry & Bosh
- Ongoing project
- .NET Web development
- Cryptocurrency and decentralized ledgers
- Bitcoin protocol: mining, transactions, cryptography etc.
- Ethereum: Solidity-written smart contracts
-
- Hadoop with NYU's Dumbo clusters in Java and Python
- Hive, Impala, Spark, Pig etc.
Bitcoin Use Trends project
Technology, design and entrepreneurship
- Ended up with the Mealracle project I am still working on (March 2019)
- DevOps
- Project
- Advanced Git, Zenhub and GitKraken
- Vagrant and Docker on IBM Bluemix cloud
- Python with Flask and a Redis database
- Travis CI, unit testing and behave
- RESTful API with Swagger
- Web security
- Database Systems
- Microsoft Visio (ER diagram, Crow's feet notation etc.)
- SQL databases
- Normalization, minimum cover, etc.
Mobile online social gaming
- Chess game project here
- Typescript, HTML, CSS
- Jenkins and code coverage
- Artificial intelligence
PhoneGap and monetizing the app
Operating System
- C++ assignments: scheduler, linker, IO, memory management
- Processes, threads, scheduling, concurrency, memory management, IO, file systems, Networking, cloud and distributed computing
- Programming languages
- Scala, Java, ML, Scheme, Ada
- Syntax, scoping, call stack, recursion, lambda calculus, dynamic storage
- Fundamental algorithms
- Data structures: Heap, binary search trees, Hash tables,
- Sort algorithms: Quicksort, Countingsort, Radixsort, Bucketsort, Mergesort
- Dynammic programming: LCS, Parenthesizations, Matrix-chain-product
- Optimization: Activity selector, Rod cutting problem
- Graphs: BFS, DFS, Top-sort, Minimum Spanning tree, Kruskal, Prim, Dijkstra
- Others: Huffman coding, P/N/NP, Arithmetic (Euclid, PKI etc.)
Imperial College London, October 2012 to June 2016
Master's thesis
- hbc for Homomorphic binary circuits
- My aim was to develop easy to use digital circuits using fully homomorphic encryption.
- Understanding of the HElib library
- Programming in C++
- Cryptography and security
- Homomorphic encryption allows to perform analytics on encrypted data, which will be very useful for cloud computing.
- Report available here
- Click on the following animation to play the video
Final year, 2015-2016
Courses
- Network and web security
- Javascript, HTML, SQL
- Cryptography
- Coding Theory
- Cryptography
- Communication theory
- 30 minutes course I gave to fellow students
- High performance computing for engineers
- Amazon web services (AWS)
- C++, OpenCL and TBB (intel)
- Complex Makefiles
- Understanding of GPUs architecture
- Mobile healthcare and machine learning
- Android app development with Android Wear
- Machine learning in Python (clustering)
- NodeJS, SQL database
- Report available here
- Click on the following animation to play the video
- Managing innovation
- Managerial economics
- Full syllabus here
- Corporate finance
- Group report on the fair valuation of the S&P500
- Group presentation on the MSFT Valuation-Valuation.pdf)
- Full syllabus here
Third year, 2014-2015
Courses
- Digital signal processing
- Advanced signal processing
- Use of Matlab
- Coursework report
- Artificial intelligence
- Use of Prologue
- Communication networks
- Real-time digital signal processing
- Based on C and C++ projects to filter signals
- Report on Interrup I/O laboratory
- Report on Real time implementation of FIR filters laboratory
- Report on Real time implementation of IIR filters laboratory
- Report on a speech enhancement project
- Entrepreneurship
- Business plan about Sports Connect
- Accounting
- Project management
- Group project on the Boeing 747 project
Second year, 2013-2014
Courses
- Algorithms and data structures
- C, C++
- Binary trees and so on
- Introduction to computer architecture
- Use of ARM7 assembly language for some assignments
- Semiconductor devices
- Algorithms and complexity
- O notation
- divide-and-conquer and so on
- Mathematics
- Digital electronics
- Programming FPGAs using Verilog in pairs
- MPLabs assembler
- Analogue electronics
- Power engineering
- Communication systems
- Signal and linear systems
- Control engineering
Year group project: Wasteless
- Leader of a team of 7 students
- Goal was to develop an ecosystem to reduce the waste of expired food
- Push notification to the smartphone of the user about food products nearly expired
- Propose the user to share nearly expired food with neighbours
- Establish a network of "food friends" with reputation points, messaging and so on
- This involved several technologies and developments
- At the supermarket level, barcodes were replaced by low-cost RFID chips (contactless) containing the expiry date of the product in addition to the barcode data. This also allowed a faster checkout for the customer.
- At the customer level, an Android application was developed
- A C++ based server was developed to communicate information on all the goods bought by each user and to handle the food social network.
- A C++ client program for the cashier at the supermarket was developed.
- A website was also designed for non-mobile users of Wasteless.
- The final state of the group project was actually promising and we obtained surprisingly high marks
First year, 2012-2013
Courses
- Software engineering: C & C++
- Mathematics
- Professional engineering
- Analysis of circuits
- Use of Cadsoft Eagle and PSPice
- Digital electronics
- Altera Quartus 12
- Semiconductor devices
- Analogue electronics
- Energy conversion
- Signals and communication
Year group project: EEBug
- Leader of a team of 6 students
- Goal was to build a toy following a black line on the floor for GBP 5.00
- It involved
- PSPice to design the circuits
- Project and team management (reports, charts, deadlines...)
- Hardware testing (opAmps, Resistances etc.)
Graduation results
I have obtained my Master's degree with upper second class honours and 61.32% overall You can check out the certificate here
French scientific baccalaureate, 2012
Courses
- Mathematics with specialty in arithmetics
- Physics and chemistry
- Biology and geology
- History and geography
- Philosophy
- Latin, English, Spanish, French
- Sports
Articles published in a french Hardware Magazine (2008, 13 years old)
Skills details
Legend: Advanced skills, Intermediate skills, Beginner skills
Backend
- Golang
- Node.JS & Typescript (Sololearn certification)
- Python
- Scalable & distributed systems
- C++
- Java (Sololearn certificate)
- .NET C#
- Ethereum Solidity
- OpenCL and CUDA
- REST, unit testing
Database
- Postgresql (Sololearn certificate)
- Redis
- SQLite
- MySQL
- Hadoop
- Hive
- Impala
- Spark
Frontend
- React.JS & Typescript
- React Native & Typescript
- HTML, CSS, Js
- Jquery (Sololearn certificate)
- Phonegap
Design
- Adobe XD
- Invision
- Gimp
- Photofiltre
Security
- Cryptography
- Network security
- Bitcoin protocol
- Ethereum protocol
Server admin
- SSH+Mosh
- Many various shells
- User & group management
- Reverse proxies Caddy/Nginx/Apache
- Alpine Linux, Debian, DSM, RancherOS, CentOS
DevOps
- Docker
- Vagrant with Virtual Box
- Git with Github, Gitea and GitKraken
- Zenhub, Wekan
- Drone CI
- Travis CI
Cloud
- Google Cloud
- AWS
- IBM Bluemix
- RancherOS
- Containers registries
Algorithms
- Cryptography
- Fundamental algorithms
- Mathematics
- Control engineering
Hardware
- FPGAs
- Digital electronics
- Digital signal processing
- Power engineering
- Analogue electronics
- NFC technology
- Android OS (C, C++ & Java)
Managerial skills
- Corporate finance
- Economics
- UK Accounting
- Project management
- Entrepreneurship
- Innovation management
Others
Fun facts
- I have a driving license (from UK)
I climbed the Kilimanjaro mountain in Tanzania at the age of 12
I had a summer job as a waiter and cleaner in the Castle Venlaw Hotel in Scotland, Peebles
All my grades are accessible in this formatted spreadsheet
- I write some funny theories like this one
My first server: The Raspberrypi Pi (thanks Denisa)
Computer builds
- October 2018 - now: Server Ryzen 2600, 16GB, 2xSSD on ZFS, GT740
- July 2018 - now: Ryzen 2700X, 16GB DDR4 3200MHz, GTX 1080
Type | Item |
---|---|
Motherboard | Asus - ROG STRIX X470-I GAMING Mini ITX AM4 Motherboard |
CPU | AMD - Ryzen 7 2700X 3.7GHz 8-Core Processor |
Video Card | Zotac - GeForce GTX 1080 8GB Mini Video Card |
Memory | G.Skill - Ripjaws V Series 16GB (2 x 8GB) DDR4-3200 Memory |
CPU Cooler | Noctua - NH-L12 37.8 CFM CPU Cooler |
Power Supply | Silverstone - 600W 80+ Gold Certified Fully-Modular SFX Power Supply |
Case | Ncase M1 |
Storage | Samsung - 950 PRO 256GB M.2-2280 Solid State Drive |
Storage | Seagate - FireCuda 2TB 2.5" 5400RPM Hybrid Internal Hard Drive |
Storage | Samsung - 840 Pro Series 128GB 2.5" Solid State Drive |
Storage | Seagate - Momentus 5400.6 500GB 2.5" 5400RPM Internal Hard Drive |
Fan hub | Phanteks PWM Fan Hub Controller |
Case Fan | Corsair - Air Series SP120 High Performance Edition (2-Pack) 62.7 CFM 120mm Fans |
Case Fan | ARCTIC - Arctic F12 74.0 CFM 120mm Fan |
Case Fan | ARCTIC - Arctic F9 43.0 CFM 92mm Fan |
Thermal Compound | ARCTIC - MX-2 4g Thermal Paste |
- May 2017 - July 2018: i5 6500, 16GB DDR4 3000MHz, GTX 1080
Type | Item |
---|---|
Motherboard | EVGA - Z270 Stinger Mini ITX LGA1151 Motherboard |
CPU | Intel - Core i5-6500 3.2GHz Quad-Core Processor |
Video Card | Zotac - GeForce GTX 1080 8GB Mini Video Card |
Memory | Corsair - Vengeance LED 16GB (2 x 8GB) DDR4-3000 Memory |
CPU Cooler | Noctua - NH-L12 37.8 CFM CPU Cooler |
Power Supply | Silverstone - 600W 80+ Gold Certified Fully-Modular SFX Power Supply |
Case | Ncase M1 |
Storage | Samsung - 950 PRO 256GB M.2-2280 Solid State Drive |
Storage | Seagate - FireCuda 2TB 2.5" 5400RPM Hybrid Internal Hard Drive |
Storage | Samsung - 840 Pro Series 128GB 2.5" Solid State Drive |
Storage | Kingston - SSDNow V300 Series 120GB 2.5" Solid State Drive |
Storage | Seagate - Momentus 5400.6 500GB 2.5" 5400RPM Internal Hard Drive |
Fan hub | Phanteks PWM Fan Hub Controller |
Case Fan | Corsair - Air Series SP120 High Performance Edition (2-Pack) 62.7 CFM 120mm Fans |
Case Fan | ARCTIC - Arctic F12 74.0 CFM 120mm Fan |
Case Fan | ARCTIC - Arctic F9 43.0 CFM 92mm Fan |
Thermal Compound | ARCTIC - MX-2 4g Thermal Paste |
- March 2016 - May 2017: i5 6500, 16GB DDR4 3000MHz, GTX 970
- 2014 - March 2016: i5 3570k, 8GB DDR3, GTX 580 SLI/GTX 770
- 2013 - 2014: i5 3570k, 8GB DDR3, GTX 570/580
- 2012: i7 2600k, 6GB DDR3, HD 5830
- 2011-2012: i7 920, 3GB DDR3, HD 5830
- 2010-2011: i7 920, 3GB DDR3, HD 5830
- 2009-2010: i7 920, 3GB DDR3, HD 5830
- See more on Google Drive