Amanda Ellsworth, Author at ProdSens.live https://prodsens.live/author/amanda-ellsworth/ News for Project Managers - PMI Sun, 19 May 2024 01:20:43 +0000 en-US hourly 1 https://wordpress.org/?v=6.5.5 https://prodsens.live/wp-content/uploads/2022/09/prod.png Amanda Ellsworth, Author at ProdSens.live https://prodsens.live/author/amanda-ellsworth/ 32 32 AWS Cloud Cost Optimization https://prodsens.live/2024/05/19/aws-cloud-cost-optimization/?utm_source=rss&utm_medium=rss&utm_campaign=aws-cloud-cost-optimization https://prodsens.live/2024/05/19/aws-cloud-cost-optimization/#respond Sun, 19 May 2024 01:20:43 +0000 https://prodsens.live/2024/05/19/aws-cloud-cost-optimization/ aws-cloud-cost-optimization

Challenge: Reduce the AWS Cloud Operating cost without compromising any existing feature Steps: Switch to 8×5 from 24×7…

The post AWS Cloud Cost Optimization appeared first on ProdSens.live.

]]>
aws-cloud-cost-optimization

Challenge: Reduce the AWS Cloud Operating cost without compromising any existing feature

Steps:

  1. Switch to 8×5 from 24×7 in Dev and QA Environments​
  2. Use the correct size of Serves in Dev and QA based on the load​
  3. Avoid using same server configuration like Prod in Dev and QA​
  4. Create Lifecycle rules and auto-shutdown feature for Servers ( SQL Analytics, SageMaker, S3 …. )​
  5. Minimise Operational Maintenance activities

The post AWS Cloud Cost Optimization appeared first on ProdSens.live.

]]>
https://prodsens.live/2024/05/19/aws-cloud-cost-optimization/feed/ 0
Secure your API with these 16 Practices with Apache APISIX – part 1 https://prodsens.live/2024/02/22/secure-your-api-with-these-16-practices-with-apache-apisix-part-1/?utm_source=rss&utm_medium=rss&utm_campaign=secure-your-api-with-these-16-practices-with-apache-apisix-part-1 https://prodsens.live/2024/02/22/secure-your-api-with-these-16-practices-with-apache-apisix-part-1/#respond Thu, 22 Feb 2024 09:20:27 +0000 https://prodsens.live/2024/02/22/secure-your-api-with-these-16-practices-with-apache-apisix-part-1/ secure-your-api-with-these-16-practices-with-apache-apisix-–-part-1

A couple of months ago, I stumbled upon this list of 16 practices to secure your API: Authentication…

The post Secure your API with these 16 Practices with Apache APISIX – part 1 appeared first on ProdSens.live.

]]>
secure-your-api-with-these-16-practices-with-apache-apisix-–-part-1

A couple of months ago, I stumbled upon this list of 16 practices to secure your API:

  1. Authentication 🕵 – Verifies the identity of users accessing APIs.
  2. Authorization 🚦 – Determines permissions of authenticated users.
  3. Data Redaction 🖍 – Obscures sensitive data for protection.
  4. Encryption 🔒 – Encodes data so only authorized parties can decode it.
  5. Error Handling ❌ – Manages responses when things go wrong, avoiding revealing sensitive info.
  6. Input Validation & Data Sanitization 🧹 – Checks input data and removes harmful parts.
  7. Intrusion Detection Systems 👀 – Monitor networks for suspicious activities.
  8. IP Whitelisting 📝 – Permits API access only from trusted IP addresses.
  9. Logging and Monitoring 🖥 – Keeps detailed logs and regularly monitors APIs.
  10. Rate Limiting ⏱ – Limits user requests to prevent overload.
  11. Secure Dependencies 📦 – Ensures third-party code is free from vulnerabilities.
  12. Security Headers 📋 – Enhances site security against types of attacks like XSS.
  13. Token Expiry ⏳ – Regularly expiring and renewing tokens prevents unauthorized access.
  14. Use of Security Standards and Frameworks 📘 – Guides your API security strategy.
  15. Web Application Firewall 🔥 – Protects your site from HTTP-specific attacks.
  16. API Versioning 🔄 – Maintains different versions of your API for seamless updates.

While it’s debatable whether some points relate to security, e.g.,, versioning, the list is a good starting point anyway. In this two-post series, I’d like to describe how we can implement each point with Apache APISIX (or not).

Authentication

Authentication is about identifying yourself with a system. It requires a proof.

Apache APISIX provides two kinds of authentications: internal, with APISIX checking credentials, and external, when delegated to a third party. All authentication mechanisms work via plugins. Here’s the current list of available authentication plugins.

Type Name Description
Internal key-auth Authenticate via an HTTP Header
basic-auth Relies on a browser callback
jwt-auth Uses a JWT token to authenticate
External authz-keycloak Delegates to Keycloak
authz-casdoor Delegates to Casdoor
wolf-rbac Delegates to wolf
openid-connect Delegates to an OpenID Connect-compliant third-party
cas-auth Delegates to a CAS-compliant third-party
hmac-auth Delegates to an HMAC-compliant third-party
authz-casbin Delegates to a Lua Casbin-compliant third-party
ldap-auth Delegates to an LDAP
opa Delegates to an Open Policy Agent endpoint
forward-auth Forwards the authentication to a third-party endpoint

APISIX assigns authenticated calls to a consumer. For example, we can create a consumer authenticated with the key-auth plugin:

consumers:
  - username: john
    plugins:
      key-auth:
        key: mykey

Every request containing the header apikey with the key mykey will be assigned to the consumer john.

Authorization

Authentication alone isn’t enough. Once a request to a URL has been authenticated, we need to decide whether it’s allowed to proceed further. That’s the role of authorization.

Authorization […] is the function of specifying access rights/privileges to resources, which is related to general information security and computer security, and to access control in particular. More formally, “to authorize” is to define an access policy.

Authorization on Wikipedia

Apache APISIX implements authorization mainly via the consumer-restriction plugin. Here’s the most straightforward usage of the consumer-restriction plugin:

consumers:
  - username: johndoe                     #1
    plugins:
      keyauth:
        key: mykey

routes:
  - upstream_id: 1                        #2
    plugins:
      keyauth: ~
      consumer-restriction:
        whitelist:                        #3
          - johndoe               
  1. Define a consumer
  2. Reference an already existing upstream
  3. Only allows defined consumers to access the route

Most real-world authorization models avoid binding an identity directly to a permission. They generally bind a group (and even a role) so that it becomes easier to manage many identities. Apache APISIX provides the consumer group abstraction for this.

consumer_groups:
  - id: accountants                      #1

consumers:
  - username: johndoe
    group_id: accountants                #2
    plugins:
      keyauth:
        key: mykey

routes:
  - upstream_id: 1
    plugins:
      keyauth: ~
      consumer-restriction:
        type: consumer_group_id          #3
        whitelist:
          - accountants               
  1. Define a consumer group
  2. Assign the consumer to the previously defined consumer group
  3. Restrict the access to members of the defined consumer group, i.e., accountants

Input validation

With Apache APISIX, you can define a set of JSON schemas and validate a request against any of them. My colleague Navendu has written an exhaustive blog post on the subject: Your API Requests Should Be Validated.

I think it’s not the API Gateway’s responsibility to handle request validation. Each upstream has specific logic, and moving the validation responsibility from the upstream to the Gateway ties the latter to the logic for no actual benefit.

In any case, the checkbox is ticked.

IP Whitelisting

Apache APISIX implements IP Whitelisting via the ip-restriction plugin. You can define either regular IPs or CIDR blocks.

routes:
  - upstream_id: 1
    plugins:
      ip-restriction:
        whitelist:
          - 127.0.0.1
          - 13.74.26.106/24               

Logging and Monitoring

Logging and Monitoring fall into the broader Observability category, also encompassing Tracing. Apache APISIX offers a broad range of Observability plugins in each category.

Type Name Description
Tracing zipkin Collect and send traces according to the Zipkin specification
skywalking Integrate with the Apache SkyWalking project
opentelemetry Report data according to the OpenTelemetry specification
Metrics prometheus Expose metrics in the Prometheus format
node-status Expose metrics in JSON format
datadog Integrate with Datadog
Logging file-logger Push log streams to a local file
syslog Push logs to a Syslog server
http-logger Push JSON-encoded logs to an HTTP server
tcp-logger Push JSON-encoded logs to a TCP server
udp-logger Push JSON-encoded logs to a UDP server
kafka-logger Push JSON-encoded logs to a Kafka cluster
rocketmq-logger Push JSON-encoded logs to a RocketMQ cluster
rocketmq-logger Push JSON-encoded logs to a RocketMQ cluster
rocketmq-logger Push JSON-encoded logs to a RocketMQ cluster
loki-logger Push JSON-encoded logs to a Loki instance
splunk-hec-logging Push logs to a Splunk instance
loggly Push logs to a Loggly instance
elasticsearch-logger Push logs to an Elasticsearch instance
sls-logger Push logs to Alibaba Cloud Log Service
google-cloud-logging Push access logs to Google Cloud Logging Service
tencent-cloud-cls Push access logs to Tencent Cloud CLS

Rate Limiting

Rate Limiting protects upstreams from Distributed Denial of Services attacks, a.k.a DDoS. It’s one of the main features of reverse proxies and API Gateways. APISIX implements rate limiting through three different plugins:

  • The limit-conn Plugin limits the number of concurrent requests to your services
  • The limit-req Plugin limits the number of requests to your service using the leaky bucket algorithm
  • The limit-count Plugin limits the number of requests to your service by a given count per time. The plugin is using Fixed Window algorithm

Let’s use limit-count for the sake of example:

routes:
  - upstream_id: 1
    plugins:
      limit-count:
        count: 10
        time_window: 1
        rejected_code: 429

The above configuration snippet protects the upstream from being hit by more than ten requests per second. It applies to every IP address because of the default configuration. The complete snippet would look like the following:

routes:
  - upstream_id: 1
    plugins:
      limit-count:
        count: 10
        time_window: 1
        rejected_code: 429
        key_type: var
        key: remote_addr

When dealing with APIs, there’s a considerable chance you want to differentiate between your clients. Some might get a better rate for different reasons: they paid a premium offer; they are considered strategic; they are internal clients, etc. The same consumer could also use different IP addresses because they run on various machines with other APIs. Allowing the same consumer more calls because they execute their requests on a distributed infrastructure would be unfair.

As it stands, the IP is not a great way to assign the limit; we prefer to use a named consumer or, even better, a consumer group. It’s perfectly possible with APISIX:

consumer_groups:
  - id: basic
    plugins:
      limit-count:
        count: 1
        time_window: 1
        rejected_code: 429
  - id: premium
    plugins:
      limit-count:
        count: 10
        time_window: 1
        rejected_code: 429

consumers:
  - username: johndoe
    group_id: basic
    plugins:
      keyauth:
        key: mykey1
  - username: janedoe
    group_id: premium
    plugins:
      keyauth:
        key: mykey2

routes:
  - upstream_id: 1
    plugins:
      key-auth: ~

Now, johndoe can only send a request every second, as he’s part of the basic plan, while janedoe can request ten times as much as part of the premium plan.

Conclusion

We’ve seen how to configure Apache APISIX to secure your APIs against 7 of the 16 rules in the original list. The rules left could be less straightforward to implement; we will cover them in the second installment.

Originally published at A Java Geek on February 18th, 2024

The post Secure your API with these 16 Practices with Apache APISIX – part 1 appeared first on ProdSens.live.

]]>
https://prodsens.live/2024/02/22/secure-your-api-with-these-16-practices-with-apache-apisix-part-1/feed/ 0
The Human Element in Testing: Nurturing Soft Skills for Testers https://prodsens.live/2024/01/18/the-human-element-in-testing-nurturing-soft-skills-for-testers/?utm_source=rss&utm_medium=rss&utm_campaign=the-human-element-in-testing-nurturing-soft-skills-for-testers https://prodsens.live/2024/01/18/the-human-element-in-testing-nurturing-soft-skills-for-testers/#respond Thu, 18 Jan 2024 00:25:14 +0000 https://prodsens.live/2024/01/18/the-human-element-in-testing-nurturing-soft-skills-for-testers/ the-human-element-in-testing:-nurturing-soft-skills-for-testers

Within the dynamic field of software testing, the need for soft skills in addition to technical competency is…

The post The Human Element in Testing: Nurturing Soft Skills for Testers appeared first on ProdSens.live.

]]>
the-human-element-in-testing:-nurturing-soft-skills-for-testers

Within the dynamic field of software testing, the need for soft skills in addition to technical competency is being recognized more and more. To transform testers from simple executors into strategic contributors, this article examines the importance of communication, teamwork, adaptability, and empathy.

Collaboration:

Highlighting how important good teamwork is to the outcome of testing projects and examining the collaborative aspect of modern software development as a tester, the focus is on testers participating actively in conversations, brainstorming sessions, and offering insightful criticism.

The main takeaway is that the tester’s responsibilities go beyond specific tasks to include meaningful engagement in a team environment, where their observations and suggestions greatly enhance the process’s overall effectiveness.

Adaptability:

A flexible approach has been highlighted by using the term “agile” to characterize the testing process. The emphasis is on testers’ capacity to adjust to changes without difficulty, understanding that in the dynamic world of software testing, flexibility is not only helpful but necessary.

The term “flexible approach” denotes the ability to respond and adjust swiftly to changing circumstances, acknowledging the unpredictable nature of software development and testing.

Empathy:

The importance of empathy in the testing process is emphasized in this section, which shows how it can change the process from being mechanical to being human-centered. It acknowledges that comprehension of end users’ viewpoints and demands is essential to efficient testing by highlighting the necessity for testers to have empathy for end users.

The phrase “empathy-driven testing” describes an approach in which testers immerse themselves in the user experience and move beyond technical assessments. Testers are better equipped to replicate real-world events thanks to this sympathetic understanding. Testers take into account how people interact with the software in their particular situations rather than focusing only on technical features.

Soft Skills Training:

There are a series of programs that are recommended, including workshops that concentrate on communication skills, team-building activities, and scenarios that require flexibility. The main objective is to produce well-rounded testing teams that possess the interpersonal and adaptable abilities needed to flourish in the fast-paced, team-oriented settings typical of modern software development projects.
It will help testers gain valuable training meant to improve their capacity to collaborate, communicate, and adjust.

Balancing Technical and Soft Skills:

Testers become more than just implementers thanks to this connection; they become important members of a team. This highlights how important testers are in helping technical and non-technical stakeholders communicate with each other. Assisting in the efficient translation of complex technical jargon into insightful knowledge, testers establish themselves as important participants in the larger project environment and improve comprehension.

Strategic Imperative:

The word “strategic” suggests that testing procedures involve intentional and essential elements. The cornerstone for testing success is positioned as the human aspect, which is defined by efficient communication, smooth collaboration, adaptability, and empathy. This emphasizes how crucial soft skills are for negotiating the complex testing environment’s problems and highlights their strategic significance for testers aiming for excellence in their line of work.

Closing Thoughts:

The final section focuses on the testers’ transformation from simple executors to strategic partners. The word “evolution” emphasizes a wider range of skills and denotes a development beyond conventional roles. The emphasis on complete growth means that, in addition to developing testers’ technical expertise, it also acknowledges that they are human beings who add a human touch to the accuracy of software testing. This understanding of the human aspect becomes essential for navigating the testing industry’s constantly shifting terrain, implying that its future relevance rests in the combination of expertise and the recognition of testers as essential participants in the complicated and dynamic field of software development.

The post The Human Element in Testing: Nurturing Soft Skills for Testers appeared first on ProdSens.live.

]]>
https://prodsens.live/2024/01/18/the-human-element-in-testing-nurturing-soft-skills-for-testers/feed/ 0
Dominando las Estructuras de Datos en JavaScript: Arrays, Objects, Sets y Maps https://prodsens.live/2023/12/29/dominando-las-estructuras-de-datos-en-javascript-arrays-objects-sets-y-maps/?utm_source=rss&utm_medium=rss&utm_campaign=dominando-las-estructuras-de-datos-en-javascript-arrays-objects-sets-y-maps https://prodsens.live/2023/12/29/dominando-las-estructuras-de-datos-en-javascript-arrays-objects-sets-y-maps/#respond Fri, 29 Dec 2023 01:25:18 +0000 https://prodsens.live/2023/12/29/dominando-las-estructuras-de-datos-en-javascript-arrays-objects-sets-y-maps/ dominando-las-estructuras-de-datos-en-javascript:-arrays,-objects,-sets-y-maps

Para ser un desarrollador de JavaScript profesional, es esencial comprender las estructuras de datos fundamentales: Arrays, Objects, Sets…

The post Dominando las Estructuras de Datos en JavaScript: Arrays, Objects, Sets y Maps appeared first on ProdSens.live.

]]>
dominando-las-estructuras-de-datos-en-javascript:-arrays,-objects,-sets-y-maps

Para ser un desarrollador de JavaScript profesional, es esencial comprender las estructuras de datos fundamentales: Arrays, Objects, Sets y Maps. Esta guía te ayudará a entender sus fundamentos, diferencias, y cómo usar cada uno con ejemplos de codigo.

Arrays: Listas Ordenadas y Flexibles

  • Un array es una colección ordenada de elementos. Cada elemento tiene un índice numérico, y los arrays pueden contener diferentes tipos de datos.
  • Utiliza arrays para almacenar listas de datos donde el orden es importante, como una serie de valores o elementos.
// Ejemplo: Carrito de compras
let carrito = ['manzana', 'banana', 'leche'];
carrito.push('pan');

También te pede interesar Dominando Array en JavaScript: Una Guía Completa

Objects: Pares Clave-Valor para Estructuras Complejas

  • Los objetos son colecciones de pares clave-valor. Las claves son strings (o Symbols) y los valores pueden ser de cualquier tipo.
  • Perfecto para representar entidades con propiedades y valores, como un usuario con nombre, edad y correo electrónico.
// Ejemplo: Perfil de usuario
let usuario = {
    nombre: 'Ana',
    edad: 30,
    email: 'ana@example.com'
};

También te pede interesar Dominando Object en JavaScript: Una Guía Completa

Sets: Colecciones de Valores Únicos

  • Un Set es una colección de valores únicos. Si intentas añadir un valor duplicado, este no se agregará.
  • Ideal para cuando necesitas asegurarte de que no hay duplicados, como en una lista de IDs o valores únicos.
// Ejemplo: IDs únicos de usuarios
let idsUsuarios = new Set();
idsUsuarios.add(101);
idsUsuarios.add(102);
idsUsuarios.add(101); // No se añadirá

También te pede interesar Dominando Set en JavaScript: Una Guía Completa

Maps: Pares Clave-Valor con Claves de Cualquier Tipo

  • Map es una colección de pares clave-valor similar a los objetos, pero las claves pueden ser de cualquier tipo.
  • Útil para asociaciones clave-valor donde las claves no son strings o para mantener el orden de inserción.
// Ejemplo: Caché de resultados
let cache = new Map();
cache.set('usuario1', { nombre: 'Ana', edad: 30 });

También te pede interesar Dominando Map en JavaScript: Una Guía Completa

Cuándo Usar Cada Uno

  • Arrays: Cuando necesitas una lista ordenada y métodos para iterar o transformar esos datos.
  • Objects: Para representar entidades con propiedades nombradas. Ideal para datos estructurados con un formato fijo.
  • Sets: Cuando la unicidad es clave, y solo necesitas saber si un valor existe o no.
  • Maps: Cuando necesitas claves más allá de strings y requieres mantener el orden de inserción.

Mejores Prácticas y Tendencias del Mercado

  • Inmutabilidad: Considera el uso de métodos que no alteran la estructura original para evitar efectos secundarios.
  • Selección Adecuada: Elige la estructura de datos que mejor se adapte a tus necesidades para un código más limpio y eficiente.
  • Rendimiento: Ten en cuenta el rendimiento, especialmente en operaciones de gran escala. Por ejemplo, Map y Set tienen un rendimiento generalmente mejor en la búsqueda y actualización de datos.

Dominar las estructuras de datos de JavaScript es un paso esencial para convertirse en un desarrollador competente y muy valorado. Comprender cuándo y cómo utilizar Arrays, Objects, Sets y Maps te permitirá abordar una amplia gama de problemas de programación de manera eficiente y efectiva. Con esta guía y ejemplos prácticos, estás bien equipado para fortalecer tu comprensión y aplicación de estas estructuras fundamentales.

The post Dominando las Estructuras de Datos en JavaScript: Arrays, Objects, Sets y Maps appeared first on ProdSens.live.

]]>
https://prodsens.live/2023/12/29/dominando-las-estructuras-de-datos-en-javascript-arrays-objects-sets-y-maps/feed/ 0
SQL Commands that every Developer should know https://prodsens.live/2023/12/04/sql-commands-that-every-developer-should-know/?utm_source=rss&utm_medium=rss&utm_campaign=sql-commands-that-every-developer-should-know https://prodsens.live/2023/12/04/sql-commands-that-every-developer-should-know/#respond Mon, 04 Dec 2023 18:25:01 +0000 https://prodsens.live/2023/12/04/sql-commands-that-every-developer-should-know/ sql-commands-that-every-developer-should-know

Here are some SQL commands that every developer should know: SELECT INSERT DROP TABLE UPDATE DELETE CREATE TABLE…

The post SQL Commands that every Developer should know appeared first on ProdSens.live.

]]>
sql-commands-that-every-developer-should-know

Here are some SQL commands that every developer should know:

  • SELECT
  • INSERT
  • DROP TABLE
  • UPDATE
  • DELETE
  • CREATE TABLE
  • ALTER TABLE
  • JOIN
  • GROUP BY
  • HAVING
  • ORDER BY

Don’t hesitate to add more commands in the comments if I have missed them out!

The post SQL Commands that every Developer should know appeared first on ProdSens.live.

]]>
https://prodsens.live/2023/12/04/sql-commands-that-every-developer-should-know/feed/ 0
How to Use Medium: A Beginner’s Guide to Writing, Publishing & Promoting on the Platform https://prodsens.live/2023/10/13/how-to-use-medium-a-beginners-guide-to-writing-publishing-promoting-on-the-platform/?utm_source=rss&utm_medium=rss&utm_campaign=how-to-use-medium-a-beginners-guide-to-writing-publishing-promoting-on-the-platform https://prodsens.live/2023/10/13/how-to-use-medium-a-beginners-guide-to-writing-publishing-promoting-on-the-platform/#respond Fri, 13 Oct 2023 01:24:30 +0000 https://prodsens.live/2023/10/13/how-to-use-medium-a-beginners-guide-to-writing-publishing-promoting-on-the-platform/ how-to-use-medium:-a-beginner’s-guide-to-writing,-publishing-&-promoting-on-the-platform

Medium is a platform for writers. If you’re not a writer, that sounds pretty straightforward. But if you…

The post How to Use Medium: A Beginner’s Guide to Writing, Publishing & Promoting on the Platform appeared first on ProdSens.live.

]]>
how-to-use-medium:-a-beginner’s-guide-to-writing,-publishing-&-promoting-on-the-platform

Medium is a platform for writers. If you’re not a writer, that sounds pretty straightforward. But if you write, you understand just how huge that statement is.

Is it a blogging platform? Social media or an SEO resource? An online community or a way to earn money writing? Yes. All of the above.

→ Download Now: 6 Free Blog Post Templates

You could be a poet publishing on The Coil, a new UX designer learning your craft, or a business owner sharing stories about early challenges and triumphs. No matter who you are and what you want to write about, there’s a place for you on this platform.

I’ve been writing about marketing since 2017, I’ve used many different platforms for publishing and promoting content. Now, I’m going to tell you how I use Medium, and how you can too.

What is Medium?

Medium is a social publishing platform that is open to all and home to a diverse array of stories, ideas, and perspectives. Anyone can write for the platform, so it’s great for beginners.

Popular topics on Medium range from mental health to social media, from world affairs and trending news to productivity hacks. This makes it a solid choice for anyone who wants to start blogging.

What is Medium

As Medium founder (and Blogger creator/Twitter co-founder) Ev Williams wrote when he launched the platform in 2012:

“Medium is not about who you are or whom you know, but about what you have to say.”

How does Medium work?

The first thing you’ll notice on the Medium website is its site design. As former HubSpot Senior Content Strategist Erik Devaney says, “It’s minimalistic, featuring lots of white space and limited formatting options. Want to change the header typeface to Comic Sans? You can’t. Medium won’t allow for such atrocities of design.”

This decision makes great writing the focus. But that’s just one of many nuances of Medium.

Medium is for two types of people: writers and readers, through online content publishing. When I started my career in content writing and strategy, I wasn’t sure what that meant. I discovered Medium because I was trying to figure out where to build my writing portfolio. I’d heard Medium was a good choice, but the first time I signed up I wasn’t sure how to use it.

If you’re just getting started on the platform, there’s a fair amount to learn before you hit publish. Let’s get into it.

Quality leads to discovery.

Many writers go for years without sharing their writing. But once you decide to become a writer, whether you’re finishing a first novel or writing content for brands, you need to find a way to share your skills.

Medium is great for writers who invest time and energy in their work. It rewards in-depth, well-researched, and useful articles, not just popularity or brand awareness.

Platform-enabled reader engagement.

Comments and likes are popular in online media. But when you’re new to writing, it’s helpful to know exactly what people are responding to and why. To meet this need, Medium gives readers a chance to highlight and comment directly within the text of each article. This process is like the way professional editors engage with writers.

Curation and publications.

Medium has curators who review articles for quality. If a curator chooses your article for wider distribution, it gives you a chance to introduce your content to more readers. This might include highlighting your article on the platform, showing your post to readers they think will want to read it, or adding it to subscriber emails.

how does medium work, publications example, The Startup

Most curators are publication editors. Some of the most popular publications on Medium in 2023 include:

  • The Startup
  • Towards Data Science
  • Personal Growth
  • UX Collective
  • The Writing Cooperative

Medium’s curation and publication models aren’t just great for writers. They also give avid readers and fans a chance to support their favorite writers.

Medium also gives writers the chance to earn money with their stories. As a member of the Partner Program, you can put stories behind a paywall to earn income.

In this program, you can increase earnings with repeat readers, engagement signals, and more.

Writing for Medium

Anyone who has a Medium account can write for Medium — there’s no other vetting process involved.

To get started, simply sign up for a free Medium account (or upgrade to a $5/month membership for unlimited access), and you’re ready to start writing from there.

But articles must adhere to Medium’s content guidelines and rules. For instance, as a writer I can’t promote controversial or extreme content on my Medium account. I can’t do third-party advertising. And there’s a separate set of policies if I want to write about cryptocurrencies.

Affiliate marketing links are allowed, but writers must tell their audience that they’re including these links. For the full list of rules for content, take a look at this post on Medium Rules.

writing for medium, medium rules

As a marketer, Medium presents an opportunity for you to reach a new audience with your content. The platform is open, so some topics lean toward sharing longer-form, more well-thought-out content while others are short and topic-focused.

In this way, Medium is like marketing on many other channels, because success in writing for Medium isn’t just about great writing. It takes some research into audiences and publications in a specific area of interest. So, what makes Medium a great channel for writers?

In the next section, I’m going to get into the topic above, and talk about how I chose between Medium and WordPress.

Medium vs. WordPress

This post offers an exceptional breakdown of WordPress vs. Medium for pricing, blogging, and SEO from a business perspective. So, I want to use this space to share my personal experience with the two platforms.

How I’ve Used WordPress as a Content Writer

I worked with a designer to build my personal website on WordPress and built a separate side project on my own with Elementor. I’ve also used WordPress professionally as a content manager and freelance writer. Altogether I’ve been using the platform for 6+ years to create and promote content.

WordPress is an excellent platform for sharing content online inexpensively. It also makes it easy to add plugins, features, and tools to connect my sites to other relevant channels, like social media feeds or payment gateways.

I like WordPress as a content writer because it lets me run independent sites online that I can use to test ideas before widely broadcasting them.

That said, it took years of learning about search engine optimization (SEO) to begin generating traffic on my personal sites. With the rapid recent changes in SEO, I’ve been investing more time in researching social channels for marketing and promotion.

How I’ve Used Medium as a Content Writer

As you can see above, I chose to go with WordPress for my portfolio. But I started using Medium when I was managing content for a small ecommerce startup.

I was looking for effective ways to promote content for our blog. I wanted a channel that could help expand the influence of the excellent writers on my team. So, we started with Medium.

I asked writers on my three-person team to write an original piece for Medium once a month in addition to their scheduled blog assignments.

While some posts sat on our brand’s Medium page without much traction, a few grabbed valuable attention. Specifically, we had the most success with posts that we submitted to popular publications on the site.

For example, I submitted this post about Ecommerce Easter Eggs to the Marketing and Entrepreneurship publication curated by Larry Kim, and Bryce Patterson submitted this piece on the content writing process to the publication “The Writing Cooperative.”

These publications have dedicated audiences, which helped us show our writing to more people and build followers for our branded Medium account.

WordPress vs. Medium — which is right for you?

While these are both excellent platforms to showcase writing, they’re quite different. I use both platforms, but I spend more time on WordPress because of my goals as a creator. But many writers will find that Medium is the best platform for them because of its focus on writer discovery, monetization, and community-building.

At this point, you may be ready to try using Medium. Let’s take the first step.

Getting Started With Medium

1. Create an account.

Anyone can view free Medium content. But to publish and interact with folks on the platform, you need to have an account and log in.

So, the first step is creating an account. Signing up was super easy for me. I headed to Medium.com and clicked the “Get started” button at the top of the page. From there I had three different sign-up options to choose from: Google, Facebook, or email.

How to use Medium, Join Medium sign-up page

I used my Gmail account to create an account first, which was super fast and simple. They even made adding my name to my profile easy, because it auto-filled based on my email.

I also set up a separate account, this time signing up with email. All I needed to do was click a link in my email to complete setup, and the process was otherwise the same.

How to use Medium, email confirmation

During signup, it helped to remember that Medium is part social media. It’s not just a platform to write blogs, it’s a space to share, comment, and curate content within a community.

So, I felt like some parts of the signup, like choosing topics, felt more like signing up for Twitter (X) or Pinterest than creating an account on a blogging platform.

How to use Medium, topic selection

I like keeping my blogging and social media accounts separate, but Erik Devaney recommends signing up for Medium using Facebook. He says, “That way all of your existing connections from Facebook who are on Medium will automatically be following your account once it’s created. This saves you the trouble of having to build up a new audience entirely from scratch.”

Regardless of what you go with to start, you can always link your Twitter (X), Mastodon, or Facebook to your Medium account later in the “Security and apps” tab in the Settings menu.

The Settings menu is also where you can update your username, profile page URL, profile design, and more. You can also control what email notifications you receive from Medium in this menu.

How to use Medium, profile information

To complete my profile, I added a photo and wrote up a short (160-character max) bio for my Medium profile page. I use the same bio across my social media accounts, so I just copied and pasted this from my Instagram account, emojis and all.

2. Follow people, publications, & topics.

In a Medium feed, the content that’s surfaced comes not only from the accounts of the people and organizations you follow, but also from publications and tags. What’s more, when searching for content on Medium, people, publications, and topics all show up in the results.

How to use Medium for writing, results baseball publications

People

First, figure out who you want to follow. Whose writing do you want to read? Who’s making content you can learn from as you begin your new writing adventure?

There’s a wide variety of writers on the platform, and I’m interested in a little bit of everything, so this step was quick to complete. Whether you’re interested in politics or people-watching, computer science or world travel, you’re likely to find some writers you want to follow too.

Publications

Medium publications are collections of stories based around a common theme. Anyone can create them — yourself included — and the way they work is fairly straightforward.

As the creator of a publication, you’re an editor by default. This means you have the ability to:

  • Add writers to your publication
  • Edit and publish the stories submitted by your writers
  • Review the metrics for all the stories that are part of your publication

As the publication’s creator, you’ll also have the ability to appoint new editors (so they can do all that stuff I just mentioned).

Creating a publication is easy to do. First, I needed to submit payment to become a Medium member. Then, I clicked on my profile image in the top right, and scrolled down to “Manage publications.” A pop-up appeared, and I clicked “Create a new publication.”

How to use Medium, manage publications

This led to a new page where I needed to enter information on the name, description, social accounts, and topic for my publication. I also needed images ready to add an avatar and logo.

How to use Medium, new publication

The avatar image appears on featured pages around Medium, while the logo image appears on the homepage of the publication. You can learn about image sizes for these requirements and more in this Medium post.

Once I finished entering this information, I had a chance to create a custom design for the home page of my new publication.

This publication will give me a chance to not only share my own writing, but also connect with other writers on the topics I care about.

Topics

Once called “Tags,” Topics are the hashtags of the Medium ecosystem. When you publish a story on Medium, you get the option to add up to five topics, which appear at the bottom of your story.

So, when I click a topic it brings me to a page where I can see more stories with the same topic. It also gives me suggestions for other topics I might be interested in.

Instead of surfacing content based solely on the social graph (for example, the people/publications you follow), Medium uses topics to surface content that’s based on specific interests.

For example, this article from Beth Dunn, a recent Marketing Fellow at HubSpot, includes five topics:

  • User Experience
  • UX Writing
  • UX Design
  • Inclusive Design
  • Content Strategy

How to use Medium, topics example

Following topics like these can help personalize my Medium experience and make it easier for my readers to find more of my content.

Now that I’ve set up an account, started following some accounts, built a publication, and followed some topics, let’s start engaging with content.

How to Interact With Medium Content

3. Recommend, share, and bookmark content.

Clapping hands are the “Like” of the Medium world. It’s a way to show that you support and appreciate the content that someone has shared.

When reading a story on Medium, you can support it at both the top and the bottom of the actual story, where you see the clapping hand symbol.

How to use Medium, top bar, clapping hands

In either case, I just click on the clapping hand icon to support a story. Once clicked, the hands will change from an outline to solid black. The first time I supported a story, I accidentally clicked the number beside the clapping hands icon. This was a happy accident because it let me see the full list of people who recommended that story.

Note: You can clap up to 50 times per post, and you can clap for as many posts as you want.

When you recommend a story, the writer, by default, will receive an email notification. (But that’s something you can control in Settings). The more support a story receives, the more likely it is to be shared around the Medium network. Stories that receive the most likes within a given time period get featured on Medium’s home page.

In the same two locations where you can recommend a story, you can also save, listen to, or share that story. To save a story I wanted to spend more time reading, I clicked the bookmark icon and it saved the story to my reading list. I can also create specific reading lists in this part of the platform.

How to use Medium, save reading list

To listen, I just clicked the play icon, but if you want to use this feature, it’s good to know that it’s for members only. Finally, I shared the story by copying the link or sharing it on LinkedIn, Twitter (X), or Facebook.

How to use Medium, share options

When you bookmark a story, it will appear on your reading list, which you can access from your Medium profile page or from the Medium homepage at the bottom of the right-hand sidebar.

4. Highlight specific words.

Now that I know how to support, share, and bookmark Medium stories, it’s time to unlock a second level of interaction. I do this by selecting sections of text with my cursor.

Once I highlight some text, a pop-up menu will appear that gives me four options:

Highlight

How to use Medium, highlight text

Clicking the highlighter icon (highlighter symbol) puts a green highlight around the text I selected. This is visible to my Medium followers. By default, a story’s writer will get a notification when anyone highlights a section of their stories.

Response

How to use Medium, highlight responses

Clicking the speech bubble icon lets me write a response to the story I’m reading. The section of text I’ve highlighted appears at the top of my response. (More on responses in a second.)

Text Shot

How to use Medium, highlight text tweet

Clicking the Twitter icon generates a “Text Shot,” which is a tweet that automatically pulls in the text I highlighted as a screenshot.

Private Note

How to use Medium, highlight private note

Some stories will also show a lock icon in a speech bubble. Clicking this icon lets me send the writer a private note. If you don’t see this icon, it’s because the author has turned off private notes.

You can choose this on or off in your settings, but I chose to leave it on because I read that editors sometimes use private notes to offer feedback to writers before publishing.

5. Write responses.

Unlike traditional blog comments, Medium responses are treated as individual stories. Besides appearing at the bottom of the stories I respond to, I can also publish my responses to my profile page.

This is helpful for me because it lets me engage with people on the platform without having to commit to writing a full-blown story. It also helps me come up with ideas for stories.

How to use Medium, responses

Medium’s approach to responses gives comments the potential to take off and get circulated just like traditional stories.

A quick note: Responses are engagement signals on the Medium platform. And, responding is a tip that shows up in many articles about how to promote your writing on Medium.

For me, this makes it important to respond genuinely. While responses are a way to increase my visibility on the platform, I work to be thoughtful in the ways I support and engage with the writers I respond to.

How to Write and Publish on Medium

6. Format text in your posts.

Ready to start writing my first Medium post, I click “Write” at the top right-hand corner of the Medium home page. I can also get there by clicking on my profile icon at the top-right of the Medium page, and then scrolling to “Stories.” I can create a new story by clicking the green “Write a story” button. That action pulls up a screen that’s ready for my content that looks like this:

How to use Medium, start writing post

As Erik Devaney says, “Writing in Medium’s editor is highly intuitive and — from a stylistic perspective — nearly impossible to screw up.”

As usual, it’s the writing that’s tough, but a tool can help with the details. When I write, I often use a template, like one of these free blog templates.

Then, I copy and paste my writing into my chosen publishing platform. Medium makes this step easy. It retains links and other formatting from pasted text.

If I want to make a change to the text, All I have to do is highlight a section to reveal several basic format choices such as bold, italics, or hyperlinking. It also lets me designate text as an H1 or as an H2 using the big T or little t:

How to use Medium, Creating H2s on Medium

And I can choose between two different styles of block quotes —

Option A:

How to use Medium, block quote format a

Or Option B:

How to use Medium, block quote format b

 

If I really want to get fancy, I use Medium’s drop caps function.

Know those enlarged, stylized letters you sometimes see at the beginning of sentences? Those are drop caps. According to the Medium team, they’re useful for “pacing, starting a new chapter, or just a little typographical delight.”

How to use Medium, drop cap example

Another option for creating some separation between different sections of a story in Medium is to use a separator. To insert one, I click the little plus icon that appears on an empty line of a story:

How to use Medium, plus symbol

Clicking that plus icon will open up a menu with six options. The one on the far right — the icon with the two little lines — is the separator.

How to use Medium, plus symbol expanded

Here’s what it looks like on the page:

How to use Medium, separator

Check out this story for more formatting how-tos, such as adding inline code, mentions, or emojis.

7. Add images and media.

Adding images, videos, and embeds to a Medium story can be as simple as copying and pasting URLs into Medium’s editor. The editor, in most cases, can automatically recognize the media’s format and render it accordingly.

For example, I want to add a couple videos to my in-progress post. For the first video, I just copied and pasted the YouTube URL, and then clicked “Enter.” Then I added a TikTok video by clicking the video icon that shows up after clicking the plus icon. The final result was the same no matter which steps I followed.

You can add a range of media to your Medium story including:

  • Uploading an image from your computer
  • Adding stock photos with Unsplash
  • Inserting a video with a URL
  • Inserting an embed code for approved media

There are also different size and orientation options for displaying media.

For example, the options below appeared in a pop-up menu after I inserted my YouTube video. There are three choices for sizing a YouTube video on Medium:

How to use Medium, youtube

8. Share drafts and publish posts.

When I finished my story and was happy with how everything looked, I headed up to the top navigation to choose between two options: “Publish” and an icon with three dots. The three dots highlight a range of choices for writers. These include sending a draft link, checking the appearance of the post, unlisted publishing, and more.

How to use Medium, share draft link etc

For example, “Share draft link” generates a link to the draft of my story, which I can share with anyone — even if they don’t have a Medium account. And the people I share the draft with can also leave me notes.

Clicking the “Publish” button, meanwhile, opens a menu where I can choose up to five topics for my story. It’s a sort of pre-publishing dashboard, with reminders to add a featured image and a link to learn more about what happens after publishing. I like that it also offers a chance to schedule my post if I want to share it later.

How to use Medium, choose topic

It’s also where I hit the “Publish” button to share my story with the world. 

How to Get Paid on Medium

Now that I’ve gone through how to use Medium, I’m thinking about how to make the most of it. I’ve done some research and found a few ways writers monetize with this platform.

First off, there’s the Partner Program. If you want to earn money with your stories, this is an exciting way to get paid on Medium.

How to use Medium, medium partner program

The Medium Partner Program pays writers directly each month. To get paid on Medium I first need to become a paid Medium member. Then, it’s time to apply for the Partner Program. The requirements for this are simple. I need to:

  • Have published at least one Medium story
  • Be 18 years or older
  • Live in an eligible country

This process also includes signing up for Stripe, to collect payments, and Tipalti, for tax purposes. Once I’m part of the Partner Program, I can put new and already-published stories behind a paywall for premium members. When someone reads my story, I’ll earn a percentage of their membership fee.

This is the lowest lift choice, because it’s monetizing something I’m already doing — writing stories for the platform. It also uses engagement metrics to decide how much I get paid for each story, connecting what readers love to what I make from the platform as a writer.

While I’ll be trying the Partner Program to earn on Medium, I’m also curious about other options. For example, I set up tipping by going to “Settings,” then “Publishing” and updating the settings under “Manage tipping on your stories.” I can add a payment link and I’ll be able to receive tips from readers. There are options to use Patreon, PayPal, and other popular platforms.

How to use Medium, tipping on stories

Another way to monetize is using my stories on Medium to promote a business or brand. The new audiences I introduce to my stories on the platform can drive new interest to my business. This approach is like what I mentioned above when I talked about my past experience using Medium.

9. Measure your results.

I published my first Medium story and I’m set to earn money on the platform, but the impact I can make with Medium will depend on how my stories perform. To see metrics for my Medium content, I clicked my profile icon in the top right-hand corner of the Medium homepage and scrolled down to “Stats.”

When I arrived on the “Stats” page I didn’t see much (yet). But soon, I’ll see the aggregate number of views and claps my stories and responses have received over the past 30 days.

How to use Medium, medium stats

There’s also a graph that provides day-by-day granularity, with details on follower counts and highlights.

medium-stats-2

Image Source

As I scrolled down the page, I has the option to click on specific stories to view individual stats. The Medium team is also making changes to the Stats pages. It looks like most of these changes are for tracking payment metrics or helping writers tie payment to performance.

Here’s a quick rundown on what metrics Medium currently tracks:

  • Claps: The number of claps a story receives.
  • Responses: The number of responses a story receives.
  • Lifetime earnings: The total amount a story has earned.
  • Views: The number of people who visited a story’s page.
  • Reads: Tracks when someone views a story for 30 seconds or more. Scrolling to the bottom of the story used to be required, but isn’t anymore. Views and reads for individual stories live on story detail pages.
  • Member read ratio: This stat tracks member reads divided by member views.

Quick note: Member-only and non-member activity is tracked separately in Stats.

The Medium App

I travel frequently, so consuming and interacting with content on the go is best for me. For this, I’m using the Medium app. The app includes the same stories and content I can find on my laptop, with the added bonus of a mobile-first interface.

How to use Medium, medium app

On the app, I can surface content related to my interests. These curated lists depend on the tags, publications, or authors I follow. I also use the app’s Explore feature to find new, interesting content and to engage with fellow readers, joining conversations as they’re happening. I was hoping I could start drafts in the app, but no. That said, I can check story stats wherever I am, which is helpful.

Use Medium for Writing and Sharing Your Best Stories

Medium is a powerful platform for writers and content creators to share ideas, engage with readers, and even earn money. By following the steps I shared in this article, you can unlock the full potential of Medium. So, start writing and exploring the possibilities. Your audience is waiting.

Editor’s note: This post was originally published in August 2021 and has been updated for comprehensiveness.

The post How to Use Medium: A Beginner’s Guide to Writing, Publishing & Promoting on the Platform appeared first on ProdSens.live.

]]>
https://prodsens.live/2023/10/13/how-to-use-medium-a-beginners-guide-to-writing-publishing-promoting-on-the-platform/feed/ 0
Stringify and Parse Errors in JavaScript https://prodsens.live/2023/06/02/stringify-and-parse-errors-in-javascript/?utm_source=rss&utm_medium=rss&utm_campaign=stringify-and-parse-errors-in-javascript https://prodsens.live/2023/06/02/stringify-and-parse-errors-in-javascript/#respond Fri, 02 Jun 2023 16:24:46 +0000 https://prodsens.live/2023/06/02/stringify-and-parse-errors-in-javascript/ stringify-and-parse-errors-in-javascript

The Error object in JavaScript doesn’t serialize to JSON with all its properties by default. That’s because the…

The post Stringify and Parse Errors in JavaScript appeared first on ProdSens.live.

]]>
stringify-and-parse-errors-in-javascript

The Error object in JavaScript doesn’t serialize to JSON with all its properties by default. That’s because the Error.prototype (from which all error objects inherit) doesn’t have a toJSON method defined. Consequently, if you attempt to serialize an error using JSON.stringify, you’ll only get an empty object:

const error = new Error("My error message");
const jsonError = JSON.stringify(error);

//> prints "{}"
console.log(jsonError); 

One way to capture the details of an error is by providing JSON.stringify with a replacer function or an array of property names to serialize. For an Error object, we’re often interested in the message and stack properties. Here’s how to stringify an Error object, capturing these properties:

const serializedError = JSON.stringify(error, 
  Object.getOwnPropertyNames(error)
);

//> prints "{"message":"My error message","stack":"..."}"
console.log(serializedError); 

The challenge now is to reconstruct the error object from the serialized data. Simply parsing the JSON would give us a plain JavaScript object, but we want a real Error object:

const deserializedError = Object.assign(new Error(), 
  JSON.parse(serializedError)
);

//> prints "Error: My error message"
console.log(deserializedError); 

First, JSON.parse transforms the JSON string back into a JavaScript object. Then, Object.assign is used to copy all properties from the parsed object to a new Error object.

This approach provides a simple way to serialize Error objects and then reconstruct them. However, it’s important to note that there are other Error subclasses like TypeError, ReferenceError, or custom errors from libraries. Information about these specific error types will not be preserved when reconstructing the Error in this way.

I hope you found this post helpful. If you have any questions or comments, feel free to leave them below. If you’d like to connect with me, you can find me on LinkedIn or GitHub. Thanks for reading!

The post Stringify and Parse Errors in JavaScript appeared first on ProdSens.live.

]]>
https://prodsens.live/2023/06/02/stringify-and-parse-errors-in-javascript/feed/ 0
Go-to-Market best practices: Navigating the web https://prodsens.live/2023/04/09/go-to-market-best-practices-navigating-the-web/?utm_source=rss&utm_medium=rss&utm_campaign=go-to-market-best-practices-navigating-the-web https://prodsens.live/2023/04/09/go-to-market-best-practices-navigating-the-web/#respond Sun, 09 Apr 2023 15:04:34 +0000 https://prodsens.live/2023/04/09/go-to-market-best-practices-navigating-the-web/ go-to-market-best-practices:-navigating-the-web

Hi, we’re Amanda Ellsworth, Senior Product Marketing Manager at Workiva, and Ernest Anunciacion, Senior Director of Product Marketing…

The post Go-to-Market best practices: Navigating the web appeared first on ProdSens.live.

]]>
go-to-market-best-practices:-navigating-the-web

Go-to-Market best practices: Navigating the web

Hi, we’re Amanda Ellsworth, Senior Product Marketing Manager at Workiva, and Ernest Anunciacion, Senior Director of Product Marketing at Workiva, and we’re super excited to chat with you today about something that we are very passionate about: Go-to-Market (GTM) strategy.

First off, we’re going to define what a GTM strategy is, and then we want to give you some tangible best practices that you can take back to your organization.

The areas that we’ll focus on are effective product launches, leveraging data (one of our favorite things), a persona-based approach to messaging, and finally, the soft skills that drive GTM strategy.

In this article we’ll focus on:

  • What Go-to-Market strategy is
  • Go-to-Market launch best practices
  • The intricacies of Go-to-Market
  • Why the data doesn’t lie
  • How to nail the persona-based approach
  • How to build a persona kit

The post Go-to-Market best practices: Navigating the web appeared first on ProdSens.live.

]]>
https://prodsens.live/2023/04/09/go-to-market-best-practices-navigating-the-web/feed/ 0