I’m Oliver Fleckenstein, a software engineer developing web, mobile, and embedded applications. Passionate about technology and building software to solve problems. Curious as a person and I always eager for new challenges and opportunities to learn and grow from. I have always enjoyed working both independently and in teams with talented people from all over the world.
Software skills
I have strong fundamentals in and experience working with both object-oriented and functional languages. I enjoy working with both backend and frontend development, and have build several REST APIs in ASP .NET and NodeJS, using OAuth 2 for authentication and OpenApi. For mobile development, I have created cross-platform apps in Xamarin (and now learning MAUI), along with iOS apps in Swift.
Programming languages
- C#
- Rust
- Python
- JavaScript
- TypeScript
- F#
- Haskell
- Swift
- Java
- C/C++
I have dappled around with several other languages, and always find it interesting to see how different tools try to solve problems.
Web technologies
- React
- NodeJS
- HTML
- CSS
- SASS
- PHP
Other skills
Strong knowledge of data structures and algorithms, and always looking for ways to write better and cleaner code, following practices such as SOLID and TDD. I believe in strong agile development frameworks, with rapid iterations and feedback loops. To assist with this during development, I always aim to have efficient Continuos-Integration and Continues-Deployment flows to ease testing and validation of code, along with often releases.
- Git
- SQL (PostgreSQL, SQLite)
- NoSQL (MongoDB)
- MQTT/Kafka
- Docker
- Kubernetes
- GitHub
- Azure DevOps
- Azure Cloud
Embedded
Experience with Nordic Semiconductor, Raspberry Pi and Arduino. During my time at Friday Home, I developed certified IoT BLE HomeKit devices.
Experience
BP
London, United KingdomSenior Software Engineer
Friday Home
Copenhagen, DenmarkSoftware Engineer
More
My time at Friday was full of many different learning experiences. Our development team was small, which allowed/required me to take the responsibility on several of the company’s products.
My first tasks where focused around mobile apps on Android and iOS. We choose to develop new apps using Xamarin Forms to maximize shared coded between platforms. One of the more challenging aspects was to implement a Bluetooth (BLE) stack on both platforms, that could abstract away the necessary details. The best and most interesting feature I developed was auto unlock, where geofencing on the user’s mobile was used to detect when they arrived home, triggering a background scan and connect to our smart lock, making the user’s phone automatically unlock their door when they arrive home.
A REST API was implemented in C# (.NET 3.1/5) to manage Friday’s products. This API contained both management of users, their mobile devices and Friday devices, all connected to a PostgreSQL database. Through the API, new locks could be setup, guest could be invited to use the lock through phone number or email, and WiFi connected Friday devices could sync directly with their digital clone.
Along with the API, I also build a authentication server using Identity Server to support login with different OAuth 2.0 flows, such as the Authorization Code with PKCE and Client Credentials flow. This meant having single sign-on along with a simple, single login page for users, while third-party partners could easily connect to our API as well.
On top on the API, we also build a web frontend in React and TypeScript. This allowed for a better overview of organizations and their locks, along with a access matrix that allowed an administrator to easily get an overview of which groups have access to which locks, and grant or revoke users’ access.
I was also assisting in developing parts of the firmware for the Friday Lock DUO product. My primary responsibility was around the protocol layer, where we utilized Protocol Buffers to create language agnostic message structures which could be shared between the firmware, mobile and cloud platforms. As the DUO lock was capable of transmitting through both Bluetooth and WiFi, we build a framework capable of syncing with mobile devices and our server side through the same message structures. For communication with our server, we used the MQTT protocol for a publish/observer pattern.
Other interesting parts of developing firmware for the smart lock included: ensuring it ran power efficient while still being responsive, controlling and calibrating the motor to many (many!) different lock types, and implementing everything to be compliant with Apple’s HomeKit protocol. Part of the HomeKit compliance also included implementing the Software Token Authentication Server.
Part of my time at Friday I spend in Taiwan together with our parters Brinno. Here we developed the software to track the production of Friday’s products, along with implementing a special factory-testing firmware, that allowed us to easily exercise and verify that all components of the hardware was working as expected. We build a infrastructure where we automatically gathered test results, images, and tracking information for every single device, allowing us to better track defects and issues with devices.
Microsoft
Kongens Lyngby, DenmarkStudent Software Engiener
IBM
Brøndby, DenmarkStudent project assistant
Education
Technical University of Denmark
Copenhagen, DenmarkM.Sc. in Computer Science and Engineering
Technical University of Denmark
Copenhagen, DenmarkB.Sc. in Computer Science and Engineering
University of New South Wales
Sydney, AustraliaB.Sc. Study exchange
Academy for Talented Youth
Zealand, DenmarkHigher Technical Gymnasium
Hillerød, DenmarkMathematics, Physics, and IT