Author: Richard Seroter

  • Daily Reading List – October 5, 2023 (#176)

    I’ve got a few things in today’s issue about developer productivity. There’s nuance here that sometimes get left out, and I’m glad we’re starting to explore what it means to measure people versus teams. I may write something about it myself.

    [blog] 2023 State of DevOps Report: Culture is everything. Wow, this year’s report is truly outstanding and it’s full of more details than any edition prior. Download it now to get insights into high performing teams.

    [article] 6 ways automation makes things worse. Yes, automated things are always better. Here some examples of places where automation may yield undesirable results.

    [blog] 10 IT Jobs to Consider: AI-Proofing Your Career. I don’t think any job is “AI proof” if this means that AI can’t do key parts of the role. But, there are definitely functions of many roles that benefit from human brains!

    [blog] Managing Software at Scale: Kelsey Hightower Talks with Niklas Gustavsson about Fleet Management. Here’s a good video from last year where Kelsey chats with Spotify’s chief architect about a range of topics, including their squad model, fleet management, Backstage, and more.

    [article] Kestra is an open source data orchestration platform for complex workflows. Do we need more data integration tools? Sure, there’s always reinvention possible.

    [blog] How LinkedIn Is Using Embeddings to Up Its Match Game for Job Seekers. Here’s a good deep dive into how LinkedIn builds smarter AI assistance for its customers.

    [blog] The convenience of System.Text.Json. You’re a particular type of person if you geek out on JSON processing in .NET. If you are that person, hello, and read this.

    [blog] McKinsey Developer Productivity Review. What did McKinsey get wrong in their evaluation of dev productivity? Dan digs into it and points out a pair of fundamental flaws in the analysis.

    [article] Platform Teams: Adopt These 7 Developer Productivity Drivers. Staying on the topic of productivity, check out this article for suggestions on building an environment where developers thrive.

    [article] 4 Ways to Make Work More Meaningful. These four practices for a greater sense of meaning at work can apply whether you sling code or hash browns.

    ##

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – October 4, 2023 (#175)

    Another wild and wacky day, but who wants work to be boring? Not this guy. Maybe slightly more boring. Check out some of the items I read today that were focused on leadership and architecture. Some good ones in there!

    [blog] Should You Care About Developer Productivity? Terrific post from the Forrester Research team that calls out what devs do besides coding, and how to better support them.

    [article] What Makes an Inclusive Leader? There’s some useful, actionable info here for those that want to build environments where people thrive.

    [blog] 4 Great Ways to Get Docs Feedback From Developers. Whether you’re serving internal or external devs, docs matter a ton. Here’s how to get better feedback from your users.

    [blog] Five generative AI use cases for the financial services industry. If you trust a generative AI model—that’s a big *if*—there are many exciting ways it can help you do your job. I like the examples here.

    [article] Confluent Wants to Make Batch Processing a Thing of the Past. Batch processing isn’t going anywhere, but it’s great to see data streaming get easier and easier. Related.

    [article] Managing 238 Million Memberships of Netflix: Surabhi Diwan at QCon San Francisco. Lots of good details in this summary of a recent conference talk.

    [blog] Make with MakerSuite Part 2: Tuning LLMs. Fairly short post, because fine-tuning an LLM for a generative AI app isn’t THAT complicated using this tool.

    [blog] GKE Network Planning (2023). Great look at the three places you assign IPs in a Kubernetes architecture, and how to plan for each.

    [blog] Test-Driven Development with AI: The Right Way to Code Using Generative AI. Be careful having generative AI write your unit tests, as it may helpfully test it assuming your bugs are features. It’s still a good idea to write the tests yourself, first.

    [blog] Cloud Spanner — Table Interleaving use cases. What are the implications of physically co-locating child records with parent records in a Spanner database table? This post takes a look.

    ##

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – October 3, 2023 (#174)

    Today was one of those days where I had to remind myself that what I do, isn’t who I am. While I throughly enjoy my job, it doesn’t define me! It’s too easy to get lost in your work and postpone the things that really matter.

    [article] Cloud startup Pulumi raises $41M from Madrona, NEA to grow ‘infrastructure as code’ platform. Pulumi is now a legit option for those figuring out their infrastructure automation bets. Congrats to them.

    [docs] Best practices for running batch workloads on GKE. We can write poems about the wonders of real-time data processing, but a LOT of the world runs on batch jobs. This new article in the Google Cloud docs is solid.

    [article] Do you really need both cloud architects and engineers? You need the functions, at least. You may ask engineering leaders to be architects (versus having distinct roles), but architecture has never been more important in IT.

    [article] More companies are ramping up generative AI pilots. I’ll take “headlines I’m not surprised about, for $1000, Alex.” In just six months, you have nearly triple the number of pilots and double the production deployments.

    [blog] Why are Cloud Development Environments Spiking in Popularity, Now? Are you, or folks in your team using CDEs? You’ll find them offered by major cloud vendors and software vendors. Here’s some good analysis of the space.

    [blog] The Making of Duet AI – your AI-powered collaborator in Google Cloud. We may never talk in depth about how we organized and delivered generative AI for Google Cloud in 2023, but here’s one peek into the effort.

    [blog] Java Microservices with Spring Boot and Spring Cloud. Great demo that shows how to secure a Java microservice with a fault-tolerant API gateway.

    [article] MongoDB hires AWS veteran Jim Scharf as new CTO. MongoDB seems like a well-run company that attracts great talent. Their customer focus is admirable.

    [article] Writing Good Survey Questions: 10 Best Practices. Bad survey questions yield bad data. Here’s some advice on writing good questions.

    ##

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – October 2, 2023 (#173)

    Eleanor Roosevelt once said “Learn from the mistakes of others. You can’t live long enough to make them all yourself.” I enjoy reading incident reports and stories of how folks solved tricky problems. You’ll find two such pieces in the list below.

    [blog] Incident Review: What Comes Up Must First Go Down. What happens when you do all the right things, and that somehow contributes to an incident? The crew at Honeycomb wrote up a very good incident report that explains it.

    [blog] Serverless phpIPAM on Cloud Run. Serverless functions are a terrific mechanism for connecting managed services together. It’s not often the right choice for code-heavy apps or complete software packages. Here’s a case of running a software product on our container-based serverless platform.

    [blog] Lessons from debugging a tricky direct memory leak. It’s probably not fun in the heat of the moment, but good tech teams kinda enjoy the exploration of system problems and uncovering the root cause.

    [blog] This Is The Best Way To Get Big Projects Done: 5 Secrets From Research. Want to get projects done—at work, or even a home improvement project—then do these five things.

    [blog] Chromebook Plus: more performance and AI capabilities. Here comes the Plus edition. I’m personally holding out for Chromebook Extreme. Maybe next year?

    [docs] Organizing a Go module. I like this detailed look at considerations for laying out a Go project on your file system.

    [blog] The API Gateway and the Future of Cloud Native Applications. The API gateway continues to be an important part of many architectures, and will evolve further as meshes and mesh technologies take hold.

    [blog] State of Local Development and Testing 2023. Survey data that likely skews more indie dev or small/midsize company (versus enterprise), but still useful for observing trends.

    [blog] So long data silos: Announcing BigQuery Omni cross-cloud joins. Join data across cloud data lakes in a single query? That’s what we have here, and it’s pretty cool.

    ##

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 29, 2023 (#172)

    Hopefully you learned something new this week. If not, find an item or two below that scratches that itch, even if it’s not a topic area you usually study. Have a great weekend!

    [blog] The Written Word. Terrific little post about the art of writing well. It takes practice, and most of us aren’t practicing enough!

    [article] Cloud sprawl frustrates enterprise connectivity. Self-service clouds and SaaS apps solved a ton of problems. And naturally created new ones.

    [blog] Top 10 Google Cloud Resources to bookmark for learning. If you want to casually or seriously pick up some knowledge about Google Cloud, these are good places to start.

    [blog] DataStax takes aim at event driven AI with open source LangStream project. As you can imagine, there are gobs of new projects emerging to help folks build generative AI apps. Here’s one to watch.

    [blog] Cloud Storage announcements at Next ‘23: a recap. I honestly didn’t catch all these updates at the time. It’s a good mix of performance, functional, and manageability capabilities.

    [blog] Executing Cron Scripts Reliably At Scale. This is a look at the Kubernetes-based architecture that Slack uses to run jobs.

    [blog] Deploy to Cloud Run with GitHub Actions. Here’s a good demo for those that like serverless computing and continuously shipping software.

    [article] A crisis of spending and cloud-based GenAI. Companies are spending on AI, but where is the money coming from? This article says it’s coming from redirecting existing spend, which has implications.

    [article] Angular, Qwik Creator on How JS Frameworks Handle Reactivity. I likely won’t reuse the knowledge I got from this article, but it was academically interesting and sometimes that’s good enough.

    ##

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • An AI-assisted cloud? It’s a thing now, and here are six ways it’s already made my cloud experience better.

    An AI-assisted cloud? It’s a thing now, and here are six ways it’s already made my cloud experience better.

    Public cloud is awesome, full stop. In 2023, it’s easy to take for granted that you can spin up infrastructure in dozens of countries in mere minutes, deploy databases that handle almost limitless scale, and access brain-melting AI capabilities with zero setup. The last decade has seen an explosion of new cloud services and capabilities that make nearly anything possible.

    But with all this new power comes new complexity. A hyperscale cloud now offers 200+ services and it can often feel like you have to know everything to get anything done. Cloud needs a new interface, and I think AI is a big part of it. Last month, Google Cloud triggered a shift in the cloud market with Duet AI (in preview) that I expect everyone else to try and follow. At least I hope so! Everything else feels very dated all of a sudden. AI will make it fun to use cloud again, whether you’re a developer, ops person, data expert, or security pro. I’ve been using this Google Cloud AI interface for months now, and I’ll never look at cloud the same way again. Here are six ways that an AI-assisted Google Cloud has already helped me do better work.

    1. I get started faster and stay in a flow-state longer because of inline AI-powered assistance

    Many of us spend a big portion of our day looking through online assets or internal knowledge repos for answers to our questions. Whether it’s “what is [technology X]?”, or “how do I write Java code that does [Y]?”, it’s not hard to spend hours a day context-switching between data sources.

    Duet AI in Google Cloud helps me resist most of these distracting journeys through the Internet and helps me stay in the zone longer. How?

    First, the code assistance for developers in the IDE is helpful. I don’t code often enough to remember everything anymore, so instead of searching for the right syntax to use Java streams to find a record in a list, I can write a prompt comment and get back the right Java code without leaving my IDE.

    And for declarative formats that I never remember the syntax of (Terraform scripts, Kubernetes YAML), this in-place generation gives me something useful to start with.

    The coding assistance (code generation, and test generation) is great. But what really keeps me in a flow state is the inline chat within my IDE. Maybe I want to figure out which of the two major container services in Google Cloud I should use. And then after I choose one, how to walk through a deployment. Instead of jumping out to a browser and spending all sorts of time finding the answer, I’m doing it right where I work.

    But life doesn’t just happen in the IDE. As I’m learning new products or managing existing apps, I might be using the UI provided by my cloud provider. The Google Cloud Console is a clean interface, and we’ve embedded our AI-based chat agent into every page.

    I might want to learn about service accounts, and then figure out how to add permissions to an existing one. It’s so great to not have to fumble around, but rather, have a “Google expert” always sitting in the sidebar.

    The same inline context sits in a variety of cloud services, such as BigQuery. Instead of jumping out of the Console to figure out complex query syntax, I can use natural language to ask for what I want, Duet AI infers the table schema, and generates a valid query.

    I find that I’m finishing tasks faster, and not getting distracted as easily.

    2. I’m saving time when helpful suggestions turn into direct action

    Information is nice, actionable information is even better.

    I showed above that the coding assistant gives me code or YAML. From within the IDE chat, I can do something like ask “how do I write to the console in a Java app” and take the resulting code and immediately inject it into the code file by clicking a button. That’s a nice feature.

    And in the Cloud Console, the chat sidebar offers multiple action items for any generated scripts. I can copy any code or script to the clipboard, but I can also run the command directly in the embedded Cloud Shell. How cool is that? What a quick way to turn a suggestion into action.

    3. I’m doing less context-switching because of consistent assistance across many stages of the software lifecycle

    This relates to the entirety of Google’s AI investment where I might use Google Search, Bard, Workspace, and Cloud to get my work done.

    Bard can help me brainstorm ideas or do basic research before dumping the results into requirement spec in Google Docs.

    I may sketch out my initial architecture in our free and fun Architecture Diagramming Tool and then ask Bard to find resilience or security flaws in my design.

    Then I can use Duet AI in Google Cloud to code up the application components, introduce tests, and help me set up my CI/CD pipeline. From design, to development, to ops, I’m getting AI assistance in a single platform without bouncing around too much. Not bad!

    4. I’m building better the first time because I get recommended best practices as I go along

    Sometimes our “starter” code makes its way to production, right? But what if it was easier to apply best practices earlier in the process?

    We trained Duet AI in Google Cloud on millions of pages of quality Google Cloud docs and thousands of expert-written code samples, and this helps us return smart suggestions early in your development process.

    When I ask for something like “code to pull message from a Google Cloud Pub/Sub subscription” I want quality code back that works at scale. Sure enough, I got back code that looks very similar to what a dev would find by hunting through our great documentation.

    With effective model prompting, I can get back good architectural, code, and operational insights so that I build it right the first time.

    5. I’m analyzing situations faster because of human-readable summaries of low-level details

    I’m excited to see the start of more personalized and real-time insights powered by AI. Let’s take two examples.

    First, our Security Command Center will show me real-time AI-generated summaries of “findings” for a given threat or vulnerability. I like these more human readable, contextual write-ups that help me make sense of the security issue. Great use of generative AI here.

    Another case is Duet AI integration with Cloud Logging. Log entries have a “explain this log entry” button which asks the integrated Chat experience to summarize the log and make it more digestible.

    I’d like to see a lot more of this sort of thing!

    6. I’m not locked out of doing things on my own or customizing my experience

    There aren’t any tradeoffs here. In past platforms I’ve used, we traded convenience for flexibility. That was a hallmark of PaaS environments: use an efficient abstraction in exchange for robust customization. You got helpful guardrails, but were limited what you could do. Not here. AI is making the cloud easier, but not keeping you from doing anything yourself. And if you want to build out your own AI services and experiences, we offer some of the world’s best infrastructure (TPUs, FTW) and an unparalleled AI platform in Vertex AI. Use our Codey model yourself, mess with your favorite open models, and more. AI is here to help, not force you into a box.

    The Google Cloud folks have this new marketing slogan plastered on buildings and billboards all over the place. Have you seen it? I took this picture in San Francisco:

    Don’t dismiss it as one of the usual hype-y statements from vendors. Things have changed. The “boomer clouds” have to evolve quickly with AI assistance or they’ll disappoint you with a legacy-style interface. Fun times ahead!

  • Daily Reading List – September 28, 2023 (#171)

    We’ve finished a week of promo reviews this week at Google. It causes my imposter syndrome to flare up, as I’m surrounded by people doing tremendous work and are more talented than I am. But, that’s a great motivator to keep learning and growing. There are a few pieces below that taught me new things today.

    [article] Software Delivery Enablement, Not Developer Productivity. Don’t mistakenly get caught up in measuring individual devs; measure the effectiveness of the system itself, and the teams that depend on it.

    [blog] A Secure Approach for deploying HashiCorp Vault on a Private GKE Cluster. Detailed walkthrough of running a popular secrets manager on a Kubernetes cluster.

    [blog] Want Better and Faster Results? Increase Team Size and Reduce WIP. I really like the point that Johanna makes here. Large teams don’t HAVE To be slower. But they will, if you also increase work-in-progress and each person is doing their own thing.

    [blog] Tales from the .NET Migration Trenches – Migrating Initial Business Logic. There’s a lot that goes into a real app modernization effort. This series of posts looks at how one might do it.

    [blog] How CoreLogic modernized its application platform and saved costs in Google Cloud. Speaking of modernization, here’s how one company evolved their Cloud Foundry investment into native cloud strategy and saw good returns.

    [blog] Announcing New Tools to Help Every Business Embrace Generative AI. Good to see our AWS friends start to ship! There’s some important updates here to their portfolio.

    [blog] Google is a Leader in the 2023 Gartner® Magic Quadrant™ for Container Management. This is a mature space, but it’s still interesting to read the notable differences in “cautions” among the leading vendors. Click through to download a copy of the report.

    [article] 10 JavaScript concepts every Node developer must master. There are some good fundamentals called out here.

    [blog] Working at a Startup vs in Big Tech. There’s a difference, no doubt. I’ve done 3-ish startups, and a couple Big Tech places. Your experience doesn’t just depend on company size; it relates to your role, stage of career, and the specific company.

    ##

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 27, 2023 (#170)

    Today is Google’s 25th birthday. I’m old enough to be its dad! Check out a few links related to that (the birthday, not my fathering of an internet company), as well as some terrific tech content.

    [blog] Google at 25: By the numbers. Fun set of insights using different numbers to represent the significant impact that Google has on the world.

    [blog] Celebrating 25 years of Google Search: developer trends and history. How have dev trends changed over time? This post takes a look.

    [article] The Angular Renaissance: Why Frontend Devs Should Revisit It. Angular has been around a while, and many developers rely on it for important apps. This article points out that its time for new folks to take a look as well.

    [blog] Designing a Cloud Center of Excellence (CCOE). Good post on the AWS blog that looks at the reasoning, tasks, and durability of a CCOE within a company.

    [blog] Make with MakerSuite – Part 1: An Introduction. Watch for an explosion of tools that make it easier to incorporate generative AI capabilities into apps.

    [site] ThoughtWorks Radar Volume 29. I always look forward to these updates. This explores the techniques, tools, platforms, and languages that you should adopt, consider, or hold.

    [blog] MySQL High Availability. Flipkart does a lot of MySQL, and built a home-grown solution to manage the high availability of their clusters.

    [blog] Discovering LangChain4J, the Generative AI orchestration library for Java developers. LangChain seems popular, but you might feel left out if you don’t want to use JavaScript or Python. This post looks at an open source project that brings this tool to Java devs.

    [docs] Optimize costs with FinOps hub. Will clouds pay lip service to cost management assistance, and then make it hard to optimize? I hope not! Our new FinOps dashboard seems helpful.

    [blog] Data on Kubernetes has crossed the chasm: the case for running stateful apps on GKE. A rapidly-growing set of folks are choosing Kubernetes for stateful workloads. That’s a change from years past where it wasn’t trusted for production-grade data systems. Not anymore.

    [blog] Best Practices for Securing Node.js Applications in Production. Good advice for Node/JavaScript apps, but same for Java, Go, C#, or any other language.

    ##

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 26, 2023 (#169)

    It’s probably just me, but it feels like the technology introduction/adoption cycle is speeding up. More new platforms and tech, faster growth. it’s exciting, but I’m not sure how most folks are keeping up.

    [article] Tech Works: When Should Engineers Use Generative AI? Good piece. Be aware of what you’re doing. But I do suspect that many of these underlying concerns about generative AI results will (a) fade as products improve and (b) not matter as the value outweighs the cost.

    [youtube-video] Cloud Functions local debugging. It used to be tough to build and debug serverless functions anywhere but in the cloud. Not any more. Local dev and debugging is easier now.

    [blog] Spring Boot, a persistent ORM and a consistent Database! Very good example from Abi that shows some end-to-end work connecting a Java app to a database and deploying to a serverless runtime.

    [blog] Creating kids stories with Generative AI. Here’s a good use of AI! Generate bed time stories. We’re probably only a step or two away from generating mission statements, annual goals, and quarterly reports.

    [article] Intro to HTMX: Dynamic HTML without JavaScript. This seems like something we should pay more attention to, and I am now.

    [blog] 25 fun facts about Google offices and data centers. These are actually pretty fun. I didn’t realize the Paris office I was in last week was a former railway headquarters and hotel.

    [blog] The Tech Marketer’s Problem. Everyone has an angle. Hey, me included. Coté suggests you be aware of that, but also don’t dismiss the angle outright.

    [blog] Monolith to Microservices: How a Modular Monolith Helps. Build modular code components and refactor later into distinct microservices if needed? Seems like a smart approach.

    ##

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below:

  • Daily Reading List – September 25, 2023 (#168)

    Today’s my birthday, and I enjoyed a productive day at work, and hopefully, I’ll have a fun evening with the family. It’s a gift to take another lap around the sun, and I try to keep perspective of what’s really important in life!

    [blog] Navigate The Seas Of Developer Experience. I’m seeing a volume increase from the big analyst firms on the topic of developer experience. Which means enterprises are hearing the same thing. Forrester did some good work exploring the various stakeholders of dev ex.

    [blog] A Behind-the-Scenes Look at Chaos Testing. How do you know if your event-driven system can handle failure? This post from Yugabyte offers up a good list of server-side and client-side chaos scenarios to test a change data capture process.

    [youtube-video] Fine Tune Palm 2 + How to make a dataset. 15+ minute video that makes AI model fine-tuning feel less scary.

    [blog] Bun: lessons from disrupting a tech ecosystem. Funding and focus make a difference, as does a freedom to try new things without concerns about breaking existing customers.

    [blog] Distilling step-by-step: Outperforming larger language models with less training data and smaller model sizes. Blog and paper that looks at a new approach to building smaller, high performing models without the need for so much training data.

    [youtube-video] Build AI-powered apps on Vertex AI with LangChain. Lots of folks watched this video over the weekend and learned about building generative AI apps.

    [article] 5 Types of Stories Leaders Need to Tell. Storytelling isn’t natural for everyone, and can feel like “fluff” that gets in the way of explaining what needs to be done. But if you notice that folks don’t follow your lead, it may be because you haven’t painted the picture to move them.

    [article] From Cloud-Hosted to Cloud-Native. Using cloud services as hosted versions of on-prem software rarely makes anyone happy. This talk and transcript looks at moving to a more modern architecture.

    [blog] BYO Service Mesh on GKE Autopilot. There’s always a tug between fully-managed products and the desire for low-level configurations. Somehow, GKE Autopilot made this possible for Kubernetes in a useful way.

    [article] Why Is It So Hard to Leave a Bad Job? I like my job, but we’ve all been in a place where we wanted to make a change. These are good reasons, and mitigation for concerns, for switching.

    ##

    Want to get this update sent to you every day? Subscribe to my RSS feed or subscribe via email below: