Marc Haisenko

Programming Languages

  • Swift
  • Objective-C
  • C
  • Go
  • TypeScript
  • Ruby

Web and Databases

  • PostgreSQL
  • MySQL
  • REST
  • GraphQL
  • WebSockets
  • HTML
  • CSS

iOS and macOS

  • SwiftUI
  • AppKit
  • UIKit
  • CoreData
  • CoreText
  • UserNotifications
  • AVKit
  • Security.framework
  • Network.framework
  • Network Extensions
  • System Extensions

Linux and Systems Programming

  • Embedded Linux
  • Linux distribution development
  • Cross-compilation
  • POSIX and SUS system programming
  • Server development

Network Protocols and Analysis

  • IPv4
  • IPv6
  • VPN protocols
  • IKEv1
  • IKEv2
  • SIP and VoIP
  • Protocol analysis with Wireshark

Security

  • TLS
  • OpenSSL
  • mbedTLS
  • Security.framework
  • Keychain
  • End-to-end encryption

Development Workflows

  • Git
  • Mercurial
  • Subversion
  • CVS
  • CI/CD
  • TDD
  • Release Management

I'm a software developer based in Munich, Germany, with more than 25 years of professional experience. My strongest skills are in iOS and macOS development, alongside a broad background in backends, networking and Linux. Please contact me if you have questions or would like to discuss a job opportunity. I can also provide a full project list with details of my responsibilities and the technologies used.

My iOS and macOS work includes VPN clients, a newsletter editor and mailing service, media applications for TV guides, streaming and reception, and telephony apps. Most of these applications are still available today. I have also developed associated server backends and databases, usually with Go and PostgreSQL, and worked on user interfaces for industrial projects.

Customer support has been a substantial part of my work. I have provided direct technical support to customers and B2B support to partner and customer companies. My work has also included technical documentation and release management.

While implementing various VPN protocols like IKEv1, IKEv2, and several SSL-based vendor protocols, I used OpenSSL and mbedTLS for encryption (AES, etc.), hashing (SHA-2, etc.) and key exchange (Diffie-Hellman). I also designed and implemented end-to-end encrypted storage of connection configurations. For a VoIP appliance, I worked extensively with SIP, adapting existing components and writing fixes.

My Linux work included developing an internal distribution and cross-compilation build system for several appliances, for which I was also the lead developer. The platform was licensed to another company and supported the same software on ARM, PowerPC and x86. I configured kernels, integrated existing patches and read kernel source to understand how components worked.

Earlier professional work also involved C++, Java, C# and x86 assembly. I started programming as a child and still enjoy experimenting with languages and low-level development. My personal programming experiments include Rust and assembly for ARM64 and M68000. I have published documentation on retro hardware programming and enjoy exploring how operating systems, compilers and linkers work.