AviraAvira: Programming the account, licensing and payment journey
Programmer · My Account & LicensingJune 2018 – September 2019
Developed PHP account and licensing APIs, payment integrations and internal workflows, while improving SQL performance, caching and the development environment.
Context & constraints
My Account & Licensing was part of Avira Customer Connect. Its software sat across user accounts, license generation, payment providers, upgrades and renewals. My work was hands-on programming: extend APIs and integrations, investigate application and SQL behavior, build supporting workflows and help colleagues work effectively in the development environment.
- Account, licensing and payment flows needed to work across several provider integrations, including Cleverbridge, Google and Apple.
- Slow user actions required investigation across PHP application logic, SQL queries and caching rather than a single-layer optimization.
- The work included existing MySQL 5.6 behavior and support for a move to MySQL 5.7.
- Internal operations and email handling added Kafka, Selligent and S3 integration responsibilities alongside the primary API work.
My contribution
- Developed and enhanced account/licensing APIs supporting license generation, account security, payments, upgrades and renewals.
- Worked on purchase and payment integrations involving Cleverbridge, Google, Apple and other providers.
- Profiled PHP application behavior and complex SQL, rewrote MySQL queries and added caching to improve specific slow actions. Supported the MySQL 5.6-to-5.7 migration.
- Implemented Kafka read/write integration for internal operations.
- Integrated Selligent templates and API calls for sending email, and built S3 email archiving using EC2 instance-profile authentication.
- Improved Docker development environments and helped colleagues troubleshoot debugging, integration and local-environment problems.
Technology context PHP 7 · Python · MySQL 5.6/5.7 · Memcached · RabbitMQ · Kafka · Docker · AWS S3 · EC2 instance profiles · Selligent
Historical integration map
The software and integration areas I worked on, grouped around the account and licensing application.
Components & responsibilities
- Account & licensing APIs
- PHP application work for accounts, licenses, security, upgrades and renewals.
- Purchase & payment providers
- Integration work involving Cleverbridge, Google, Apple and other providers.
- MySQL & caching
- Query profiling, rewrites, caching and MySQL 5.6-to-5.7 migration support.
- Kafka integration
- Read/write integration for internal operations.
- Email integration
- Selligent templates and API integration.
- S3 email archive
- Archiving with EC2 instance-profile authentication.
Connections & flow
- Account & licensing APIs to Purchase & payment providersPurchase/payment integration
- Account & licensing APIs to MySQL & cachingApplication data & performance
- Account & licensing APIs to Kafka integrationInternal-operation integration
- Account & licensing APIs to Email integrationEmail delivery integration
- Account & licensing APIs to S3 email archiveEmail archiving
Historical responsibility map; arrows identify integration areas rather than a purchase or renewal sequence. The S3 archive used EC2 instance profiles.
Decisions & trade-offs
Investigate performance across code, queries and caching
An expensive action can combine application behavior, database work and repeated reads.
Trade-off: Query changes and caching both need correctness and freshness considered alongside response time.
Use instance-profile authentication for S3 archiving
The archiving workflow used the EC2 runtime’s assigned identity for S3 access.
Trade-off: The application’s access then depends on the runtime role and its permissions being configured correctly.
Improve the development environment alongside product code
Debugging and integration work depend on a usable local environment.
Trade-off: Environment maintenance competes with feature work, but affects the team’s ability to diagnose and deliver changes.
Outcome & operation
Delivered account/licensing and integration changes, improved the responsiveness of specific slow actions through SQL and caching work, supported the database upgrade and made local development easier to troubleshoot. The role combined core PHP programming with the surrounding data, messaging and operational concerns.
Notes & references
- Professional experience
- Programming work in Avira Romania’s My Account & Licensing area, June 2018 to September 2019.
- Performance improvements
- SQL and caching changes improved specific slow application actions.