persona-generator
A header-only C++23 library that composes the other generators into complete fictional characters: a country, a city, a birth, a body, a name, interests, an occupation and a personality, each conditioned on what was drawn before.
A quick overview of who I am and what I work with.
I'm a senior software engineer based in Porto Alegre, Brazil, working at AEL Sistemas in the defense and aerospace sector. I hold a degree in Computer Science from the Federal University of Rio Grande do Sul (UFRGS).
I have experience leading development teams, designing software architectures, interfacing directly with clients, and delivering products across domains ranging from GIS data processing and hardware automated testing to AI-powered data analysis tools. I enjoy building clean APIs, working with parallel programming, and contributing to open-source in my spare time.
Header-only C++23 libraries for procedural generation — people, families, places, addresses, weather, vehicles, phone numbers, emails, devices, identity documents, bank accounts and cards, user records, personalities, interests, occupations, and entities.
A header-only C++23 library that composes the other generators into complete fictional characters: a country, a city, a birth, a body, a name, interests, an occupation and a personality, each conditioned on what was drawn before.
A header-only C++23 library for generating real-world first names and surnames from 105 cultures, and composes full names by each culture's convention (family name first, two surnames, patronymics).
A header-only C++23 library for generating nicknames, supporting name-based and custom-word-based nickname generation.
A header-only C++23 library for generating demographically plausible birthdays using UN WPP 2024 population data and seasonal patterns.
A header-only C++23 library for generating physical characteristics — height, weight, eye/hair color, blood type — using population statistics.
A header-only C++23 library for religion, hobbies and favourite film, game, book and music genres, shaped by a person's country, age and sex — measured from Eurostat time-use surveys where data exists.
A header-only C++23 library for procedural personality generation — traits from a weighted catalogue with conflicts, synergies and Big Five axes.
A header-only C++23 library for employment status, education and jobs by country, age and sex — measured from ILO labour force statistics where data exists.
A header-only C++23 library for believable families around a person: parents and grandparents, siblings and half-siblings, partners, stepparents, children and grandchildren, with dates and names drawn from each country's demography.
A header-only C++23 library for generating random cities with population-weighted selection from GeoNames data.
A header-only C++23 library for generating random countries with comprehensive metadata — geography, politics, culture, and telecom.
A header-only C++23 library for postal addresses with real streets by place from OpenStreetMap, laid out in each country's format for 250 territories.
A header-only C++23 library for daily and hourly weather at any place on land and any date: temperatures, rain, snow, thunder, cloud, wind and the sun, drawn around the 1991-2020 climate normals with believable wet and dry spells.
A header-only C++23 library for cars that fit their country and date: a make sold there, a model built in its model year, a fuel as common as it was that year, a licence plate in the format issued on the registration date and a VIN with a valid check digit, with a safe option for plates and VINs nobody holds.
A header-only C++23 library for phone numbers that are valid in each country's numbering plan, drawn from libphonenumber's ranges, with a safe option that uses the numbers regulators reserve for fiction.
A header-only C++23 library for email addresses in each country's style from a name, nickname and birth year, with the providers people use there and a safe option with the reserved example domains.
A header-only C++23 library for devices whose parts agree: a model on sale at the date, an OS version it runs, a browser for it, the real user agent and client hints that combination sends, its screen, and an IP address registered in the country, with a safe option for documentation addresses.
A header-only C++23 library for identity numbers and documents that fit a person and a date: national numbers for 63 countries, built from the birth date, sex, birthplace and names where the format encodes them, and passports and identity cards valid on the date with an ICAO 9303 machine-readable zone. Test data, with a safe option.
A header-only C++23 library for a person's bank accounts and payment cards, consistent with the person, the country and the date: IBANs and national account forms with their check digits, the country's banks and currency, and cards with the right network, length, Luhn digit and a plausible expiry. Test data, never for live payment systems.
A header-only C++23 library for synthetic user records: a person with a username, email, phone and address that agree on the country, plus account details such as password, sign-up time, platform and locale, and on request national numbers, documents, bank accounts and cards. Also on npm as @dasmig/user.
A header-only C++23 library for generating entities with extensible, user-defined components. Supports EnTT and Flecs adapters.
Professional background and education.
Led a software team building a desktop application for automated hardware testing. Defined the product roadmap as product owner, interfaced directly with the client, and designed the system architecture: a microservices back-end in .NET with a front-end running in Electron.
Joined as an intern and grew into lead developer. Built and optimized C++ components, authored custom GDAL drivers, engineered requirements, designed software modules, and established E2E and unit testing practices for the team. Interfaced with the client and participated in on-site integration trips.
Developed a C# library for low-level TCP communication over a custom ICD, handling message serialization with a clean, developer-friendly API. Integrated an AI Agent into UAV data analysis tools with database connectivity and a RAG pipeline for indexing flight data and surfacing analytical insights.
Porto Alegre, Brazil.
Feel free to reach out for collaborations, open-source contributions, or just to say hi.