Presently, I am a scientific officer of the WMO Information System (WIS) team at the WMO Secretariat in Geneva, Switzerland. My work is primarily that of a full-stack developer contributing to open-source projects. This involves creating robust backend solutions for data format conversion, quality control, and downloading, alongside designing user-friendly frontend interfaces for both web and desktop applications.
Coming from a mathematical background, with a master’s degree from the University of Warwick, I also have a strong interest in academic research - particularly in statistics and machine learning.
My unique strength lies in combining in-depth technical skills with the ability to effectively communicate complex solutions in an easily understandable way, bridging the gap between detailed technical execution and clear, relatable explanations.
![VSCode](https://camo.githubusercontent.com/885f29f84e8dfee382a8ec1fbc1afef89e1b732f2a493928dbacab9e24d2f75d/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f7673636f64652f7673636f64652d6f726967696e616c2e737667)
![Git](https://camo.githubusercontent.com/e3d17d477f67cf35cf1997489d23a37bb97104524a381e8e7da7b8074afa5715/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f6769742f6769742d6f726967696e616c2e737667)
![Docker](https://camo.githubusercontent.com/8d708e339860b0eb05906e92963a97903f3dc0423ec791079702ef0bd3bd22a0/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f646f636b65722f646f636b65722d706c61696e2d776f72646d61726b2e737667)
![Bash](https://camo.githubusercontent.com/8a85f303e410f7642599eae016de403f9ed8d15e63d25f2ce239266d39340b93/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f626173682f626173682d6f726967696e616c2e737667)
![Ubuntu](https://camo.githubusercontent.com/0325cd58f8d582ee5e138251c990866ebcd1a0e8620cbf6078aa9b135a065ea9/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f7562756e74752f7562756e74752d6f726967696e616c2e737667)
![Python](https://camo.githubusercontent.com/4980205ad6a7752a996207c3fc47b574d6ded386e4a1bf1c9da6e943f07d6743/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f707974686f6e2f707974686f6e2d6f726967696e616c2e737667)
![Pytest](https://camo.githubusercontent.com/91c652a46d41e2f504925b30affe90f39a6e70e429dd74b3eacfc7b9786927be/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f7079746573742f7079746573742d6f726967696e616c2e737667)
![TensorFlow](https://camo.githubusercontent.com/e92ce3e7a1b9df81160d583cb309a358b32ba83cf63770369d511afa18ecf8c4/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f74656e736f72666c6f772f74656e736f72666c6f772d6f726967696e616c2e737667)
![Numpy](https://camo.githubusercontent.com/5776d657fa3b6e61631097bf952c7571833b3f4d98771d0b4fff65392cfe7a6e/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f6e756d70792f6e756d70792d6f726967696e616c2e737667)
![Pandas](https://camo.githubusercontent.com/81b92a05efa2d5b8339da5c6acf153b7e16ed70a89a9f70e7afe909aa72a62ba/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f70616e6461732f70616e6461732d6f726967696e616c2e737667)
![Flask](https://camo.githubusercontent.com/3555c5f74d22bf0f9584312fe68c90c1605b1e2af00cf5ce614ad59d652ad6ab/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f666c61736b2f666c61736b2d6f726967696e616c2e737667)
![Prometheus](https://camo.githubusercontent.com/e91b89db251a96011e44b6c470fdb618f98b6897d101523fd44993365290f780/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f70726f6d6574686575732f70726f6d6574686575732d6f726967696e616c2e737667)
![PostgreSQL](https://camo.githubusercontent.com/38ba8629616fc02e7df484b434e1209252751cfffe7781b42d947dda40ab5b51/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f706f737467726573716c2f706f737467726573716c2d706c61696e2e737667)
![R](https://camo.githubusercontent.com/d680711523f54bee241e3da39b2fdf90fe90ff398a4dbea082e5daaad72f9e79/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f722f722d706c61696e2e737667)
![MATLAB](https://camo.githubusercontent.com/c3839ae09c3dd7bd2a932ad4321dc784bcec9f973bf1a6661adee8c353e08821/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f6d61746c61622f6d61746c61622d6f726967696e616c2e737667)
![JavaScript](https://camo.githubusercontent.com/04415640a09976c43481819a817157acd8ce8cb55fc88bf935c494710b4a6762/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f6a6176617363726970742f6a6176617363726970742d6f726967696e616c2e737667)
![TypeScript](https://camo.githubusercontent.com/720b9f2943d364a5b9b09ecec013f824e7d12c17f325f4ec3bde3bf8091c31c5/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f747970657363726970742f747970657363726970742d6f726967696e616c2e737667)
![HTML](https://camo.githubusercontent.com/2febc0c34ff3bc4c4ab03c7f3ddf061527ac4a1c9c87f8564e51fc8a54d6374f/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f68746d6c352f68746d6c352d6f726967696e616c2e737667)
![CSS](https://camo.githubusercontent.com/fc6bd432d23a709cd7fed32d5dde8beb726b8664404bc63331d5fec87ae0ce7a/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f637373332f637373332d6f726967696e616c2e737667)
![Vuejs](https://camo.githubusercontent.com/44741f6aee2f19fbecb2bf7dced898b99ec82295490421293440809f20fc1399/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f7675656a732f7675656a732d6f726967696e616c2e737667)
![Vuetify](https://camo.githubusercontent.com/8de3945a7215a5d40003f3bf0b3b114768261759c202c6a25e0ae6a7fb1b6024/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f767565746966792f767565746966792d6f726967696e616c2e737667)
![Vuejs](https://camo.githubusercontent.com/c8fada00fabc110a5651fd489a98277b0c005a709d69c9dcc1ab3d8bde074510/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f72656163742f72656163742d6f726967696e616c2e737667)
![Electron](https://camo.githubusercontent.com/e827e5984e56851d4a44b64188fe395a44f7d823c67a71063ec407344eacf92b/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f656c656374726f6e2f656c656374726f6e2d6f726967696e616c2e737667)
![Axios](https://camo.githubusercontent.com/d93e00b0b909aeeba5912e434d01b76451b312009b835d113a6f6f5da64691c5/68747470733a2f2f63646e2e6a7364656c6976722e6e65742f67682f64657669636f6e732f64657669636f6e406c61746573742f69636f6e732f6178696f732f6178696f732d706c61696e2e737667)
During the first year of my mathematics degree, I quickly became fascinated by the idea of building mathematical models to represent diverse real-world scenarios. I knew that I needed to improve my coding skills to explore this properly, so I engaged in many modules that offered this - simulating physics, epidemiological outbreaks, and more. These skills landed me an internship at BT Group where I had the chance to put my theoretical knowledge of machine learning into action. Here, I researched the effectiveness of deep autoencoders in detecting malicious network data. After this, in my master's degree, I took every opportunity I could to continue exploring this avenue of research - from comparing the structure of brain networks using stochastic block models, to ranking coupled climate models using statistical distances. Once I graduated, I was fortunate enough to land a developer role as a scientific officer in the World Meteorological Organization, where I have learnt containerisation, back-end development, and front-end design. Who knows what awaits me in the future: I may continue as a full-stack developer, I may return to data science, or perhaps a combination of the two!