A professional software engineer specializing in real-time, low-latency data delivery. Beside writing elegant, maintainable code, my goal is to design scalable solutions to meet your business demands.
Docker · Jenkins · Linux · Elasticsearch · Splunk Cloud
Applying the right principles for your business (SOLID, KISS, DRY, YAGNI).
I excel in comprehensive testing suites and documentation of every step for rapid onboarding of team members.
Streamline Build & Deployment processes via containerization and Infrastructure as Code (IaC) for consistent and repeatable environment configurations.
· Eliminate system downtime due to updates, maintenance and system failures.
· Architecture a system without a single point of failure.
· Integrate redundancy measures.
· Provide fault-tolerant solutions such as the Erlang's Supervision model.
Translate client requirements to deliver projects with metrics and stats backed by data.
Having collaborated in cross-functional teams I have experience communicating with both technical and non-technical stakeholders.
As a software engineer, I understand that my responsibilities lie beyond writing code.
My passion lies in optimising your business to increase revenue, reduce operating costs and maximise process efficiency. Working for UK's largest online gambling platform, I've gained extensive knowledge required to maintain a production system capable of handling millions of simultaneous clients with full insight into performance, monitoring and alerts ensuring zero downtime.
The journey so far (click on a timeline point to explore).
My first encounter with programming in the Computer Science course. The first language I learned was Visual Basic 6 to build simple Windows Forms. My other subjects, Mathematics and Physics, provided me with a solid foundation for problem solving skills.
• Mathematics (A)
• Physics (A)
• Computing (A)
To further my career in a STEM field, I decided to enroll for a Computer Science undergraduate degree.
The course delivered a wide variety of modules which allowed me to narrow down on my interests. Some of my favourite areas of study include AI & machine learning, web development, Embedded programming, IoT, assembly, Virtual and Augmented Reality.
• A weather data collection module using ESP8266 and a long range radio transceiver (C++).
• Speech Emotion Recognition using convolutional neural networks (Python).
• SteamVR puzzle game written in Unity VR (C#).
• Fractal set generator GUI (C++).
BSc 1st Class Honours
Continuing my studies during the pandemic has given me quality time to focus on my final year dissertation. The project's scope consisted of training three types of deep recurrent neural networks and comparing these to classical algorithmic approach to fusing gyro/accelerometer sensor data. The hard work has paid off, and I felt confident to pursue a Software Development career in the job market.
Many struggled to find junior positions during the pandemic, however Bet365 was hiring talent in their new Manchester quarters. Despite starting entirely remotely, the team proved to be extremely supportive and have facilitated excellent training programme for me. I promptly began tackling my first work tickets in a functional programming language, Erlang, which was new to me at the time.
During my junior position, aside from picking up on new programming concepts, I had to learn DevOps skills in order to update automated tests and Jenkins pipelines, Docker containerise applications, automate Linux processes with Bash and Systemd. This has overall raised my awareness of product lifecycle, maintenance and business continuity management.
As I was told during my initial interview, bet365 is very much a culture of meritocracy. My hard work was recognised by seniorship and I was rewarded generously. I was excited to work on larger projects, collaborating with other teams and departments within the company and further expanding my understanding of system design at bet365.
• Provide on-call out of hours live support.
• Independently deliver projects to the live estate
• Maintain and update existing services in order to comply with constantly changing regulatory gambling laws in the various parts of the world
• Pair programming and carry out pull request QAs
Progressing towards a senior title, I'm continuing to tackle my less nurtured areas. These include Junior developer mentorship, leadership and decision making skills.
• Delivered an anti-scraper token checking mechanism.
• Inherited ownership of a Python statistics and report generation tool.
• Automated and optimised our ELK stack monitoring instance. The work was used as a baseline for later instances of ELK for other environments.
My dedication to writing software and devising solutions goes beyond my professional responsibilities
A project that challenged my ability to design both software and hardware to accomplish a fully functional product. I had to design a custom PCB in KiCAD that could fit around the edges of an LCD display in a slim frame. But that was only the start of it. After carefully selecting components that could fit on the PCB, I designed a 3D model from scratch using Fusion360 which could be 3D printed to house all of the internals. Finally, I wrote a C++ program for an STM32F103 microcontroller to interface with a simulator (DCS World) via USB. The final result was a huge success and a personal win, as I sold these units to simulator enthusiasts. The project took many prototypes to get right, in particular, the intricacies and difficulty of 3D printing to exact dimensions.
A python GUI tool that utilizes Convolution Neural Networks to classify the emotion of a voice from a short clip recorded by microphone. The tool contains a pre-trained model but also allows the user to further fine tune the model on their own voice samples or a set of .wav files. The tool provides a hyper parameter tuning as well as producing a transcript of user's recordings.
Another project intended to fulfill a niche within the airsoft community. Using my skills from the F/A-18 DDI Replica, I designed a tracer unit which is a device that produces a bright flash to illuminate incoming glow-in-the-dark projectile, causing it's trajectory to be lit up at night. The device was WiFi enabled (using an ESP82666 chip) and could detect the speed of a projectile (chronograph). The software (written in C++) creates a WiFI Access point and hosts a HTTP web server that feeds live data (using WebSockets) to the user's smartphone, providing unit statistics, battery, and of course the chronograph. I also designed it using Fusion360 (for 3D printing) and KiCAD for PCB design, this time utilizing mini SMD components.
Paper I wrote for my Bachelor's thesis combined my love for quadcopter racing and machine learning in order to solve the challenge of attaining accurate estimations from MEMS IMUs sensors. Getting accurate data from MEMS is a well-known challenge due to gyroscopic drift, accumulation of errors and non-linear scale factors. In the paper I discuss sensor fusion solution is using Long Short Term Memory (LSTM) and Gated Recurrent Unit (GRU) recurrent neural networks to estimate quaternion-based AHRS orientation of a low-cost MPU9255, gyroscope accelerometer, magnetometer. The paper compares sensor fusion approaches by Madgwick and Mahony to LSTM and GRU neural networks.
Let's connect. You can find my LinkedIn, GitHub and resume here. Easiest way to get in touch is via email form below.
https://www.linkedin.com/in/benkalmus/
+44 7490 365 811
Software Developer