Sérgio Barriviera Miguel

Hands-On Software Architect

Porto Area, Portugal

About me

IT professional with 20+ years of hands-on experience in the field of software development.

Versatile software architect and developer with a passion for new challenges and crafting innovative solutions, leveraging a deep understanding of architecture principles to drive the development of robust and scalable software applications.

Active in the fields of architecture, design, requirements analysis, data modeling, prototyping, full-stack web and mobile development. An eternal learner that really loves what he does.


Areas of Interest

  • Optimizing and Accelerating Software Development
  • Cloud-Native Software Solutions
  • Blockchain and Decentralized Applications
  • Gamification in Finance and Banking
  • Machine Learning and Robotic Process Automation

Achievements and Certifications

  • Certified Java Architect (JEE5, JEE6)
  • AWS Solutions Architect
  • Certified Rational Unified Process (RUP)
  • Automation Anywhere Certified Advanced RPA Professional
  • Certified Scrum Master
  • Member of IEEE

You can find additional information on my LinkedIn profile.

Without right requirements and a good design, programming is the art of adding bugs to an empty text file.

Louis Srygley

Line of
Research

Accelerating Software Development

Numerous engineering processes exist in the industry, ranging from waterfall to agile methodologies. However, in practice, it is rare to find consistent adherence to a single methodology. This is not because it is inherently difficult or overly ceremonial, but rather because the variations primarily stem from the core business of each company and the desired time-to-market goals they aim to achieve.

Motivated by this scenario, I've been hard studying how to avoid common errors by proposing a new a new development approach, as presented below.

Prepare the foundation and use the right tools

Aligning the software development process with business goals and objectives

Identifying application structure and behavior: ICONIX is suitable for simpler projects, while Design Thinking is best suited for more innovative projects. Additionally, Domain-driven design can help break down complexity, explicitly identify boundaries, and establish a well-defined project design.

Don't start from scratch: Utilize an existing project that can offer the necessary level of customization aligned with your application requirements. This is where an acceleration framework comes into play, promoting agility and productivity by combining methods and artifacts for the majority of modules found in an enterprise application.

Framework Overview

Software Development Process Phases

Acceleration will promote positive results when considered each phase of the process

Without a well-defined software development process, it is challenging to produce software with good quality and predictable schedules. Regardless of the approach used, whether it's waterfall or agile, certain essential tasks must be completed, such as analysis, design, coding, and testing. Application Tests and Deployment have not been taken into consideration so far. It is a work in progress.

An acceleration framework can save you time on architectural design decisions, as it offers pre-configured setups for certain non-functional requirements, such as prioritizing data availability over consistency. Additionally, it enables time savings through the utilization of common libraries and pre-implemented base functions that are readily available.

Essentially, an acceleration framework consists of Acceleration Steps and Acceleration Artifact, which are typically included in a Starter Project Template. These components are utilized in each phase of the software development process.

Process Overview

Promote and Reuse Software Assets

API, Web, Mobile and Integration

An acceleration framework can be applied to all modules of your enterprise applications. The benefits are particularly significant when considering the utilization of microservices and DevOps practices, as they enable rapid feedback on the application's status.

Avoid mistakes and work smart: Common features have been evolving for years, and it is beneficial to leverage them instead of attempting to reinvent the wheel repeatedly.

API, Web and Mobile

Use Case: Android Application

Android Starter Application Project full article

Accelerating Analysis and Design phases.

Accelaration Mobile Application Development

Accelerating Implementation and Test phases.

Accelaration Mobile Application Development

Personal
Projects

Android Starter Application

Comprehensive Android Starter Kit Offering Data Synchronization and Pre-Configured Common Features
Architectural Scope
  • Event-driven architecture and reactive programming
  • Data Synchronization options: Server-First or Local-First

Common Features
  • User Interface: Splash Screen, OnBoarding, Login and Home with Drawer Menu
  • Navigation Handler: Activities and Fragments Manipulation
  • Sample Customer CRUD Operation
Explore Project Details

Engage Platform

Connects smaller tasks to larger goals with Gamification

Leveraging the power of gamification to drive user participation and motivation. Engage API is a comprehensive product that offers a set of endpoints specifically designed to provide gamification features out of the box.

With seamless integration capabilities, these endpoints can be easily incorporated into your application, enabling you to enhance user engagement and motivation through gamification techniques.


DevOps Lab

Continuous Integration, Continuous Deployment, and Application Monitoring

A Local Environment Setup and Simple Demo Project that showcases a comprehensive CI/CD implementation, providing an overview of the entire CI/CD process. It includes application monitoring using tools such as Prometheus, Splunk, and Grafana.

DevOps Lab

BrandConnect: Mobile White Label Platform

Empowering Businesses with Customizable Mobile Engagement

Customizable mobile application solution that allows businesses to create and distribute branded, customized versions of the app to their clients or users. It provides a flexible architecture, modular components, and customization options, enabling efficient rebranding and tailored user experiences without the need for extensive development efforts.

The platform empowers users to easily manage app content, configure settings, and incorporate their branding elements, while the underlying technology handles the complexities of app development and deployment.


Application Modules
  • Mobile Application: Hybrid approach using React Native
  • Backend: Serverless event-driven architecture
  • Repositories: DynamoDB, MySQL, and RedShift
  • Streaming: Kinesis integrated with SNS, SQS, Lambda, and Step Functions
  • ML & Analytics: SageMaker, Spark, and Jupiter Notebook

Application Strategy
  • iOS Application: Using targets and custom build pipeline single codebase
  • Android Application: Using flavours and custom build pipeline single codebase
  • Security: Distinct User Pools and IAM selected according to App ID
  • Repositories, Streaming, and Analytics: Segregated by App ID
  • Cloud Provider: AWS
This project is under development

Looking to turn your ideas into reality?

API, Web and Mobile

Contact me at [email protected], and I'll assist you in bringing them to fruition.