Omer Cerrahoglu, Developer in Istanbul, Turkey
Omer is available for hire
Hire Omer

Omer Cerrahoglu

Verified Expert  in Engineering

Software Developer

Istanbul, Turkey

Toptal member since August 22, 2022

Bio

Omer excels in building complex systems, working on the most critical components of a project, from cryptography to networks, and performance to scalability. He integrated a new cryptographic protocol to support messaging groups of thousands of users, with strong cryptographic guarantees and seamless performance. Omer built a fast serialization, de-serialization algorithm for cryptographic objects. He is a natural-born problem solver with a degree from MIT and a strong background in mathematics.

Portfolio

Ordulu Information Technologies
Cryptography, Applied Cryptography, PostgreSQL, Redis, Java, Android...
YugaByte
Algorithms, Databases, Cassandra, Sharding, C++, Java, Apache Maven...

Experience

  • C++ - 4 years
  • PostgreSQL - 3 years
  • Redis - 3 years
  • Cryptography - 3 years
  • Java - 3 years
  • Distributed Systems - 3 years
  • Android - 3 years
  • Performance - 2 years

Availability

Part-time

Preferred Environment

Visual Studio Code (VS Code), Java, C++, C, Node.js, IntelliJ IDEA

The most amazing...

...project I've worked on is integrating a new cryptographic protocol, supporting groups of thousands of users in an instant messaging app.

Work Experience

Software Engineer

2018 - 2022
Ordulu Information Technologies
  • Integrated a new cryptographic protocol to support messaging groups of thousands of users, with strong cryptographic guarantees and seamless performance.
  • Developed both the server-side, in Java using IntelliJ, and the Android mobile app, in Java and C++, glued together with JNI, using Android Studio.
  • Designed and developed a fast (logarithmic) serialization and de-serialization algorithm for cryptographic objects.
  • Created and implemented a group management protocol, ensuring consistent group partnership and metadata across thousands of devices.
  • Developed new client-side caching mechanism to improve message sending speed threefold.
  • Implemented a performant message ordering system, ensuring consistency amongst thousands of devices.
  • Improved the server-side caching system, reducing memory footprint by magnitudes of order, while maintaining the performance.
  • Extended the cryptographic protocol to securely support external group requests.
  • Implemented, designed, and developed the back-end and server and client-side network stack from scratch, using WebSockets for a live video annotation product.
  • Created a new algorithm for live stream synchronization and live stream annotation between server and client.
Technologies: Cryptography, Applied Cryptography, PostgreSQL, Redis, Java, Android, Dropwizard, C++, Distributed Systems, Performance, Video Streaming, Video Processing, Algorithms, SQLite, WebSockets, Spring, Hibernate, APIs, REST APIs, Git, SSL, Back-end, Back-end Development, Back-end Performance, Back-end Architecture, API Integration, Data Structures, Security

Software Engineer Intern

2018 - 2018
YugaByte
  • Designed the semantics and implementation of distributed database indices, which, given the semantics, could be co-located with the database shards.
  • Implemented the read functionality, including algorithms to decide, given the existing indices for the database, which one should be chosen to provide the best read performance.
  • Extended the write functionality to atomically write to both the database and index shards while maintaining compatibility with the Raft protocol.
  • Improved how SELECT queries are processed, making the behavior consistent with Cassandra.
Technologies: Algorithms, Databases, Cassandra, Sharding, C++, Java, Apache Maven, Distributed Systems, Raft Consensus Algorithm

TreeKEM

Integrated the TreeKEM cryptographic protocol into the company's instant messaging app. This cryptographic protocol supports groups of thousands of users, providing strong cryptographic guarantees, a la Signal's, while simultaneously providing scalable performance.

Worked on both the server and Android-based client. The server was written in Java and used Dropwizard over HTTPS and WebSockets to support a RESTful API, PostgreSQL for storage, and Redis for caching. The client-side was written in Java, and I added C++ code which I glued to the main codebase with JNI. I also worked on the front-end, improving UI performance for large groups.

Observed the correctness and performance. The work in correctness has been to ensure that the group remains consistent across the potentially thousands of devices with high performance. I implemented a performant message ordering system, ensuring clients receive messages both fast and in-order, and a group management system atop the cryptographic protocol, ensuring consistent group membership. For performance, my work has been developing new storage and caching algorithms, such as a logarithmic time algorithm to serialize and de-serialize cryptographic objects.

Sahin

A full-stack solution for real-time live stream annotations. I was mainly responsible for the back end, including writing the WebSocket networking code, ensuring at-least-once semantics for Protobuf-encoded message transmission, optimizing video processing code to meet real-time standards, including designing and implementing the video processing pipeline, and developing a GStreamer-based solution for real-time, live feed annotations. I was also partly responsible for developing the OpenCV-based video processing code to detect motion in a live stream and the Qt-based client UI, including the code that would paste the above-mentioned motion annotations onto the live stream.

Ulak Admin Panel

An administration panel solution for an on-site instant messaging application. The solution is meant to provide on-site administrators with useful tools to manage their application usage, including statistics on delivered messages, bandwidth usage, throughput, and clients' behavior. I worked on the back-end and wrote it in Java using Spring and Hibernate. I added various Rest APIs and written database queries to fetch statistics from the messaging server's databases.

ChatClient

https://github.com/OmerCerrahoglu/ChatClient
A terminal-based chat client and server. I designed and implemented the WebSocket-based networking code and JSON-encoded message processing. The application has full support for all the basic functionality of a messaging application, including persistence (done through MongoDB), contact discovery, and support for multiple chats.
2014 - 2018

Bachelor's Degree in Computer Science

MIT - Cambridge, Massachusetts, USA

Libraries/APIs

REST APIs, Protobuf, FFmpeg, OpenCV, Node.js

Tools

Git, IntelliJ IDEA, Apache Maven, GNU Debugger (GDB), Valgrind, Gprof, RabbitMQ

Languages

Java, C++, C, Go, Python

Frameworks

JNI, Hibernate, Dropwizard, Spring, GStreamer, Qt

Storage

PostgreSQL, Redis, SQLite, Databases, Cassandra, MongoDB

Platforms

Visual Studio Code (VS Code), Android, Docker, Kernel Programming

Paradigms

Back-end Architecture, REST

Other

Cryptography, Algorithms, Mathematics, Combinatorics, Geometry, Algebra, Abstract Algebra, Linear Algebra, Discrete Mathematics, APIs, Messaging, Distributed Systems, Operating Systems, Applied Cryptography, Performance, Caching, Linux Kernel, Consensus Algorithms, SSL, Sharding, Raft Consensus Algorithm, Async/Await, Security, Video Streaming, Video Processing, WebSockets, Clang, Back-end, Back-end Development, Back-end Performance, API Integration, Data Structures

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring