|
-
-
-
Learnosity is a B2B SaaS EdTech company. We build and operate Web APIs (Javascript/JSON) to support online assessments, from content authoring to reporting and data analytics. The platform delivers more than 2Bn questions monthly to users worldwide.
-
Staff Software Engineer
(Since
2020;
≥
2
years)
I transitioned to the Platform team. Here, I develop and re-engineer
core components of the Learnosity infrastructure with a focus on
ease of maintenance, scale and security. I also continue to maintain
internal development tools.
My key focus is on
In this role, I have
-
supported the hiring, on-boarding and training of two new remote
SRE teams, in two timezones
-
led a project to review and improve our release processes, which
resulted in more automation and halving the need for staff member
involvement
-
been part of a two-person team who rebuilt an escrow environment
from scratch, moving it from VMs to containers, and reducing the
effort to build it from multiple weeks to a couple of days
-
actively contributed to the platform team's effort to increase and
simplify CI/CD processes, based on more regular build systems and
containerised deployment, which holds the promises of increasing
the release cadence from three-weekly to daily
My activity also continuously involves
- general code and processes improvement (refactoring, new implementations and test patterns)
- knowledge transfer (code review, documentation, seminars, mentoring)
- performance testing
- security reviews
- production support
In addition to this, I have been actively re-discovering,
documenting and supporting parts of the codebases for which
institutional knowledge had been previously lost.
-
Senior Software Engineer
(2016
–
2020;
4
years, 2
months)
In the Analytics scrum team, I developped and maintained backend systems code and internal development tools.
My responsibilities included
In this role, I have led or majorly contributed to efforts allowing us to scale our infrastructure and databases. Those include
- tracking down and fixing application bottlenecks, allowing to increase the supported load of an event-passing system by two orders of magnitude
- the iterative refactoring of ETL processes and data-warehouse schematas that quadrupled the data ingestion throughput
Technologies:
Linux,
Docker,
Amazon Web Services,
Python,
PHP,
SaltStack,
MySQL,
PostgreSQL,
Go,
Vagrant,
HTML/JavaScript,
Elasticsearch,
|
- 2011
–
2016
- 4
years, 8
months
|
-
Researcher
-
-
Security and Privacy
I was one of the principal investigators on the Anonalytix
project, in collaboration, amongst others, with a large
telecommunications operator. The aim was to develop database
de-identification methods that provide strong guarantees on the
impossibility of re-identification while preserving as much utility
as possible for downstream analytics. Ultimately, this would allow to perform big data
analytics while ensuring compliance with privacy laws and
regulations.
My focus was on porting those algorithms to a Spark/Hadoop
environment, and build a SaaS platform. I led the engineering
effort towards this goal, building the platform, improving or
porting existing code, and creating the continuous delivery
pipeline.
Prior to this, I collaborated on
security-testing a framework for privacy-leak protection on
Android (TaintDroid), and identified
several flaws through which it could be bypassed. I also
worked on a project aiming to identify common security flaws of
IoT devices, and provide a network-managed protection
solution.
Technologies:
R,
Java,
Spark,
Hadoop,
C,
Jenkins,
Travis,
Vagrant,
Docker,
Ansible,
PostgreSQL,
Android
Platforms for Experimental Measurement
I was (2011–2015) the maintainer of the OML instrumentation and reporting
library, of which I have greatly improved the code quality as
well as related delivery processes. This tool is widely adopted for
testbed-based experimental research, and I was directly involved with
the GIMI (NSF)
and Fed4FIRE (EC FP7) projects
using this library. It is also a fundamental part of the IREEL e-learning
platform, which has been used by various universities (USyd,
UWS and UNSW) to teach network courses.
Technologies:
C,
UNIX,
autotools,
GDB,
Git,
Valgrind,
ArchLinux,
Debian,
RedHat,
Python,
Ruby,
SQLite,
PostgreSQL,
OpenStack
Performance of Network Protocols
I also followed up with the research on the optimisation of
the quality of experience (QoE) of multi-homed mobile devices that I
started during my doctoral studies. Parts of this work was been done
in collaboration and integrated within the SAIL EC FP7 project.
I have
continued to work on transport protocols, particularly on long-delay
links, and less than best-effort algorithms. This led me to a focus
on active queue management (AQM) as a way to address issues caused
by over-sized buffer in routers (BufferBloat), as well as multipath
protocols.
I also explored the feasibility
of layer-4 packet switching and multipath scheduling in SDN.
Technologies:
C,
Linux,
IPv4,
TCP,
Android,
Python,
ns-2,
TCL
Finally, in this position, I have supervised two Master
students, several student projects (both graduate and
undergraduate), and have informally co-supervised two late-stage
Doctoral students. I have also published more
than 30 research papers in peer-reviewed venues.
|
|
|
- 2008
–
2011
- 3
years, 8
months
|
-
PhD research
-
-
-
My PhD aimed to solve communications issues raising from
highly mobile environments. Typical use-cases, from vehicular
networks to hand-held devices, are exposed to an ever-changing set of
wireless connectivity options to use, with no clear choice, or
combination thereof. This led me to propose a loosely-coupled cross-layer
architecture aiming to control the MAC/PHY, network and transport
layer protocols in a way which would improve application quality
metrics by specifically matching application requirements and
networks' characteristics.
As part of this work, I gained a thorough understanding of the
state of the art of the networking stack, particularly at the
network and transport layers, as well as knowledge and participation
to current research efforts to improve or replace this
paradigm.
I also got very familiar with experimental
research in general, and the problems of reproducible experiments in
network and telecommunications. This led me to specifically study
problems of accurate and precise measurement of phenomena in
networked systems, and allowed me to provide a solid backbone
observation mechanism of my cross-layer architecture.
My thesis resulted in the
publication of 9 research papers, as well as various pieces
of software (ns-2 modules, software instrumentation,
patches).
Technologies:
C,
Linux,
IPv6,
IPv4,
TCP,
802.11,
HTTP,
Python,
ns-2,
TCL
|
- 2006
–
2008
- 1
year, 8
months
|
-
-
Expert engineer
(2006
–
2008;
1
year, 4
months)
Network mobility/IPv6
While communication was abstracted
away from my MSc thesis problem (see below), the obvious future
step of implementing the algorithm in a real system led me to take
on a further engineering role within the IMARA team.This
role led me to take charge of the technical coordination of the
experimental platforms for the Com2REACT EC FP7
project. The position involved the following responsibilities.
I also designed and built a wiki-based knowledge
management system for the LaRA
joint-research unit, allowing to match hardware platforms and
people's skills across three research labs. This solution
also allowed for a much better coordination and record-keeping of
work being done and domain knowledge being acquired or created.
Technologies:
IPv6,
IPv4,
802.11,
DNS,
DHCP,
Apache,
GNU/Linux,
OpenBSD,
Quagga
PHP,
-
MSc intern
(2006;
6
months)
My Master's thesis focused on determining
collision-free schedules for a fleet of automated vehicles to
safely pass a crossroads. This work included the design of a new
spatio-temporal reservation algorithm, its implementation in an ad hoc
simulator, and an evaluation of it efficacy. This resulted in the
publication of a paper describing the algorithm and its evaluation
and its presentation at an international conference.
Technologies:
Python
|