# Blog of Mete Atamel (atamel.dev) > Tech blog of Mete Atamel, Software Engineer and Developer Advocate at Google, with articles on AI agents, Google Antigravity, Gemini, Vertex AI, agent protocols (MCP, A2A, A2UI, AG-UI, UCP, AP2), Google Cloud, serverless, and C#/.NET. More information about Mete Atamel: - [Speaker Profile & Bio](https://atamel.dev/speaker-profile.md) - [Talks & Workshops List](https://atamel.dev/talks-list.md) - [Apps Catalog](https://atamel.dev/apps.md) ## Programmatic access Agents and automated tools can access this blog's content in clean Markdown without HTML chrome: - Fetch [llms.txt](https://atamel.dev/llms.txt) for a structured index of all articles with direct links to their `.md` versions. - Append `.md` to any article URL (or follow the `` tag in any page's HTML ``) to retrieve the raw Markdown twin of that article. ## All articles ### 2026 - [Antigravity Plugin Marketplace in Action: Auditing My Talk Slides with the Google Slides Plugin](https://atamel.dev/posts/2026/10-30_agy_plugin_marketplace_slides.md) - [Testing and Serving A2A Agents from the Terminal with A2A CLI](https://atamel.dev/posts/2026/10-26_testing_a2a_agents_with_a2a_cli.md) - [Google Chat Unread Messages Brief with Workspace Studio and Gemini](https://atamel.dev/posts/2026/10-20_google_chat_unread_brief.md) - [Setting Up an Antigravity Workspace for Multiple Conversations](https://atamel.dev/posts/2026/10-16_multi_conversation_agy_workspace.md) - [6 Years of Tech Debt, 1 Prompt: Modernizing a Legacy App with Gemini 4](https://atamel.dev/posts/2026/10-13_modernizing_6_year_old_app_gemini_4.md) - [Scheduling Tasks in Antigravity](https://atamel.dev/posts/2026/09-22_scheduling_tasks_agy.md) - [Agent Permissions in Antigravity](https://atamel.dev/posts/2026/09-14_agent_permissions_agy.md) - [Summary : Where does Antigravity look for configurations?](https://atamel.dev/posts/2026/08-21_where_agy_configuration_summary.md) - [Where does Antigravity look for Agents?](https://atamel.dev/posts/2026/08-20_where_agy_agents.md) - [Where does Antigravity look for Plugins?](https://atamel.dev/posts/2026/08-18_where_agy_plugins.md) - [Where does Antigravity look for Sidecars?](https://atamel.dev/posts/2026/08-13_where_agy_sidecars.md) - [Where does Antigravity look for Hooks?](https://atamel.dev/posts/2026/07-16_where_agy_hooks.md) - [Where does Antigravity look for Rules and Workflows?](https://atamel.dev/posts/2026/07-13_where_agy_rules_workflows.md) - [Where does Antigravity look for MCP Servers?](https://atamel.dev/posts/2026/07-10_where_agy_mcp_servers.md) - [Where does Antigravity look for Agent Skills?](https://atamel.dev/posts/2026/07-01_where_agy_agent_skills.md) - [Agent to UI Protocol (A2UI) with Agent Development Kit (ADK)](https://atamel.dev/posts/2026/03-30_a2ui_with_adk.md) - [Agent-User Interaction Protocol (AG-UI) with Agent Development Kit (ADK)](https://atamel.dev/posts/2026/03-23_agui_with_adk.md) - [Agent Protocols - MCP, A2A, A2UI, AG-UI](https://atamel.dev/posts/2026/03-17_agent_protocols_mcp_a2a_a2ui_agui.md) - [Codelab - Gemini for Developers](https://atamel.dev/posts/2026/02-13_codelab_gemini_for_developers.md) - [Gemini Interactions API - One interface for models and agents](https://atamel.dev/posts/2026/02-03_gemini_interactions_api.md) - [Introducing Google Cloud VertexAI Extensions for .NET](https://atamel.dev/posts/2026/01-30_introducing_vertexai_extensions_dotnet.md) - [Parallel agents in Antigravity](https://atamel.dev/posts/2026/01-19_parallel_agents_antigravity.md) ### 2025 - [Provide Feedback to Google Antigravity](https://atamel.dev/posts/2025/12-10_antigravity_provide_feedback.md) - [Google Antigravity Editor - Tips & Tricks](https://atamel.dev/posts/2025/12-01_antigravity_editor_tips.md) - [Customize Google Antigravity with rules and workflows](https://atamel.dev/posts/2025/11-25_customize_antigravity_rules_workflows.md) - [RAG just got much easier with File Search Tool in Gemini API](https://atamel.dev/posts/2025/11-14_easy_rag_file_search_tool_gemini.md) - [Quick Guide to ADK Callbacks](https://atamel.dev/posts/2025/11-03_quick_guide_adk_callbacks.md) - [Vibe coding an AI Trivia Quest app with Google AI Studio](https://atamel.dev/posts/2025/10-27_vibe_code_ai_trivia_ai_studio.md) - [Introducing Google Gen AI .NET SDK](https://atamel.dev/posts/2025/10-23_intro_google_genai_dotnet_sdk.md) - [Search Flights with Gemini Computer Use model](https://atamel.dev/posts/2025/10-20_gemini_computer_use_flights.md) - [Secure your LLM apps with Google Cloud Model Armor](https://atamel.dev/posts/2025/08-11_secure_llm_model_armor.md) - [Gen AI Evaluation Service - Multimodal Metrics](https://atamel.dev/posts/2025/08-05_genai_eval_service_multimodal_metrics.md) - [Gen AI Evaluation Service - Agent Metrics](https://atamel.dev/posts/2025/08-01_genai_eval_service_agent_metrics.md) - [Gen AI Evaluation Service - Tool-Use Metrics](https://atamel.dev/posts/2025/07-28_genai_eval_service_tool_metrics.md) - [Gen AI Evaluation Service - Model-Based Metrics](https://atamel.dev/posts/2025/07-08_genai_eval_service_model_metrics.md) - [Gen AI Evaluation Service - Computation-Based Metrics](https://atamel.dev/posts/2025/07-02_genai_eval_service_comp_metrics.md) - [Gen AI Evaluation Service - An Overview](https://atamel.dev/posts/2025/06-30_genai_eval_service_overview.md) - [Evaluating RAG pipelines with the RAG triad](https://atamel.dev/posts/2025/05-14_evaluate_rag_with_rag_triad.md) - [DeepEval adds native support for Gemini as an LLM Judge](https://atamel.dev/posts/2025/04-29_deepeval_native_gemini_judge.md) - [Much simplified function calling in Gemini 2.X models](https://atamel.dev/posts/2025/04-08_simplified_function_calling_gemini.md) - [RAG with a PDF using LlamaIndex and SimpleVectorStore on Vertex AI](https://atamel.dev/posts/2025/03-24_rag_llamaindex_vertexai.md) - [Ensuring AI Code Quality with SonarQube + Gemini Code Assist](https://atamel.dev/posts/2025/03-04_ensure_code_quality_sonarqube_gemini.md) - [Code Quality in the Age of AI-Assisted Development](https://atamel.dev/posts/2025/01-28_code_quality_ai_development.md) - [Improve the RAG pipeline with RAG triad metrics](https://atamel.dev/posts/2025/01-21_improve-rag-with-rag-triad-metrics.md) - [RAG Evaluation - A Step-by-Step Guide with DeepEval](https://atamel.dev/posts/2025/01-14_rag_evaluation_deepeval.md) - [Evaluating RAG pipelines](https://atamel.dev/posts/2025/01-09_evaluating_rag_pipelines.md) ### 2024 - [Gemini on Vertex AI and Google AI now unified with the new Google Gen AI SDK](https://atamel.dev/posts/2024/12-17_vertexai_googleai_united_with_new_genai_sdk.md) - [Control LLM output with LangChain's structured and Pydantic output parsers](https://atamel.dev/posts/2024/12-09_control_llm_output_langchain_structured_pydantic.md) - [Tracing with Langtrace and Gemini](https://atamel.dev/posts/2024/11-27_tracing_langtrace_gemini.md) - [Batch prediction in Gemini](https://atamel.dev/posts/2024/11-18_batch_prediction_gemini.md) - [LLM Guard and Vertex AI](https://atamel.dev/posts/2024/11-11_llmguard_vertexai.md) - [Promptfoo and Vertex AI](https://atamel.dev/posts/2024/11-04_promptfoo_vertexai.md) - [Firestore for Image Embeddings](https://atamel.dev/posts/2024/10-29_firestore_for_image_embeddings.md) - [Firestore for Text Embedding and Similarity Search](https://atamel.dev/posts/2024/10-09_firestore_text_embedding_search.md) - [Persisting LLM chat history to Firestore](https://atamel.dev/posts/2024/10-01_persist_llm_chat_history_firestore.md) - [Semantic Kernel and Gemini](https://atamel.dev/posts/2024/08-19_semantic_kernel_gemini.md) - [DeepEval and Vertex AI](https://atamel.dev/posts/2024/08-12_deepeval_vertexai.md) - [Deep dive into function calling in Gemini](https://atamel.dev/posts/2024/08-06_deepdive_function_calling_gemini.md) - [Control LLM costs with context caching](https://atamel.dev/posts/2024/07-19_control_llm_costs_context_caching.md) - [Control LLM output with response type and schema](https://atamel.dev/posts/2024/07-15_control_llm_output.md) - [RAG API powered by LlamaIndex on Vertex AI](https://atamel.dev/posts/2024/07-08_ragapi_llamaindex_vertexai.md) - [Grounding LLMs with your own data using Vertex AI Search](https://atamel.dev/posts/2024/07-01_grounding_with_own_data_vertexai_search.md) - [Give your LLM a quick lie detector test](https://atamel.dev/posts/2024/06-06_llm_lie_detector_test.md) - [The Consistency vs. Novelty Dilemma](https://atamel.dev/posts/2024/06-02_consistency_vs_novelty.md) - [Vertex AI's Grounding with Google Search - how to use it and why](https://atamel.dev/posts/2024/05-29_using-vertex-ai-grounding-with-google-search.md) - [AsyncAPI gets a new version 3.0 and new operations](https://atamel.dev/posts/2024/05-13_asyncapi_30_send_receive.md) - [A tour of Gemini 1.5 Pro samples](https://atamel.dev/posts/2024/05-07_gemini_15_pro_samples.md) - [Making API calls exactly once when using Workflows](https://atamel.dev/posts/2024/05-03_using-single-execution-calls-with-workflows.md) - [C# and Vertex AI Gemini streaming API bug and workaround](https://atamel.dev/posts/2024/05-01_csharp_vertex_gemini_streaming_bug.md) - [A Tour of Gemini Code Assist - Slides and Demos](https://atamel.dev/posts/2024/04_24_tour_of_gemini_code_assist.md) - [Vertex AI Gemini generateContent (non-streaming) API](https://atamel.dev/posts/2024/02-26_vertexai_gemini_generate_content_api.md) - [Orchestrate Vertex AI’s PaLM and Gemini APIs with Workflows](https://atamel.dev/posts/2024/02-22_vertex-ai-palm-and-gemini-apis-using-workflows.md) - [Using Vertex AI Gemini from GAPIC libraries (C#)](https://atamel.dev/posts/2024/02-14_vertexai_gemini_gapic_libraries.md) - [Using Vertex AI Gemini REST API (C# and Rust)](https://atamel.dev/posts/2024/02-05_vertexai_gemini_restapi_csharp_rust.md) - [The butterfly effect of kindness](https://atamel.dev/posts/2024/02-02_butterfly_effect_of_kindness.md) - [Test and change an existing web app with Duet AI](https://atamel.dev/posts/2024/01-29_duetai_test_change_existing_webapp.md) - [Create and deploy a new web app to Cloud Run with Duet AI](https://atamel.dev/posts/2024/01-23_duetai_create_deploy_webapp_clourun.md) - [Announcing Workflows execution steps history](https://atamel.dev/posts/2024/01-20_announcing-workflows-execution-steps-history.md) ### 2023 - [C# library and samples for GenAI in Vertex AI](https://atamel.dev/posts/2023/12-11_csharp_library_and_samples_genai_vertexai.md) - [Deploy and manage Kubernetes applications with Workflows](https://atamel.dev/posts/2023/12-01_use-workflows-to-deploy-and-manage-kubernetes.md) - [Multi-language libraries and samples for GenAI in Vertex AI](https://atamel.dev/posts/2023/11-28_multilanguage_libs_samples_genai_vertexai.md) - [Introducing a new Eventarc destination - internal HTTP endpoint in a VPC network](https://atamel.dev/posts/2023/11-13_introduce_eventarc_internal_http_endpoint.md) - [What languages are supported in WebAssembly outside the browser?](https://atamel.dev/posts/2023/09-07_language_support_wasm.md) - [Adding HTTP around Wasm with Wagi](https://atamel.dev/posts/2023/07-18_add_http_around_wasm_with_wagi.md) - [Buffer workflow executions with a Cloud Tasks queue](https://atamel.dev/posts/2023/07-12_buffer-workflow-executions-with-a-cloud-tasks-queue.md) - [Workflows executing other parallel workflows: A practical guide](https://atamel.dev/posts/2023/07-08_setup-parallel-task-execution-with-parent-and-child-workflows.md) - [Generative AI Short Courses by DeepLearning.AI](https://atamel.dev/posts/2023/07-04_genai_short_courses_by_deeplearning.md) - [Running Wasm in a container](https://atamel.dev/posts/2023/06-29_run_wasm_in_docker.md) - [Compile Rust & Go to a Wasm+Wasi module and run in a Wasm runtime](https://atamel.dev/posts/2023/06-26_compile_rust_go_wasm_wasi.md) - [Exploring WebAssembly outside the browser](https://atamel.dev/posts/2023/06-20_explore_wasm_outside_browser.md) - [Generative AI Learning Path Notes – Part 2](https://atamel.dev/posts/2023/06-15_genai_learningpath_notes_part2.md) - [Generative AI Learning Path Notes – Part 1](https://atamel.dev/posts/2023/06-06_genai_learningpath_notes_part1.md) - [New Batch connector for Workflows](https://atamel.dev/posts/2023/05-30_workflows_batch_connector.md) - [Google Cloud Pub/Sub + AsyncAPI](https://atamel.dev/posts/2023/05-25_asyncapi_googlepubsub.md) - [CloudEvents + AsyncAPI](https://atamel.dev/posts/2023/05-23_asyncapi_cloudevents.md) - [Understanding AsyncAPI's publish & subscribe semantics with an example](https://atamel.dev/posts/2023/05-18_asyncapi_publishsubscribe_refactor.md) - [AsyncAPI Tools](https://atamel.dev/posts/2023/05-16_asyncapi_tools.md) - [AsyncAPI Basics](https://atamel.dev/posts/2023/05-12_asyncapi_basics.md) - [Buffer HTTP requests with Cloud Tasks](https://atamel.dev/posts/2023/05-03_buffer_http_requests_cloudtasks.md) - [Workflows gets an updated JSON Schema](https://atamel.dev/posts/2023/04-11_workflows_json_schema.md) - [CloudEvents Basics](https://atamel.dev/posts/2023/04-03_cloudevents_basics.md) - [Extending Cloud Code with custom templates](https://atamel.dev/posts/2023/03-18_extending_cloudcode_with_custom_templates.md) ### 2022 - [How to use Google Cloud Serverless tech to iterate quickly in a startup environment](https://atamel.dev/posts/2022/12-15_use-serverless-tech-to-iterate-quickly-in-a-startup-environment.md) - [Introducing Cloud Functions support in Cloud Code](https://atamel.dev/posts/2022/12-12_introduce_functions_in_cloud_code.md) - [Workflows patterns and best practices - Part 3](https://atamel.dev/posts/2022/12-07_workflows-patterns-and-best-practices-part-3.md) - [Workflows patterns and best practices - Part 2](https://atamel.dev/posts/2022/11-28_workflows-patterns-and-best-practices-part-2.md) - [Workflows patterns and best practices - Part 1](https://atamel.dev/posts/2022/11-22_workflows-patterns-and-best-practices-part-1.md) - [.NET 7 on Cloud Run](https://atamel.dev/posts/2022/11-11_dotnet7_cloud_run.md) - [Executing commands (gcloud, kubectl) from Workflows](https://atamel.dev/posts/2022/10-17_executing_commands_from_workflows.md) - [Workflows that pause and wait for human approvals from Google Sheets](https://atamel.dev/posts/2022/10-10_workflows_wait_approvals_sheets.md) - [.NET 6 on Cloud Functions (2nd gen)](https://atamel.dev/posts/2022/10-03_dotnet6_cloud_functions.md) - [Writing to Google Sheets from Workflows](https://atamel.dev/posts/2022/09-26_writing_google_sheets_from_workflows.md) - [Multi-environment service orchestrations](https://atamel.dev/posts/2022/09-20_multi-environment-service-orchestrations.md) - [GitOps your service orchestrations](https://atamel.dev/posts/2022/09-16_gitsops-service-orchestration.md) - [Triggering Workflows from Google Sheets](https://atamel.dev/posts/2022/09-09_trigger_workflows_from_sheets.md) - [Route Datadog monitoring alerts to Google Cloud with Eventarc](https://atamel.dev/posts/2022/08-24_route-datadog-monitoring-alerts-google-cloud-eventarc.md) - [Creating Workflows that pause and wait for events](https://atamel.dev/posts/2022/08-05_workflows_that_pause_for_events.md) - [Trip report - Eight in-person conferences in eight weeks](https://atamel.dev/posts/2022/07-15_trip_report_eight_conferences_eight_weeks.md) - [Taking screenshots of web pages with Cloud Run jobs, Workflows, and Eventarc](https://atamel.dev/posts/2022/06-16_taking-screenshots-web-pages-cloud-run-jobs-workflows-and-eventarc.md) - [Worklows state management with Firestore](https://atamel.dev/posts/2022/04-08_workflows_state_firestore.md) - [Introducing Eventarc triggers for Workflows](https://atamel.dev/posts/2022/04-01_introducing-eventarc-triggers-workflows.md) - [Creating Eventarc triggers with Terraform](https://atamel.dev/posts/2022/03-18_creating-eventarc-triggers-terraform.md) - [Applying a path pattern when filtering in Eventarc](https://atamel.dev/posts/2022/03-02_path_patterns_eventarc.md) - [Building APIs with Cloud Functions and API Gateway](https://atamel.dev/posts/2022/02-10_cloud_functions_api_gateway.md) - [Long-running containers with Workflows and Compute Engine](https://atamel.dev/posts/2022/02-09_long-running-containers-workflows-and-compute-engine.md) - [Implementing the saga pattern in Workflows](https://atamel.dev/posts/2022/02-05_implementing-saga-pattern-workflows.md) - [.NET 6 support in Google Cloud Buildpacks and Cloud Run](https://atamel.dev/posts/2022/02-04_dotnet6_buildpacks_cloudrun.md) - [Auto-completion for Workflows JSON and YAML on Visual Studio Code](https://atamel.dev/posts/2022/01-28_auto_complete_workflows_vscode.md) - [Introducing the new Eventarc UI, Cloud Run for Anthos destinations](https://atamel.dev/posts/2022/01-15_introducing-new-eventarc-ui-cloud-run-anthos-destinations.md) ### 2021 - [Cross-region and cross-project event routing with Eventarc and Pub/Sub](https://atamel.dev/posts/2021/12-09_cross-region-and-cross-project-event-routing-eventarc-and-pubsub.md) - [A closer look at locations in Eventarc](https://atamel.dev/posts/2021/10-26_closer-look-locations-eventarc.md) - [Trying out source-based deployment in Cloud Run](https://atamel.dev/posts/2021/10-19_trying-out-source-based-deployment-cloud-run.md) - [Analyzing Twitter sentiment with new Workflows processing capabilities](https://atamel.dev/posts/2021/10-09_analyzing-twitter-sentiment-new-workflows-processing-capabilities.md) - [Introducing the new Cloud Storage trigger in Eventarc](https://atamel.dev/posts/2021/09-21_introducing-new-cloud-storage-trigger-eventarc.md) - [Get notified when an expensive BigQuery job executes using Eventarc and SendGrid](https://atamel.dev/posts/2021/06-08_bigquery-jobs-notifier.md) - [Deploying multi-YAML Workflows definitions with Terraform](https://atamel.dev/posts/2021/05-13_deploying-multi-yaml-workflows-definitions-terraform.md) - [Introducing new connectors for Workflows](https://atamel.dev/posts/2021/04-27_introducing-new-connectors-workflows.md) - [Choosing the right orchestrator in Google Cloud](https://atamel.dev/posts/2021/04-22_choosing-right-orchestrator-google-cloud.md) - [Three ways of receiving events in Cloud Run](https://atamel.dev/posts/2021/03-12_three-ways-receiving-events-cloud-run.md) - [Demystifying event filters in Eventarc](https://atamel.dev/posts/2021/03-02_demystifying-event-filters-eventarc.md) - [Orchestrating the Pic-a-Daily serverless app with Workflows](https://atamel.dev/posts/2021/02-13_orchestrating-pic-daily-serverless-app-workflows.md) - [Eventarc brings eventing to Cloud Run and is now GA](https://atamel.dev/posts/2021/01-29_eventarc-is-ga.md) - [Eventarc - A unified eventing experience in Google Cloud](https://atamel.dev/posts/2021/01-16_eventarc-unified-eventing-experience-google-cloud.md) ### 2020 - [Better service orchestration with Workflows](https://atamel.dev/posts/2020/12-02_better-service-orchestration-workflows.md) - [Introducing Eventarc in Pic-a-Daily Serverless Workshop](https://atamel.dev/posts/2020/11-30_eventarc-serverless-workshop.md) - [.NET 5.0 on Google Cloud](https://atamel.dev/posts/2020/11-20_net-50-google-cloud.md) - [Knative v0.18.0 update](https://atamel.dev/posts/2020/10-12_knative-v0180-update.md) - [Events for Cloud Run for Anthos >= Knative Eventing on Kubernetes](https://atamel.dev/posts/2020/10-09_events_cloud_run_anthos_knative_eventing.md) - [Cloud Run for Anthos brings eventing to your Kubernetes microservices](https://atamel.dev/posts/2020/09-24_cloud-run-for-anthos-adds-events.md) - [A first look at serverless orchestration with Workflows](https://atamel.dev/posts/2020/09-08_first_look_at_workflows.md) - [Scheduled serverless dbt + BigQuery service](https://atamel.dev/posts/2020/07-29_scheduled_serverless_dbt_with_bigquery.md) - [Knative v0.16.0 update](https://atamel.dev/posts/2020/07-22_knative-v0-16-0-update.md) - [Google Cloud Functions on .NET](https://atamel.dev/posts/2020/07-14_dotnet_on_cloud_functions.md) - [.NET Core 3.1 updates in Cloud Shell and App Engine flexible environment](https://atamel.dev/posts/2020/06-29_dotnetcore31-cloudshell-appengine-flex.md) - [Daily COVID-19 cases notification Pipeline with Knative Eventing, BigQuery, Matplotlib and SendGrid](https://atamel.dev/posts/2020/06-15_daily-covid19-cases-notification-pipeline.md) - [Event-Driven Image Processing Pipeline with Knative Eventing](https://atamel.dev/posts/2020/06-05_event-driven-image-processing-pipeline-knative.md) - [Workload Identity Authentication for Knative v0.14.0 on GKE](https://atamel.dev/posts/2020/05-20_workload_identity_authentication_for_knative_on_gke.md) - [Knative Eventing Delivery Methods](https://atamel.dev/posts/2020/03-12_knative-eventing-delivery-methods-79d4ebe30a68.md) - [An app modernization story — Part 4 (Serverless Microservices)](https://atamel.dev/posts/2020/02-24_an-app-modernization-story---part-4--serverless-microservices.md) - [An app modernization story — Part 3 (Containerize & Redeploy)](https://atamel.dev/posts/2020/02-12_an-app-modernization-story---part-3--containerize---redeploy.md) - [An app modernization story — Part 2 (Lift & Shift)](https://atamel.dev/posts/2020/02-06_an-app-modernization-story---part-2--lift---shift.md) - [An app modernization story — Part 1 (Prototype)](https://atamel.dev/posts/2020/01-31_an-app-modernization-story---part-1--prototype.md) - [Knative v0.12.0 update](https://atamel.dev/posts/2020/01-27_knative-v0-12-0-update.md) - [How to properly install Knative on GKE](https://atamel.dev/posts/2020/01-13_how-to-properly-install-knative-on-gke.md) ### 2019 - [Cluster local issue with Knative Eventing v0.9.0](https://atamel.dev/posts/2019/10-14_cluster-local-issue-with-knative-eventing-v0-9-0-a1fee2215cfe.md) - [How to deploy a Windows container on Google Kubernetes Engine](https://atamel.dev/posts/2019/09-28_how-to-deploy-a-windows-container-on-google-kubernetes-engine.md) - [Knative v0.9.0](https://atamel.dev/posts/2019/09-26_knative-v0-9-0.md) - [How to deploy a Windows container on Google Compute Engine](https://atamel.dev/posts/2019/09-21_how-to-deploy-a-windows-container-on-google-compute-engine.md) - [Migrating from Knative Build to Tekton Pipelines](https://atamel.dev/posts/2019/08-28_migrating-from-knative-build-to-tekton-pipelines.md) - [Migrating from Kubernetes Deployment to Knative Serving](https://atamel.dev/posts/2019/07-31_migrating-from-kubernetes-deployment-to-knative-serving.md) - [Serverless gRPC + ASP.NET Core with Knative](https://atamel.dev/posts/2019/07-24_serverless-grpc---asp-net-core-with-knative.md) - [Knative Serving 0.7](https://atamel.dev/posts/2019/07-01_knative-serving-0-7.md) - [Cloud Run as an internal async worker](https://atamel.dev/posts/2019/05-28_cloud-run-as-an-internal-async-worker.md) - [Knative + Buildpacks: Source code to container image without Dockerfile](https://atamel.dev/posts/2019/05-16_knative---buildpacks--source-code-to-container-image-without-dockerfile.md) - [Knative to Cloud Run](https://atamel.dev/posts/2019/05-07_knative-to-cloud-run.md) - [Professional Cloud Architect Certification](https://atamel.dev/posts/2019/03-04_professional-cloud-architect-certification.md) - [Hands on Knative — Part 3](https://atamel.dev/posts/2019/02-19_hands-on-knative---part-3.md) - [Hands on Knative — Part 2](https://atamel.dev/posts/2019/02-11_hands-on-knative---part-2.md) - [Hands on Knative — Part 1](https://atamel.dev/posts/2019/02-04_hands-on-knative---part-1.md) - [Application metrics in Istio](https://atamel.dev/posts/2019/01-07_application-metrics-in-istio.md) ### 2018 - [Istio Routing Basics](https://atamel.dev/posts/2018/11-02_istio-routing-basics.md) - [Dialogflow fulfillment with C# and App Engine](https://atamel.dev/posts/2018/09-24_dialogflow-fulfillment-with-c--and-app-engine.md) - [Istio 101 (1.0) on GKE](https://atamel.dev/posts/2018/08-06_istio-101--1-0--on-gke.md) - [Google Home meets .NET containers using Dialogflow](https://atamel.dev/posts/2018/07-13_google-home-meets-net-containers-using-dialogflow.md) - [.NET Days in Zurich, Shift Conf in Split](https://atamel.dev/posts/2018/06-11-net-days-in-zurich-shift-conf-in-split.md) - [Istio 101 (0.8.0) on GKE](https://atamel.dev/posts/2018/06-07_istio-101--0-8-0--on-gke.md) - [Codemotion in Amsterdam, Devoxx in London](https://atamel.dev/posts/2018/05-29_codemotion-in-amsterdam--devoxx-in-london.md) - [Istanbul: The city where the East and the West meet](https://atamel.dev/posts/2018/05-20-istanbul-the-city-where-the-east-and-the-west-meet.md) - [Manchester after 20 years](https://atamel.dev/posts/2018/05-11-manchester-after-20-years.md) - [First time in China](https://atamel.dev/posts/2018/@meteatamel/first-time-in-china-142711218529.md) - [Trip Report: TDC in Florianópolis](https://atamel.dev/posts/2018/04-25_trip-report--tdc-in-florian-polis.md) - [Istio 101 with Minikube](https://atamel.dev/posts/2018/04-24_istio-101-with-minikube.md) - [Trip Report: Codemotion in Rome](https://atamel.dev/posts/2018/04-19_trip-report--codemotion-in-rome.md) - [How to run Windows Containers on Compute Engine](https://atamel.dev/posts/2018/04-03_how-to-run-windows-containers-on-compute-engine.md) - [Istio + Kubernetes on Windows](https://atamel.dev/posts/2018/02-19_istio---kubernetes-on-windows.md) - [Minikube on Windows](https://atamel.dev/posts/2018/02-14_minikube-on-windows.md) ### 2017 - [Little Mermaid and the Balkans](https://atamel.dev/posts/2017/10-30_little-mermaid-and-the-balkans.md) - [Ada Lovelace Day in London, Unter den Linden in Berlin and DevFest in beautiful Lviv](https://atamel.dev/posts/2017/10-16_ada-lovelace-day-in-london--unter-den-linden-in-berlin-and-devfest-in-beautiful-lviv.md) - [Deploying ASP.NET Core apps on Kubernetes/Container Engine](https://atamel.dev/posts/2017/09-11_deploying-asp-net-core-apps-on-kubernetes-container-engine.md) - [Deploying ASP.NET Core apps on App Engine](https://atamel.dev/posts/2017/08-15_deploying-asp-net-core-apps-on-app-engine.md) - [Putting gRPC multi-language support to the test](https://atamel.dev/posts/2017/05-08_putting-grpc-multi-language-support-to-the-test.md) - [Windows and .NET on Google Cloud Platform](https://atamel.dev/posts/2017/03-20_windows-and--net-on-google-cloud-platform.md) - [Windows and .NET Codelabs - an overview](https://atamel.dev/posts/2017/02-07_windows-and-net-codelabs-an-overview.md) - [From the Monolith to Microservices](https://atamel.dev/posts/2017/01-23_from-the-monolith-to-microservices.md) - [Google Cloud Next’17](https://atamel.dev/posts/2017/01-19_google-cloud-next-17-2a9b5b990c2d.md) ### 2016 - [How to build and launch an ASP.NET Core app from Google Cloud Shell — without ever leaving the browser](https://atamel.dev/posts/2016/11-11_how-to-build-and-launch-an-aspnet-core-app-from-google-cloud-shell.md) - [Managing containerized ASP.NET Core apps with Kubernetes](https://atamel.dev/posts/2016/10-14_managing-containerized-aspnet-core-apps-with-kubernetes.md) - [Running Powershell on Google Cloud SDK](https://atamel.dev/posts/2016/09-13_running-powershell-on-google-cloud-sdk.md) - [Getting started with Cloud Tools for Visual Studio](https://atamel.dev/posts/2016/09-08_getting-started-with-cloud-tools-for-visual-studio.md) - [Getting started with Google Cloud Client Libraries for .NET](https://atamel.dev/posts/2016/08-26_getting-started-with-google-cloud-client-libraries-for-net.md) - [Scheduling Dataflow pipelines using App Engine Cron Service or Cloud Functions](https://atamel.dev/posts/2016/04-12_scheduling-dataflow-pipelines-using-app-engine-cron-service-or-cloud-functions.md)