Ruì 瑞 Guǒ 果
[email protected]
Front end, back end, database
Design patterns, architecture, cloud native app design
Microservices
SOLID, 12FactorApp
REST
Languages:
Python, Javascript, Typescript, Node.js, C# .NET, .NET Core, Java, Kotlin, C++, C, Ruby
Front end:
Angular, React, Bootstrap, Material UI, Clarity, JAMstack
Databases:
MongoDB, Cassandra, Redis, Memcached, Elasticsearch
MySQL, PostgresMariaDB, SQL Server, Oracle
Operating systems:
Linux, Windows, MacOS, Solaris, embedded/RTOS
Linux kernel drivers
Hardware:
Embedded, microcontrollers
Docker, Kubernetes, migrations from onprem to cloud
Terraform, Ansible, Chef, Puppet, Packer
ELK stack
CI/CD pipelines
Cloud:
AWS, Azure, GCP, Vsphere, PKS, PCF, Cloudfoundry
Accurate, pragmatic, experienced, resourceful
Calm under pressure
Solution orientated
Good communication to technical and non-technical stakeholders
Process:
Agile, Scrum, Kanban
JIRA
Leadership:
Offshore and onshore team management experience
Coaching
Resource planning
Experience in organisation transformation
Summary: Migration from on prem to AWS kubernetes
Docker, Kubernetes, Helm, AWS
Python, Ruby
Summary: Software developer for a company trading on the electricity market
Python code (2.7/3.8) to ingest price, weather and other data.
Python exchange handler to connect to external exchange platform and execute trading operations
AWS architecture
Productionising an existing trading information system
Some rewrite of the code
A python 2 -> python 3 upgrade
Architecting and deployment of a high availability AWS architecture
Setting up a CI/CD pipeline, automated testing
Re-architecting of market data feeds into an AWS based serverless event driven architecture
Python, Django, Flask, JS, HTML, CSS
AWS - Lambda, SQS, SNS, EC2, S3, RDS, auto scaling groups, VPC, subnets, security groups,
routing tables, IAM, ACS, Fargate, Secrets Manager, Key Management Service, Cloud Formation
MySQL, DynamoDB, MariaDB, Redis, SQLAlchemy
Summary: Software Engineer
Angular (frontend), JS, typescript, Clarity
Security. Threat modelling
Devops, Jenkins, CI/CD. Provisioning a Jenkins based CI/CD pipeline using Kubernetes, Docker,
Helm. PCF, PKS, NGINX
Microservices. NewRelic. PostegreSQL, MySQL. Redis, Rabbit, Kanban
Summary: Team lead. Hands on development in node, angular, python, golang
Building a smart cities company. Building a world class engineering and data science team
from the ground up using world class processes
Angular (frontend)
Responsible for all technical decisions
Responsible for product development and roadmap planning
enterprise software architecture, distributed system, IOT, planning & reporting, machine learning,
scikit- learn, edge computing, python, JS, node, iot sensors, linux, azure, data science,
embedded devices, JIRA, git, bitbucket, mongodb, terraform
Summary: Architected and implemented the rewrite of a legacy enterprise web application into C# .NET MVC
Introducing client to CQRS and Repository enterprise architecture patterns over a SQL Server database
Introducing client to Chain of Responsibility, Strategy, Adapter and Factory creational / behaviour
design patterns at class level C# .NET
Introducing client to Stairway pattern for assembly dependency separation
Introducing client to SOLID principles
Introducing client to log4Net combined with an ELK stack for logging
Introducing client to agile principles - both scrum and kanban
Introducing client to JIRA
Introducing client to Moq mocking and unit testing
Introducing client to UML
Introducing client to Microsoft Test Manager
Introduced client to Continuous Integration/Continuous Delivery/build pipeline
Coaching of management
Javascript, React, jQuery, AJAX, HTML, CSS, Less, Bootstrap 3, Telerik, DataTables, ADO.NET, nHibernate,
.NET 4.5, C# 6, Soap, SourceSafe, TFS, VB.Net, git, enterprise software architecture UX Design
Summary: Line Manger and Technical Lead. Developing a greenfield, Netflix-like IPTV product.
Distributed system architecture. Microservices (C#, ASP.NET Web API, MVC, REST API, kafka, Cassandra,
DynamoDB) ,UX development (JS/TS/JQuery),Azure/AWS
15 developer reports, 2 teams. My role was 70% hands on technical, 30% management
I was part of the leadership team that transitioned Ericsson from a waterfall development structure to an
agile scrum structure using industry best practice combined engineering, feature teams, CI/CD and devops.
And away from Microsoft technologies and towards open source
First team: 7 developers
Developed a single page application (SPA) web app in Javascript and Typescript using React/Backbone
as the framework.
Underscore, JQuery, REST, HTML, CSS
Second team: 8 developers
Devops running and developing an in production C# cloud (Azure/AWS) hosted service (ASP.NET)
I led the technical effort to migrate this service from a team in the UK to the team in Dublin.
Due to changing business environment I had to complete this move successfully in only 6 weeks
instead of the planned 6 months. It was business / mission critical that I succeeded in the 6
week timeframe (the UK office was closing). It was the “Ingestion” service - allows new content
(movies etc) to be added (uploaded / transcoded / encrypted / packaged) into the platform.
Architecture: As much smarts as possible pushed into the cloud. Some logic running client side
in the SPA. Kafka based message queues. Moved to a microservices based architecture
Team: Three week sprints, sprint planning, daily standups, user story grooming and retrospectives.
JIRA, Confluence, Gitlab, Slack
Weekly 1:1’s with my reports, annual goal setting, annual reviews, career development.
Coaching of reports
Attended program level sprint review meetings every 3 weeks to review progress at an
organisational level. Attended weekly leaders meetings to discuss issues and plan as well as
planning overall quarterly and yearly strategy. Attended leadership offsites and training
Microservices, C# .NET, Javascript, node.js, python, HTML, CSS, software architecture, distributed systems,
Cassandra, Hadoop, Spark, Hive jQuery, JIRA, Continuous Integration/Continuous Delivery/build pipeline,
Jenkins, Selenium, TFS, git, Microsoft Test Manager, Saucelabs, grunt, gulp, selenium
Using Elasticsearch with Kibana as a searchable tracing and logging solution. Graphina UX Design
H.264, H.265, DASH, ABR video streaming, MP4 Encryption
Summary: Hard to summarise. We achieved unicorn status. I was employee #99 and the first
technical hire in Europe
I have extensive experience of MongoDB - of production deployments and cluster administration
and of developing applications that run against MongoDB and also knowledge of schema design and performance
If you called or emailed MongoDB in 2012 while NY were offline you came through to me.
I was MongoDB worldwide support. When Eliot (CEO MongoDB) went offline at around 2am UK time, there was
no MongoDB support until I came online at about 6am.
C# .NET, Java, Node.js, Javascript, Python, Ruby
Enterprise software architecture, distributed systems
Cassandra (became Cassandra certified developer with Datastax), Hadoop, Spark,
NoSQL, MongoDB, Hadoop, Spark, Couchbase, Riak
Azure, AWS
Speaker at Microsoft Conference - Azure UK 2012, MongoDB UK Conference 2012,
MongoDB Munich 2012, MongoDB Stockholm 2013. Schema Design Workshop and MongoDB Security MongoDB Israel 2013
Software Developer @ Microsoft 2011 - 2012
Summary: Developing the Azure cloud infrastructure (DNS service) in C#
Developed Azure Infrastructure components
C#, DNS modules for Azure
Agile environment
C# .NET, python, Azure fabric, Azure AppFabric, Azure SQL, Azure SDK, .NET 4.0, .NET 3.5, ASP.NET, MVC, SQLServer,
Visual Studio 2010, Microsoft build system and technologies, DNS, WCF, agile, TFS, Automated Testing, MDS,
ADNS, IDNS, Source Depot
Summary: Developing a PKI encryption product in C++
Verizon Business’s Identity Management Unit developing a PKI product – UniCERT in C++
Windows, C++, MFC, Solaris 11, Solaris 10, Solaris 8, Solaris zones, RHEL, Enterprise Architect, UniCERT,
JSP, Oracle, SQL, PL/SQL, SSRS, Bugzilla, JIRA, Perforce, BackupExec, System Administration, Active Directory,
Assembly, ACE framework, nagios, encryption, PKI, X.509, PKIX, dbx, gdb, make, ant,
design patterns, multithreaded, gmock, pkcs11, cppunit, gtest, jam, luna, agile scrum, UML, cloud,
HSM, Safenet, UX design
Summary: Developing an embedded linux VOIP product in C and C++. Linux driver development. Hacking in assembly.
Linux kernel hacking. Working in agile but with in house hardware team working in waterfall
Developed embedded wireless router that could also handle VOIP calls. It ran an embedded linux kernel (2.6.20)
on an ARM architecture microcontroller (MIPS24KEc) from Infineon (Danube)
Worked in C in the linux kernel. I wrote low level device drivers for the DSP and ISDN chips.
There were some interesting moments in assembly
I also worked in C++ at application level to implement the telephony functions
In my first few days they told me trying to get the required performance out of the chip was a huge problem.
They had both a team of software engineers and a team of hardware engineers working on it -
on my 11th day there I pointed out a solution to this - that the chip they were using was in fact dual core.
They were using it as a single core and could compile their linux kernel to use the second core
System performance analysis and tuning
Embedded linux, C, linux kernel, linux device drivers, Asterisk, ISDN, oprofile, Infineon Danube MIPS, SIP,
hardware interrupts, software interupts, workqueues, spinlocks, rational clearcase, agile, ARM processor,
VOIP, wireless router, symmetric multiprocessing
Summary: Fintech. Developing a POS financial application and backend in C and C++
Developed product to handle credit card transaction from POS to the bank. Linux 2.4 kernel
C and C++ Development. Credit card transactions. Linux 2.2 kernel C, Linux, gdb, code collaborator, peer review,
requirements documentation, design documentation, vmware
Summary: Developing a very high speed packet processing product
Writing network protocol handlers from RFCs
Linux kernel hacking
Linux drivers
Developed an advanced service monitor for GPRS packet data networks. Multithreaded C++ application which ran
on a dedicated multi-cpu server. It was sold to major telecom companies and monitored traffic on
their GPRS data network.
It “sniffed” packets from the wire and analysed those packets using a network protocol stack.
The process worked at approaching line speed (10Gbs).
C, C++, Linux (Redhat, CentOS, Debian, Catapulta), Solaris, gdb, valgrind, iostat, vmstat, parallel
and concurrent programming algorithms, multithreading, process optimization, shell scripting, Perl, sed, awk,
network protocols (TCP/IP, HTTP, SSL, TLS, POP3, IMAP ), telecoms protocols (GTP, MMS, WAP, WV, Mobile-IP),
network processors (Napatech, Endace), Netscout probes, traffic generator (Shenick), routers (Juniper, Cisco),
optical networking (ATM, SONET, OC3), ACE library, Wireshark, VMWare, Cruisecontrol, CVS
Summary: Smartphone apps. C, C++
Developed applications for smartphones.
The platforms I developed for were Symbian, Windows Mobile, Palm, Linux. We mainly worked in C for
performance reasons as memory and CPU were limited on phones at that time.
Low memory footprint programming.
High-efficiency algorithms.
Developed Digital Rights Management solution.
Developed cryptography library.
UX Design C, C++, Windows, Linux, Symbian, Perl, Python, Shell scripting, DRM, smartphones, embedded C.
embedded C++, codecs
Summary: Developing an embedded linux HVAC product.
Linux kernel. linux drivers. UX design. PHP, JS, HTML. C++
Developed commercial refrigeration solution.
The box we developed was about the size of a VCR and was for use controlling the chiller cabinets in supermarkets
monitoring energy use, setting alarms for fault conditions.
It was configurable either via a front panel LCD or via a web UX.
Javascript development C, C++, Linux, Windows, CVS, RPC, gdb valgrind, mutli threaded, embedded linux kernel,
embedded C++ raw HTML php development UML UX Design
Summary: Developing a wind farm simulation tool in C++
Developed a renewable energy simulation tool in C++ and VB.NET.
It was a simulation tool for wind farms that allowed the 3D visualization of proposed wind farms as well as
estimating energy output.
Visual C++ development (MFC) VB.NET development
Summary: Developing a trading platform in C++ and Delphi for a market-maker on the Amsterdam stock exchange as the
exchange moved from open outcry to computer based trading.
Working with quants to implement trading algorithms.
Writing exchange handlers in C.
Distributed system.
Developed a new stock trading platform in C++ and C to trade on Euronext and DeutcsheBourse.
Developed a “smacker” whichperformed automatic trading.
Developed a TCP/IP wireless trading application.
C, C++, Linux, Solaris, shell scripting, Sybase database, SQL, CORBA, TCP/IP, UML, FIX protocol,
gdb, multi threaded, Java