Dražen Hudoletnjak

Since 2006 I have been building and maintaining native Windows software in C/C++ and C#, software that has to keep running. Much of my work is finding out why it crashes, leaks or slows down, and fixing it so it stays fixed.

I have been developing Visual Assist for Whole Tomato Software since 2018.

Biangulum is my one-person software business in Bjelovar, Croatia. Working with Biangulum means working directly with me.

What I do

  • Windows software

    Applications, services and components in C, C++ and C#, built on WinAPI, COM and .NET.

  • Debugging and performance

    Crashes, memory and handle leaks, deadlocks and race conditions, and code that is too slow.

  • Developer tools

    Extensions and tools that run inside Visual Studio. I know them from years of work on Visual Assist.

  • Architecture and code review

    Designing new systems, reviewing existing ones, and planning how to modernize legacy code.

Experience

  1. 2018 – now

    Whole Tomato Software

    Independent contractor through Biangulum, remote

    Visual Assist is a Visual Studio extension for C, C++ and C# developers, with more than 1.5 million installs on the Visual Studio Marketplace. It has its own C++ parser and adds navigation, refactoring, code generation and code inspections that keep working on large and legacy codebases, Unreal Engine projects included. We are a small team, and everyone works across the whole product.

    • New features. Taking features from idea to release in a tool that C++ developers use all day.
    • Bug fixes and testing. Reproducing and fixing bugs reported by users, and testing each release.
    • Optimization. Keeping the product fast on very large codebases.
  2. 2014 – 2019

    Envox Lab, Enghouse Interactive

    Senior software engineer, Zagreb

    Development and maintenance of Enghouse CCSP (Contact Center Service Provider), a multi-tenant cloud contact center platform that service providers use to run contact centers for their own customers. It is written mostly in C/C++ on Windows, with parts in C#. Enghouse has offices in several countries, so I worked closely with colleagues abroad.

    • ELSBETH PowerContact integration. Integrating ELSBETH PowerContact, Enghouse's system for outbound call campaigns, into CCSP. I worked on the CCSP side of the integration.
    • Distributed architecture. Components running as Windows services and COM servers across several servers, communicating over TCP/IP and UDP through WinAPI and through Windows messages, with SIP for telephony.
    • Crashes and leaks. Tracking down crashes, memory leaks and handle leaks in multithreaded services that have to keep running for a long time.
    • Optimization. Finding and fixing slow parts of the code.
  3. 2009 – 2014

    Erste&Steiermärkische Bank

    Architect programmer, Bjelovar

    In-house development at one of Croatia's largest banks. I took solutions from start to finish: analyzing user requirements, designing the architecture, then building the software and maintaining it in production. Most of it was Windows services, web services and interfaces between the bank's systems in C#, database design and logic in Oracle PL/SQL, and C and C++ on IBM AIX.

    • Migration from Unisys to IBM AIX. Moving the bank's systems from Unisys and its COBOL to COBOL and Oracle PL/SQL on AIX, and replacing Unisys's proprietary console screens with an ASP web interface. A bank-wide effort I was part of.
    • User authorization system. Development and maintenance of the system every bank employee, including tellers across the branch network, uses to log in to the bank's systems.
    • Cash sorting machines. Connecting several incompatible models of cash sorting machines to the bank's systems. Their RS-232 output reaches the network through Moxa device servers, and my program parses each model's text output and stores the results in the database.
    • Fraud detection. Working with an external company that built fraud detection on Splunk. I analyzed and documented the bank's systems to define what should be monitored, so they could track it in the logs.
    • System programs and utilities. Many smaller programs and tools that kept the bank running day to day.
  4. 2006 – 2009

    Siemens, Biometrics Center

    Software engineer, Zagreb

    Biometric passport and border control software, built when European countries were introducing biometric passports. I wrote components in C++, C, VB6 and C#, and integrated cameras, fingerprint scanners and e-document readers. I was also release and delivery manager for the whole Biometrics Center in Zagreb and Graz, and built the installers for all its projects with InstallShield.

    • Siemens Homeland Security Suite. ActiveX components for capturing faces and fingerprints, reading e-documents and normalizing biometric data to ISO and ICAO standards. Developer, user support, release manager.
    • ePassport Switzerland. The pilot system for issuing Swiss biometric passports. Developer, user support.
    • Siemens ID Center. Access control based on biometric data. Developer, tester.
    • eDoc Switzerland. The system for capturing biometric data and issuing Swiss biometric passports. Developer.
    • Siemens Border Control Platform. Control of border crossings, later also adapted for Kosovo. Developer, quality manager, release manager.
    • eDocument Bulgaria. Biometric data capture, passport issuing and quality control of issued passports in one system. Developer, quality manager, configuration and release manager.

Contact

I work remotely with clients anywhere, in English or Croatian. Write to me about your project.