Mustafa Sen, Developer in Ankara, Turkey
Mustafa is available for hire
Hire Mustafa

Mustafa Sen

Verified Expert  in Engineering

Software Developer

Ankara, Turkey

Toptal member since December 3, 2020

Bio

Mustafa is a senior full-stack developer with 10 years of experience in diverse business domains, technology stacks, and programming languages. He has worked in the fintech, telecom, and defense industries, and his expertise includes full-stack development in C#, .NET Framework, .NET Core, ASP.NET MVC, Linux, and Angular. Mustafa is a passionate problem solver who learns new business domains, technologies, and programming languages quickly and delivers outstanding solutions to customers.

Portfolio

A Toptal Client (Self-Service Data Analytics)
C++, C++11, C++14, CMake, GitLab CI/CD, Git, Test-driven Development (TDD)...
Dünya Varlık Yönetim A.Ş.
ASP.NET, TFS, Jenkins, Azure DevOps, Git, Microsoft SQL Server...
Aselsan
Google, Sanitizers, Standard Template Library (STL), Lua, Audio Codecs...

Experience

  • .NET - 9 years
  • C# - 9 years
  • Microsoft SQL Server - 7 years
  • C++14 - 3 years
  • TypeScript - 2 years
  • AngularJS - 2 years
  • Angular - 2 years
  • .NET Core - 2 years

Availability

Part-time

Preferred Environment

Jira, Azure DevOps, Jenkins, TFS, Visual Studio Code (VS Code), Slack, Windows, Git, Visual Studio, Linux

The most amazing...

...thing I've developed was FastPay, a mobile payment application that was a pioneer at that time and is still popular among payment methods in Turkey.

Work Experience

C++ Developer

2021 - PRESENT
A Toptal Client (Self-Service Data Analytics)
  • Developed new features for an ODBC-based service in C++, running on Windows and Linux.
  • Integrated services developed in C++ into a Windows desktop application in .NET via the native interoperability interface of the .NET Framework.
  • Resolved customer and in-house defects for the C++ back end of the application.
Technologies: C++, C++11, C++14, CMake, GitLab CI/CD, Git, Test-driven Development (TDD), ODBC, C#, C#.NET WinForms

Senior Software Engineer

2019 - 2021
Dünya Varlık Yönetim A.Ş.
  • Refactored and maintained a legacy codebase consisting of C#, T-SQL, JavaScript, HTML, and CSS for this asset management firm.
  • Designed and developed a document management system in .NET MVC and AngularJS and migrated the documents in the shared directory to the new system.
  • Ported the company's legacy business portal written in AngularJS and other third-party libraries to Angular 9. This reduced the complexity in the front-end codebase, fragility, and maintenance cost and increased the application's performance.
  • Participated in architectural decision-making processes to make a monolithic application into several functional, self-deployable services.
Technologies: ASP.NET, TFS, Jenkins, Azure DevOps, Git, Microsoft SQL Server, Network Protocols, Web Development, Distributed Software, Distributed Systems, .NET, REST APIs, HTML, API Integration, APIs, C#.NET, Angular, AngularJS, .NET Core, ASP.NET MVC, Test-driven Development (TDD), SignalR

Senior Software Engineer

2012 - 2018
Aselsan
  • Designed and developed crucial parts of the switching subsystem for professional mobile radio systems, including a real-time voice switching service, a resource management framework, and a process scheduler in C# and C++.
  • Implemented a transcoder library that can transcode voice frames of G711, G729, IMBE, AMBE+2, and ACELP codecs in C#.
  • Guided the team while migrating the development environment to C++11, C++14, and Linux.
  • Created and developed distributed systems running over unreliable, low-bandwidth networks.
  • Designed and developed high-performance and low-latency systems in both C# and C++.
Technologies: Google, Sanitizers, Standard Template Library (STL), Lua, Audio Codecs, Microsoft SQL Server, Internet Group Management Protocol (IGMP), IP Multicast, C++11, C++, Network Protocols, Professional Mobile Radio (PMR), SIP, Linux IPC, Distributed Software, Distributed Systems, Resource Management, Thread Scheduling, LLVM, GCC, .NET, API Integration, APIs, C#.NET, TCP/IP, UDP, Transmission Control Protocol (TCP), Tcpdump, Wireless Networking, Real-time Systems, Socket Programming, ASN.1, SQL, RTP, Networking, SNMP, Session Initiation Protocol (SIP), Valgrind, C++14, Linux, Windows Presentation Foundation (WPF), Windows Services, C#, Google Test, ODBC, C, Test-driven Development (TDD)

Software Engineer

2012 - 2016
Aselsan
  • Built a packet rescheduler application in C# that captures voice packets on the wire using Npcap driver, buffers, reschedules, and resends them to the destination, transforming high-jitter voice traffic into steady traffics of low jitter.
  • Provided guidance to version the codebase with modern code-versioning software (SVN).
  • Co-developed distributed packet switching systems running on PC in C# and .NET Framework.
  • Developed an alarm monitoring application that tracks hardware equipment and software alarms via SNMP and displays them. The application was written in C#, and the data was stored in Microsoft SQL Server.
Technologies: Standard Template Library (STL), Lua, C++, Audio Codecs, Npcap, pcap, Microsoft SQL Server, Internet Group Management Protocol (IGMP), IP Multicast, Network Protocols, Professional Mobile Radio (PMR), Linux IPC, Windows Services, SNMP, RTP, SIP, Session Initiation Protocol (SIP), SQL, Socket Programming, Wireless Networking, UDP, TCP/IP, API Integration, APIs, .NET, Distributed Software, Distributed Systems, Windows Presentation Foundation (WPF), C#.NET, C#.NET WinForms, C#

Software Engineer

2011 - 2012
Intertech
  • Developed a mobile payment application (FastPay) for Android, iOS, and Windows Phone devices, using Java, Objective-C, and C#, respectively.
  • Built an application (Denizbank Sıramatik) to take queue tickets at a bank branch for Android and iOS devices.
  • Used Eclipse Memory Analyzer to resolve memory performance issues in the Android app.
Technologies: C#.NET, Subversion (SVN), Visual Studio, Xcode, Eclipse IDE, Objective-C, Java, C#, Android, iOS

Rewriting a Legacy Dashboard Application in Angular

A dashboard application written in AngularJS and .NET MVC that provides page navigation, authentication, and user authorization and has call-taker application integration functionalities. Vital issues and significant technical depth had increased the application's maintenance costs and discouraged people from modifying the codebase.

I rewrote the application in Angular 9 as a single-page application, along with one of the PrimeNG templates in the new version. This implementation improved maintenance costs, testability, and performance, and the project encouraged others to work on the codebase.

Document Management System

A web-based application written in C #, .NET MVC, and AngularJS to manage the company's internal documents. The system stores documents, tracks versions, and controls access according to the user roles. I designed the system to be scaled horizontally if needed.

Before this application, a shared network directory stored the documents. Users saved documents to the directory and accessed them there without any access control, versioning, or auditing. Also, the documents could not be accessed from outside the network.

After developing the application, documents were stored in the shared directory and other data was migrated to the new system. This application enabled users to access documents from anywhere via a web browser and their usernames and passwords. This also enabled the IT staff to monitor user access and any inappropriate usage and report them to supervisors. Finally, this prevented document losses and security breaches.

Now, millions of documents are stored in the system, and several thousand company employees use it.

Distributed Database

A distributed database system running over unreliable and low-bandwidth networks. It provides eventual consistency but is always available to all nodes in the mesh, and any node in the mesh has a backup. When there is no network partition, all nodes are synchronized, and all changes are sent to the other nodes by the center.

However, if there is a network partition, in other words, some nodes do not have a connection to the center, and local changes are stored separately in the nodes. When a connection is established to the center, such local changes are synchronized with the center. Then the center synchronizes these changes to the other nodes. With this strategy, all nodes become available to their clients, even when they are inconsistent.

I designed the system to operate as geographically distributed nodes in unreliable networks. I implemented the system in modern C++ (C++11 and C++14) to run in Linux and used Microsoft SQL Server underneath to store actual data, and I designed the system to also use IP multicasting to share data among the nodes.

Alarm Monitoring Application

An application to track and visualize network equipment, software, and hardware alarms. The system has several protocols to track alarms, such as SNMP to read alarms and receive network equipment and radio-link device traps.

I developed the system in two parts: a WPF-based desktop application to visualize and manage the alarms, written in C#, and a Windows service to track and save the alarms in the background, also written in C#.

Development of Switching Systems for Professional Mobile Radio Systems

A switching system for a professional mobile radio (PMR) system that handles control signaling with radio equipment, real-time switching of voice frames of radio equipment, and the transmission of short message service (SMS) packages.

While co-developing this switching system for DMR, APCO25, and TETRA standards, I focused on implementing push to talk (PTT) service (both group and unit to unit calls), SMS, packet data service, and management of RF resources. The software was first developed in C# and .NET Framework to run as a Windows service. A few of the services were reimplemented in C++ to run in Linux to meet additional performance requirements.
2007 - 2012

Bachelor's Degree in Electrical and Electronics Engineering

Boğaziçi University - İstanbul, Turkey

OCTOBER 2022 - OCTOBER 2025

AWS Certified Solutions Architect

Amazon Web Services

OCTOBER 2021 - OCTOBER 2024

AWS Certified Cloud Practitioner

Amazon Web Services

APRIL 2015 - PRESENT

Linux Application Development

YeniHayat Information Technologies

Libraries/APIs

REST APIs, pcap, Npcap, Standard Template Library (STL), Linux API, PrimeNG, ODBC, SignalR

Tools

Subversion (SVN), Visual Studio, Tcpdump, GCC, C#.NET WinForms, Git, Slack, TFS, Jenkins, Eclipse IDE, Xcode, Valgrind, Jira, GitLab CI/CD, GitLab, CMake, SonarQube, Amazon Elastic Container Service (ECS), Amazon Simple Notification Service (SNS), Amazon Simple Queue Service (SQS), AWS ELB, Amazon CloudWatch

Languages

C#, TypeScript, C++14, C++, C#.NET, C++11, JavaScript, Java, SQL, HTML, C, Objective-C, Lua

Frameworks

.NET, .NET Core, Angular, Windows Presentation Foundation (WPF), ASP.NET MVC, AngularJS, ASP.NET, Catch2, Google Test

Paradigms

Socket Programming, Real-time Systems, Azure DevOps, Test-driven Development (TDD), ASN.1

Platforms

Windows, Linux, iOS, Android, Alteryx, Docker, Amazon EC2, AWS Lambda, Amazon Web Services (AWS), Visual Studio Code (VS Code)

Storage

Microsoft SQL Server, Amazon S3 (AWS S3)

Other

Engineering, Software Design, Software Development, Networking, TCP/IP, UDP, Windows Services, API Integration, APIs, Transmission Control Protocol (TCP), Wireless Networking, LLVM, Thread Scheduling, Resource Management, Distributed Systems, Distributed Software, Network Protocols, Professional Mobile Radio (PMR), Digital Media, TETRA, Web Development, IP Multicast, Internet Group Management Protocol (IGMP), Audio Codecs, Session Initiation Protocol (SIP), SNMP, RTP, SIP, Linux IPC, Amazon RDS, Cloud, Sanitizers, Google

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