Speaker

Vaishnavi Venkata Subramanian

Vaishnavi Venkata Subramanian

Software Engineer | Career Mentor| Public Speaker | Community Builder | GDG Organizer

Vancouver, Canada

I am passionate about empowering Women in Technology, a champion of Neurodiversity, Accessibility, Diversity, Equity & Inclusion, and improving culture in the workplace. I love supporting women in technology and working towards creating impact and giving back to their communities in a small way.

Awards

Area of Expertise

  • Information & Communications Technology
  • Humanities & Social Sciences
  • Arts
  • Finance & Banking
  • Environment and Cleantech
  • Health & Medical

Topics

  • Visual Communication
  • Visual Studio / .NET
  • visual thinking
  • Software Development
  • REST API
  • API Documentation

Are you well REST-ed? Best practices for REST API design

When designing a REST API, it's important to follow certain best practices to ensure that your API is efficient, scalable, and easy to use. Here are some key best practices for REST API design:

Use descriptive and meaningful resource URIs: URIs should represent resources and not actions. Use nouns instead of verbs in your URIs to make them self-explanatory. For example, instead of /getUsers, use /users.

Use HTTP methods correctly: Use HTTP methods (GET, POST, PUT, DELETE, etc.) appropriately and consistently. GET is used for retrieving resources, POST for creating resources, PUT for updating resources, and DELETE for deleting resources.

Version your API: Include a version number in your API URIs to allow for future updates without breaking existing clients. For example, /api/v1/users.

Use proper HTTP status codes: Return appropriate HTTP status codes with each response to indicate the success or failure of the request. For example, use 200 for a successful response, 400 for a bad request, and 404 for a resource not found.

Implement proper error handling: Return meaningful error messages and error codes when an error occurs. Include additional details in the response body to help clients understand the issue.

Implement pagination and filtering: When dealing with large collections of resources, provide mechanisms for pagination and filtering to allow clients to retrieve only the data they need.

Use query parameters for optional filtering and sorting: Use query parameters to allow clients to filter, sort, and search resources based on specific criteria. For example, /users?status=active&sort=name.

Ensure security: Implement proper authentication and authorization mechanisms to protect your API from unauthorized access. Use secure communication protocols (HTTPS) to encrypt data transmission.

Provide meaningful documentation: Create comprehensive documentation that describes each endpoint, their purpose, required parameters, and expected responses. Consider using tools like OpenAPI or Swagger to generate API documentation.

Handle versioning and backward compatibility: Plan for future changes by carefully managing versioning and maintaining backward compatibility whenever possible. Avoid making breaking changes that can disrupt existing clients.

Use consistent naming conventions: Follow consistent naming conventions for resources, endpoints, query parameters, and response structures. This improves the overall readability and understandability of your API.

Use proper data formats: Use appropriate data formats such as JSON or XML for request and response payloads. Consider supporting content negotiation to allow clients to request their preferred data format.

Implement proper caching mechanisms: Utilize HTTP caching mechanisms to improve API performance and reduce the load on your servers. Use cache headers such as "Cache-Control" and "ETag" to control caching behavior.

Provide rate limiting and throttling: Implement rate limiting and throttling mechanisms to prevent abuse and protect your API from excessive requests.

Consider HATEOAS (Hypermedia as the Engine of Application State): Design your API to include hyperlinks in responses, allowing clients to navigate the API and discover related resources dynamically.

By following these best practices, you can create a well-designed REST API that is easy to understand, maintain, and consume by clients.

Presented at Electronic Arts, Canada

Art of a Successful AI Startup for Social Good

AI for social good involves leveraging AI's capabilities, such as data analysis, machine learning, natural language processing, and computer vision, to tackle pressing social issues and promote positive change.
It can address biases and discrimination by developing fair and ethical algorithms, detecting and mitigating algorithmic biases, and supporting social justice advocacy initiatives.
This talk presents how to embrace AI and protect make data-driven decisions and protect ecosystems.

Embrace the edge cases - Neurodiversity and Inclusion in Product Design

As with many accommodations historically defined as “edge cases”, planning for neurodiversity affords a series of benefits that include improving our products and services for everyone, not just the design for average and reducing long-term development and maintenance costs.

Making products and services work for neurodiverse customers makes it easier for everyone to engage with your product or service. Alternatively, designing without considering neurodiversity and aiming at average risks alienating part of our market.

Seeing Is Believing, or Is It? Exploring the world of deep fake in AI.

The artificial intelligence (AI) community has been actively grappling with the ethical concerns surrounding deep fake technology, which has the unprecedented ability to create highly convincing videos and images that are virtually indistinguishable from reality.
The implications of this technology are potentially severe, as it could facilitate the spread of false information and be used for malicious purposes.
With the increasing sophistication of deep fake technology, it is becoming increasingly challenging to discern what is genuine and what is not. Therefore, it is crucial that we continue to conduct extensive research and develop powerful tools that can effectively combat this technology and prevent its misuse. By doing so, we can ensure that this technology is used for positive and constructive purposes, rather than for nefarious and harmful ends.

Curb Cut Effect, KISS principles, Essentialism, KonMarification in Software Products from a Neurodiv

In a world inundated with information and constantly overwhelmed, I use the minimalistic, barebones, decluttered approach for software design. Websites tend to have better retention rates when pages spark joy. Less is more is the mantra.

I learn and leverage the power of emerging technologies like AI, deep learning, data analytics, IoT, and Machine
Learning to uncomplicate my life. As a **JEDI** of visual
communications and storytelling, I use these techniques when engineering a backend or creating a wireframe on the front end. Extensive feedback help reduce
miscommunication.
After all, feedback is the breakfast of champions.
This talk is about techniques and tools that can engage users, examples of what not to do in User Interface, and my observation as a software engineer on how gamification and accessibility help give a better experience.

Over time, I have developed an eye for good design. My talk involves use cases of various apps and websites I use often and how it helps me improve my life.

 Integrating visual communication and storytelling in Software Engineering

Visual communication is the practice of using visual elements to get a message across, inspire change, or evoke an emotion. Humans are visually oriented animals with approximately 55% of our cortex is dedicated to processing visual stimuli.

With more than half of our higher processing power dedicated to parsing out what we see, it would only make sense that technical communicators would be concerned with the look of their deliverables, and why the use of photos, videos, and infographics continues to rise in technical communication. Visuals are a great way to storytelling and can break geographical boundaries and reduce misunderstandings. It also helps in information retention and sparks creativity. When harnessed with the right colors to call for attention and highlight important events.

In this presentation I am going to talk about how to create your own visual user manual to highlight your values, mission, your challenges and strengths. It could be to introduce yourself when onboarding in a new company or letting people know how you function or giving your visual elevator pitch.

Some of the examples of my user manual are

https://github.com/vaishnavitv/Assets-and-Publications/blob/main/Visual-Elevator-Pitch/MME-WorkPreferencesV3.jpg

https://github.com/vaishnavitv/Assets-and-Publications/blob/main/Visual-Elevator-Pitch/ManualOfMeWithHTTPStatusCode-Simplified.jpg

Submitted and presented at Google 2023 - North America Connect, Miami FL

Designing for Neurodiversity, Empathy, Human Centric Design and Inclusion in Software Applications

Software Engineering has developed an underlying culture of blame. When code breaks, the first command engineers trigger is "Git Blame" to spot the person who committed the offending line of code. Empathy is lost, and judgment kicks in.

Neurodiversity focuses on non-quantifiable aspects of our being, like how we perceive our environment and the triggers or sensory issues we experience. By not considering neurodiverse users, we risk marginalization and only cater to the central, normal values as peak users (neurotypical) in the Gaussian(bell) curve.

By focusing on the inclusive design principle, the slogan "Nothing about us without us" communicates the idea that no policy should be decided by any representative without the full and direct participation of members of the group(s) affected by that policy and the African proverb "If you want to go fast, go alone . If you want to go far, go together" we create an inclusive software which includes all users.

This concept works similarly to the curb-cut effect, wherein when you design for disabilities, you make things better for everyone.

In an age where the majority is an expert on products or services, how can we keep our equilibrium as engineers and community mentors? Join me as I show several ways to support our communities, keep our integrity as technologists, and calm our users by keeping it minimalistic, barebones, and decluttered, thereby keeping the application simpler, more transparent, and less distracted.

Practicing neuro-inclusive design results in applications accessible to various cognitive and sensory styles. Some of the guidelines include

Aim to visually please, rather than disturb.
Abstain from auto play and music that suddenly appears out of nowhere.
Skip highly vibrant colors.

They are often the first to sense danger akin to canaries in the coal mine, thereby preventing miscommunication and not overwhelming the users.

Implementing empathetic and inclusive design for neurodiverse users brings mindfulness and serenity to software applications, thereby increasing product retention and revenue.

Submitted and selected at Grace Hopper Conference 2023

Bring Swagger and A11yship to API documentation

Good documentation accelerates development and consumption, and reduces the money and time that would otherwise be spent answering support calls. Documentation is part of the overall user experience, and is one of the biggest factors for increased API growth and usage.
By integrating with color coded user interface that maps out the blueprint for APIs it benefits the following ways :
1. Documentation is comprehensible for both developers and non-developers like clients or project managers.
2. Specifications are human and machine readable.
3. Generates interactive, easily testable documentation.

This coupled with A11y-Friendly words and phrases like
1. Use "people with disabilities" instead of "disabled people" to prioritize personhood over disability.
2. Instead of "able-bodied," use "non-disabled" to refer to individuals who do not have disabilities.
3. Use "accessible" instead of "handicap accessible" to describe spaces, buildings, or facilities that are designed for use by all people.
4. Instead of "visually impaired," use "people with visual impairments" or "people who are blind or have low vision" to describe individuals with visual disabilities.
5.Use "screen reader" instead of "reader software" to refer to assistive technology that reads aloud text on a computer screen.
6.Instead of "normal" or "typical," use "average" or "common" to avoid implying that people with disabilities are abnormal.
7. Use "inclusive" or "inclusive design" instead of "accessible design" to emphasize the goal of designing for all users.

It is pertinent to note that language is constantly evolving, and it's important to listen to feedback and preferences from the disability community. Respectful and inclusive language promotes a more accessible and inclusive web environment for all users.

Designing for Neurodiversity, Empathy and Inclusion in Software Applications

Software Engineering has developed an underlying culture of blame. When code breaks, the first command engineers trigger is "Git Blame" to spot the person who committed the offending line of code. Empathy is lost, and judgment kicks in.

Neurodiversity focuses on non-quantifiable aspects of our being, like how we perceive our environment and the triggers or sensory issues we experience. By not considering neurodiverse users, we risk marginalization and only cater to the central, normal values as peak users (neurotypical) in the Gaussian(bell) curve.

By focusing on the inclusive design principle, the slogan "Nothing about us without us" communicates the idea that no policy should be decided by any representative without the full and direct participation of members of the group(s) affected by that policy and the African proverb "If you want to go fast, go alone . If you want to go far, go together" we create an inclusive software which includes all users.

This concept works similarly to the curb-cut effect, wherein when you design for disabilities, you make things better for everyone.

In an age where the majority is an expert on products or services, how can we keep our equilibrium as engineers and community mentors? Join me as I show several ways to support our communities, keep our integrity as technologists, and calm our users by keeping it minimalistic, barebones, and decluttered, thereby keeping the application simpler, more transparent, and less distracted.

Practicing neuro-inclusive design results in applications accessible to various cognitive and sensory styles. Some of the guidelines include

1. Aim to visually please, rather than disturb.
- Abstain from auto play and music that suddenly appears out of nowhere.
- Skip highly vibrant colors.

They are often the first to sense danger akin to canaries in the coal mine, thereby preventing miscommunication and not overwhelming the users.

Implementing empathetic and inclusive design for neurodiverse users brings mindfulness and serenity to software applications, thereby increasing product retention and revenue.

Harnessing Neurodiversity's Potential in Game Development

In the ever-evolving world of game development, diversity has become a watchword for innovation and creativity. It's a sector where the fusion of diverse backgrounds and perspectives can lead to groundbreaking and immersive gaming experiences. However, one facet of diversity that has only recently begun to receive the attention it deserves is neurodiversity. Neurodiversity is the understanding that neurological differences are a natural part of human diversity, encompassing conditions such as autism, ADHD, dyslexia, and more. Harnessing the potential of neurodiversity in game development promises to be a game-changer, unlocking fresh dimensions of creativity, problem-solving, and inclusivity within the industry.

Game development is a multifaceted field, where individuals with a wide range of skills and talents contribute to the creation of virtual worlds. Neurodivergent individuals often possess unique abilities that can be harnessed to enrich the industry. For instance, many people with autism exhibit a remarkable attention to detail and an extraordinary ability to focus intensely on specific tasks. These traits can be invaluable in quality assurance testing, where a meticulous eye for detail is essential to uncovering bugs and ensuring a seamless gaming experience. In this way, neurodiversity not only offers a source of valuable talent but also diversifies the skill sets within game development teams. Similar games like Pacman, tetris, Mario Kart can bring analogy to ND people.

One striking aspect of neurodiversity is its potential to inspire new forms of storytelling and gameplay. Neurodivergent individuals often view the world from a different perspective, and this fresh outlook can lead to innovative game concepts. For example, the game "Sea of Solitude" was developed by a team that included individuals with personal experiences of mental health challenges. The game offers players an emotionally rich journey through the protagonist's struggles with loneliness and self-doubt. By incorporating their unique perspectives, the developers crafted a narrative that resonated deeply with players, showcasing the power of neurodiversity in shaping emotionally engaging gaming experiences.

Moreover, neurodiversity encourages inclusivity in game development. By creating a more welcoming and accommodating environment for neurodivergent talent, the industry sends a powerful message about embracing differences. This not only benefits neurodivergent individuals but also fosters a more inclusive and compassionate community overall. It is essential to provide the necessary support and accommodations, such as flexible work hours or sensory-friendly workspaces, to enable neurodivergent individuals to thrive in the game development field fully.

In conclusion, the potential of neurodiversity in game development is vast and largely untapped. By recognizing and embracing the talents and perspectives of neurodivergent individuals, the industry can foster innovation, create more inclusive gaming experiences, and enrich the creative landscape. Game development has the power to harness the strengths of neurodiversity and set an example for other fields to follow. It is a call to action for the industry to unlock this potential, demonstrating that by celebrating diversity, we can create a more vibrant, engaging, and truly inclusive world of gaming.

DevFest Vancouver 2023

November 2023 Vancouver, Canada

Google Developer Group Vancouver - DevFest 2022

November 2022 Vancouver, Canada

Vaishnavi Venkata Subramanian

Software Engineer | Career Mentor| Public Speaker | Community Builder | GDG Organizer

Vancouver, Canada