My Developer Advocacy
A couple of years ago, I finally became a developer advocate after many years of trying to get closer to developer relations. I also got a chance to tell the story of my path to this role in a video on the Google Cloud Tech YouTube channel.
Currently, I'm on leave from work. And since I can't do work related activities on leave, I have been pondering my value and values as a developer advocate. I'm also making my way through the book Developer Relations: How to Build and Grow a Successful Developer Program by Caroline Lewko and James Parton and I thought it might be worthwhile for myself and others if I put these ideas down in a blog.
A couple of years ago, I finally became a developer advocate after many years of trying to get closer to developer relations. I also got a chance to tell the story of my path to this role in a video on the Google Cloud Tech YouTube channel.
Currently, I'm on leave from work. And since I can't do work related activities on leave, I have been pondering my value and values as a developer advocate. I'm also making my way through the book Developer Relations: How to Build and Grow a Successful Developer Program by Caroline Lewko and James Parton and I thought it might be worthwhile for myself and others if I put these ideas down in a blog.
Job Title & Terms
There are a couple of titles that seem to be used interchangeably in the world of developer advocacy. Because I like word play and I'm a bit of a pedant, here are my thoughts on how they relate to me.
- Developer Relations (DevRel) - This has become the overall umbrella for several related things when companies are trying to connect with developers better. And, since I currently don't want to be head of any departments, I'll just say that I'm in DevRel but that's not necessarily my title.
- Developer Relations Engineer (DRE) - Officially, this is my current title with Google Cloud. I don't mind it. It reminds me and others that I am still an engineer and like doing tech work. But, it is still more of the umbrella term and I could be focusing on things that might not play to my strengths or values.
- Developer Evangelist - This is the term I first heard when I learned it was an actual role. I jokingly liked it because of my wrestler name but for me, it seems a little bit too much like a snake oil salesman. It's a role I can play for laughs but I really don't want to sell snake oil. I want to help developers grow and succeed.
- Developer Advocate (DA) - This is my preferred title, and the one I use as my official title where one is asked for. I like that it points to my position as an advocate for developers and their needs. Last year, I could (not completely unrealistically) joke that I also specialized as a Canadian Developer Advocate but that might just be my Canadienthusiasm even though I'm from the States.
- Tech Muse - This isn't a term used very much, but enough that I couldn't get it as a username on social platforms. This is a term I use to describe myself and a goal of what I strive to be when I'm in front of other developers.
- B2D Sales - Business to developer sales. From terms like B2B and B2C, marketing to developers is somewhat of a hybrid of the two.
My Values
Developers are the creators of innovation. To create, Developers need tools. Developer tools demand Developer Relations.
Perhaps I'm biased. I've been a developer since 2005. I think that developers are core to making new great tech. A developer is an artist who paints with code and technical know how. A developer works with other artists, like graphical designers and artists, QA, writers, and more to create these multimedia pieces of art. I should create a post about my hypothesis regarding the art/business spectrum, but business is usually what makes things less exciting while helping to actually release stuff.
I value inspiring that creativity. I'm excited about the things that people create and do with tech, or otherwise. In fact, my former podcast, The Seattle After Party, was all about what interesting things people were creating and doing (in the Seattle area). My goals should align with me being something of a tech muse in all the work I do for the role.
My Strengths
The first, and main reason I wanted to get into developer advocacy is because I am a performer by nature and love being in front of an audience. Through my training as a pro-wrestler, improviser, and other performance arts I've learned to create and tell a story based on what the audience needs. I also love meeting developers face to face to talk about what they are working on. Hopefully, I can be a bit of a tech muse during these interactions.
Those actions are almost always full of humor, joy, and play. This is me at my core, and all my favorite demos and workshops have this at their heart as well. I find that this helps people learn new tech (and new things in general). Make it silly. Make it fun. But, just make it. That is my advice to people trying to learn how to code when I'm asked online.
My Weaknesses?
I am neurodivergent. I have ADHD. I was late diagnosed in my 40s, so I have many coping mechanisms I've built up over the years. I succeeded before I was diagnosed. So, there are some nuggets of wisdom there. But, I also have become burnt out at work, or depressed, or anxious. So, these mechanisms may not be completely healthy. That's why I am exploring my values so that I can better succeed in the future and stay in a more consistent state.
One consistent thing I've found is that I don't want to be a salesperson. At least, not the stereotypical salesperson that sells the sizzle and not the steak or straight up lies to people to get sales. I've done sales before. It was retail B2C sales in a music store, and I eventually honed myself to be a top salesperson through taking care of customers actual needs. I once sold a $16K+(90s money) home studio setup to a gentleman and he went through me because I looked at what he actually needed and didn't try to sell him more than he needed just because he had the money. My experience with developers is, they don't like to be sold sizzle. They want to know if the steak is right for them. If they are vegetarian, it isn't. But, they might have colleagues who it is perfect for.
Other Important Items
To the community, I represent the company To the company, I represent the community I must have both of their interests in mind at all times
I know that to the community, I represent Google at the moment. To the company, I know they rely on me to help bring the voice of the community. The company also knows that I represent them when I'm in the community. So, they want me to show them in the best light. This requires me to get better at my craft.
My craft requires skills that I am good at (presenting and performing), skills I've shown I can do (writing blogs, writing code, writing scripts, writing workshops, sales & marketing), and things I'm not so good at (data gathering). It is important that I continue to get better at the skills that aren't my best while providing the most value with the skills that I am good at. By following my values, rather than mandating to myself what I should do, I am likely to have more success with my personal growth.
Conclusion
I have quite a bit of room to grow in this role. I'm surrounded by lots of great folks in the tech and devrel world who I can learn from. I will continue to post to my various social media areas my thoughts on being a tech muse. What about you? What are your values? Please share with me and I will continue to share with you.
Non-alcoholic drink experiment: Lustrous Livener
I've grown tired of just making existing recipes and started to do some research on flavor profiles and taste to understand how I might want to think about mixing my own drinks with these ingredients. This led me to the following successful experiment...
The Lustrous Livener
At the end of 2023 I was looking to learn a new skill, bartending, mixology, making drinks. My liver numbers were good (chronic health condition, always watching) and I like learning new, creative skills. My wish list for that year had a ton of bartending gadgets, gizmos, samplers, and general gear to help me get outfitted for the hobby.
Sometime just before Christmas, I did new bloodwork. Turns out my liver numbers were bad again. Not too bad, but bad enough that I didn't really want to drink except under very special occasions. Then Christmas happened and people were very supportive of my new hobby. What was I gonna do with all this gear? How was I gonna enjoy this hobby if I couldn't drink the final product?
What now?
The answer came to me one night when I was depressed about the investment of time, money and wish list space that I had put into this and was just gonna box it all up (not really something I'm new to. I have ADHD. Hobbies come and go). That answer was non-alcoholic drinks. Some call them mocktails, some call them spirit-free drinks and some just say, non-alcoholic options.
So, I got online and bought some alternatives for spirits I had been using. That was fun and I kept making and learning the drinks everyone knows about but with spirit free alternatives. Some worked better than others, but genuinely still tasty and fun.
But, there is more out there in the realm of NA beverages. There are brands that make non-alcoholic spirits that aren't really based on any existing spirit per se. Instead, they offer an interesting flavor profile. They'll usually have their own drink recipes on their website. But more often than not, I've been taking pictures of menus at restaurants and trying to recreate what I (or my wife) like.
The Lustre
One of the main base ingredients, that I've really loved is Lustre by Wilderton™. It has a wonderful floral flavor and you can drink it by itself (on the rocks anyone?). But it's been easy to mix in recipes without needing to know the exact recipe and it still comes out decent.
The Liveliness
One base ingredient that I haven't done much with is the Livener by Three Spirit™. It's a strong spicy flavor and marketed to be drank to keep you as the life of the party (awake?). I've had some success with some of their recipes on the website, but the strong spice flavor is not my usual cup of tea (BTW, use herbal teas with some of your drinks).
The Experiment
I've grown tired of just making existing recipes and started to do some research on flavor profiles and taste to understand how I might want to think about mixing my own drinks with these ingredients. This led me to the following successful experiment...
The Lustrous Livener
Ingredients
- 2 oz. Wilderton™ Lustre
- 1 oz. Three Spirit™ Livener
- 1/2 oz. Mojito Syrup by Portland Syrups™
Directions
- Place all the ingredients in a cocktail shaker with ice
- Shake vigorously for about 30 seconds
- Pour out (you can strain it, but it isn't necessary) into a martini glass (or any glass of similar size)
Voila! A tasty drink with a hint of spice for some kick but really just tasty. But here is this extra bit of fun advice, use any flavored syrup. You can garnish based on the syrup you choose. I got a sampler of syrups from Portland Syrups that I'm still going through. It is a good base for any flavor you want to mix it with. So, try it at home and enjoy.
Your Personal Knowledge Management Isn't Personal Enough
As a person with ADHD, I go through various subjects of hyperfocus over time. Some stick around, or at least come back time and again. One of those is personal knowledge management (PKM), especially with the software Obsidian. Recently, this hyperfocus came back after I found a PKM influencer who was talking about the Zettelkasten (zk) method using obsidian and how they also have ADHD.
I have heard of ZK when I first started my PKM journey many years ago. However, I leaned towards Tiago Forte's Building a Second Brain (BaSB) methodology as he also started his method because of his ADHD. Somewhere in there is a thought about bullet journaling (Bujo), or the reason I convinced myself I deserved a Remarkable 2, also created to try and organize thoughts in a way that is ADHD friendly.
So many different methods for similar ideas can make a mess of any system if you try to get it perfect. Luckily, the P in PKM is for Personal not perfect. So here is my personal journey that hopefully helps someone else.
Why even do this?
Why take notes? Why write a journal? Why build a second brain? These are the questions each of them started at when creating the system. For ZK, it was taking notes to synthesize them into future writing. For journaling, it was to capture the thoughts of life and be able to look back on life. For building a second brain, it was to simplify the work your brain needs to do so that it can focus better one thing at a time and easily find "memories". One could argue that each is basically the same thing, but that is likely because you can see your own needs in all three.
So, what are my own needs? Working in tech, there is always something new to learn and I'd like to be able to reference things I've read in the past. As a Developer Advocate, I need to create content in the form of blog posts, videos, workshops and more. It would be nice to have a collection of notes for that work. In general, I want to have a collection of memories to use as inspiration for all sorts of creative pursuits that I might try in my ADHD journey. I also want to collect therapeutic and psychological tricks into a sort of personal owner's manual.
If I were to distill it down, I want a tool to make my creativity flow well.
What do I build?
My recency bias has me lean towards the lessons I'm learning from Tony Ramella's Flow Vault which is heavily based on ZK. However, some of the aspects of BaSB are really nice too. Especially the CODE method of thinking about the process of taking notes. In reading more about ZK (How to Take Smart Notes), I see that it's all about creating something for the purpose of writing rather than keeping a personal wiki. That aligns with my desired value to attain from PKM mostly. There is still some value in having a personal wiki for my personal operations manual. Especially if I don't limit myself to writing. I could see it helping with my improv work or when I'm streaming.
This means I'm going to have to combine the idea of a wiki with ZK and make it work with the Flow Vault, since I did pay for the premium vault template.
The Structures
The PARA structure from BaSB breaks information into
- Projects - projects you are working on
- Areas - areas you like to study, pretty Wiki like if you ask me
- Resources - General useful info, more contact/phone book like than wiki like
- Archives - where projects go when you won't let them die
ZK seems to be broken down as such
- Source Notes - The intake of some form of information. Book, article, video, etc. for citations often
- Main Notes - Core notes which are synthesized ideas. Generally atomic.
- Index Notes - Ways to connect different (atomic) notes on a topic together
The Flow Vault seems to broken down as
- Flows - a mix of goal, projects, tracking of both, and reviews of your week/month/etc.
- Input - Basically an non organized inbox for new notes (The C in BaSB's CODE) and daily journal entries
- Tools - Templates, cheat sheets, snippets and other things that make the Obsidian vault work but don't really have much to do with other PKM needs
- Zettelkasten - A home for all the stuff mentioned in the ZK list above.
Mapping the structures together
When I started thinking about restructuring, I created a mindmap in Obsidian to get my brainstorming going. Did you know you can map charts, graphs, and mindmaps natively in Obsidian using Mermaid JS?
For the purpose of simplifying as much as possible (thus making it more likely that I will use the system) I decided to map everything to the Flow Vault in some way. Here's where I went.
- The PARA P (Projects) from BaSB maps perfectly into the Flows section of the vault so I will keep it there.
- The PARA first A (Areas) maps to the ZK main notes pretty well. They might need to be made more atomic for PKM purists but I have another acronym I try to remember, YAGNI. It stands for You Aren't Gonna Need It. I'm paraphrasing but it means, until the work provides value, hold off on doing it.
- The PARA R (Resources) will likely map to either main notes or tools, so that work will happen upon organization.
- The PARA final A (Archive) probably maps to the bits left over after a project is finished. So, some of those will just be kept with completed projects or deleted entirely if they are specific to the project and already represented in those pieces.
- Luckily, ZK maps perfectly to the Zettelkasten folder so no work there. However, there is one section I want to speak to - Source Notes
- I'm not an academic. Never really have been. So the idea of citations in the modern (non-academic) world of links seems like extra processing for my brain.
- I'll take what works about source notes, my highlights and associated notes from books, articles, etc. along with the goals of why I'm reading something and link ideas to the originals where necessary. But author names don't always come easily to my brain so remembering by them is odd to me.
Conclusion
My current structure is okay for now. It seems to work but there are more structures to contend with. What about task management? What about clearing out that note inbox on a regular basis? What about future what abouts? I'll write more on that in the future. For now, I'm having fun with my current hyperfocus.
What questions do you have about setting up Obsidian for your PKM journey? Do you have your own ideas for personalization? Let me know.
My discord with Discord
It all started back on the 24th of March, 2024. All of the sudden I am being asked to confirm my account with a phone number. "No problem." I think to myself. This is my account and this is the phone number I've had longer than Discord has been a company.
This was the beginning of poor support from Discord and nearly 6 months later, I'm still not back.
It's been long enough and my patience has run out, so it is time to tell my story of why my Minecraft Derp & Chill community uses a forum and not Discord.
A long time ago in a support ticket far away
It all started back on the 24th of March, 2024. All of the sudden I am being asked to confirm my account with a phone number. "No problem." I think to myself. This is my account and this is the phone number I've had longer than Discord has been a company.
This was the beginning of poor support from Discord and nearly 6 months later, I'm still not back.
First support
What's this? That phone number is linked to another account? That's weird, but okay. The automated support email I got back says to log in by that phone number and say I've forgotten the password, then delete the phone number from that account to link it to my main account. Easy enough, let's go.
Wait a minute, the account linked to the phone number has been disabled? Oh, well. It should be easy enough for support to remove my phone number from that account and allow me to link it to my main account. I'll just respond to my support ticket and let them know. It's the weekend though, so I'll probably need to be patient until the weekdays to get a real person looking at it.
Hmm, no one has gotten back to me and it has been a week. Maybe they fixed an issue that was causing it and I can just log in now. No. Still need to verify. Let me try the phone number thing again. Same outcome. Okay, I'll just be a little more patient.
April was a time of me sending many emails to Discord with varying results of getting a response. I even reached out to the Discord support account on X. I gave them my support ticket number and they said they would pass it to the advanced team. All in all, told once again to be patient a lot. It's only been a month. I've worked in support before. I can be patient.
Somewhere during April I created my Derp & Chill community/Minecraft forum so I could stay connected to my D&C community and discuss what is happening on the server as a group. Also, hopefully, build a community of people who watch us and enjoy the peaceful realm and acceptance of simpler play and silly ideas. That led to the Spoiler said: post by MadmanAcrossTheWater (one of the Les Derps). It meant a lot to me because I was very emotional about the whole thing and appreciated my community supporting me back.
Also, I was paying for Nitro every month. It just so happens that charge happens on the 21st, 3 days prior to the last time I could access my account. It was a pain to cancel Nitro without access to my account, but everything is easier when you can just refute the charge with your bank.
I repeated the support email cycle around the month mark in May, June, July and August. Sometimes the "be patient" response made me confident something was about to happen but I was wrong. Nothing has happened.
At this point, my benefit of the doubt has me thinking that the account which has my personal phone number associated with it must have done some nefarious things so they think I'm a griefer/hacker/bad guy. I've only been a bad guy in the wrestling ring, and that was entertainment - so needless to say that thought has me sad. I'm a good guy damnit. Why am I being punished? Would someone tell me something?
Missing out on other things
Recently, I was sent an email that said I could join the Stars Reach by Playable Worlds beta. The problem, I would need to join the Discord community to get information on how to do this. Well, crap.
I played Everquest and EQ2. When I worked for a company that got bought by Playdom, so did Raph Koster's company. I got to go work with him and thank him for his work as someone who enjoyed it. I trust that what his team is building will be cool. I guess I'll just "be patient" and wait until the game is released and I can buy it through normal channels.
Also, as a Developer Advocate at work there was some talk about reaching out to virtual communities. Discord was mentioned, of course. Well dang, I'm someone who is constantly online and I can't reach these communities. Luckily, I'm not measured with how well I connect with people on Discord, so I won't lose my job over it.
Conclusion
What I'm reminded of through all of this is, Discord is a great combination of many things that don't have an exact replica outside of Discord. It is basically free, with some benefits to paying for Turbo. But it is a bouncer that keeps people out of your community without your input. Once Discord kicks someone out, you can't let them in without moving your community elsewhere. You give up all control and receive the illusion of control but feature rich tools.
I'm pretty sure my community is less active because it isn't on Discord anymore. They got the network effect, many people work to make plugins and extensions for other things to work with Discord. I have a forum that people have to remember to visit. I have to work extra to also have a feature like voice chat, which is built into Discord and at no cost.
I hope you never lose access. I hope they never change their Terms & Conditions to something that is bad for you or your community but you are too entrenched and it is hard to get out because you don't actually have any control. This will happen for some of you. I'm sorry.
Fast Leaf Decay for Minecraft: Bedrock Edition
One of the main add-ons I've wanted as I play on Java servers is fast leaf decay. It's a quality of life add-on that doesn't take away from many players experience. Why isn't it on Bedrock? Well it is now, because I've made it. It is called Spoiled Leaves. Here is my story of development to finally making it public just this past week.
I'm not an old timer when it comes to Minecraft, but I have been playing since 2020. I started on the Java edition but I prefer Bedrock edition. I have multiple devices, I like to play on the same worlds, and I use realms to make that happen.
One of the areas where the Bedrock edition is usually called out is in the world of mods (called add-ons for Bedrock). There just aren't as many, and they are much more limited. There are many reasons for this and it has been steadily improving over time. But there is a long way to go.
One of the main add-ons I've wanted as I play on Java servers is fast leaf decay. It's a quality of life add-on that doesn't take away from many players experience. Why isn't it on Bedrock? Well it is now, because I've made it. It is called Spoiled Leaves. Here is my story of development to finally making it public just this past week.
The making of
I didn't know what it would take to make a script based add-on. The only one I made before just replaced the audio for villagers so it didn't require any programming. Instead of making a full plan, I started with creating a proof of concept so that I could see if I could do it with the scripting API.
For my IDE, I wanted to use NeoVim (and did) but also used bridge. (the period is part of the name) to make some of the process smoother. Since I was just making a proof of concept for my own education I could poke around without any time constraints. It was so much fun. It had been a long time since I had that much fun programming.
After a while, my work showed that it was doable, now I decided to try to make an actual add-on. All the other examples I saw were using experimental APIs, so I decided to start with those on then see if and when it became possible to use stable APIs. The examples were also in Javascript, and I hadn't setup a typescript compiler so I also started with it in javascript with the idea that I would convert to typescript after I got it working.
Recursion
The solution that I saw for the leaf decay mechanic on Bedrock was going to involve recursion for all the connected blocks to broken logs and leaves. This, I believe, is different than the way it is handled on Java but this is what I saw I had access to and understood.
For recursion to work and be performant, one thing you need to do is make sure to limit the depth of recursion. Because of Bedrock's leaf decay radius of 4 I had an easy answer for that. Another thing that usually needs to happen, especially in graph like structures (which blocks have through the 6 directional reference methods), is to make sure to only recurse over an entry once.
Javascript and equality
Javascript is two things, a great language and a terrible language. It has some weirdness that you would not expect, especially coming from other languages that don't have its history. For me this was with Block object equality and even the Vector objects representing the locations of those blocks. The Microsoft APIs were giving me new Block objects each time I referenced it from another method. The same thing happened with Vectors, which in my mind were closer to primitive and should have had proper equality already coded. Nope. When I tested if a block or location had been processed before, it always looked like a new object so it would be processed again. For an exponential algorithm like I was using this was a performance hit that I calculated shouldn't matter if it was limited to only processing blocks once.
The solution (for now, I know I can probably do better) that I figured out was to create a special class called a VectorSet that acts like a Set but you put the 3 dimensional vector objects in it and get all the benefits of a set. It worked right away, well after I made my initial code less confusing and understood what I was doing, and all of the sudden performance was acceptable again. From there I was able to get it working enough to start testing and stabilizing.
More performance improvements
Scripting in Minecraft is still limited and I had to trigger some commands. These aren't perfectly performant and asynchronous command calls are limited to 128 per tick. Because of this and because instantaneous leaf breaking is a bit disconcerting, I decided to break this up into processing chunks of leaves at a time. That improved performance even more and gave me another config option I could tweak to improve performance and feel.
Speaking of performance and feel, leaf decay on Java still feels really organic and I do like that. To get closer to that feel I added some randomness to the time between processing of leaf blocks to decay. More configurations to use.
Javascript ready, how do I Typescript
Once I had it working in javascript I wanted to clean it up by using Typescript. I was already using lots of comments to annotate the type information and it was ugly. Type information makes the job of coding much simpler so I wasn't going to remove those. I just needed to code in Typescript.
Honestly, the most difficult thing was dealing with myself and how complicated I thought it was going to be. The compiler that bridge. uses for Javascript will turn Typescript into the proper javascript when it exports it without any extra settings. Because of this, no config or manifest options need to be changed. Ugh, I should have started in Typescript.
Stopping the experiment
As I said before, I was using the experimental APIs because that is what I saw other add-ons using. However, this sucks for most players who don't want to use the experimental APIs. Every update can break them and that makes them less useful on public servers and realms. So, I created a branch to use the stable APIs and got to work.
I had been using several parts of the API that were experimental. So, when I turned them off, I had lots of errors and nothing was working. I wasn't sure if the stable APIs were capable of doing what I needed yet, but I was planning on seeing how far I could get and when the stable APIs caught up with my needs I would release it using the stable APIs then.
It turns out I was able to accomplish this task with the stable APIs. I probably started coding at the right time as some of my solutions used parts of the API that had only recently been made stable. I am glad I started with the experimental APIs though, for two reasons. One, the experimental based solutions were simpler for me to wrap my mind around so that when I went to the stable branch I only had to solve the problem of how to replace what I was doing before. Two, I think the solutions with the experimental API were a little more performant. So, as those become stabilized I will likely move back to using those (or at least test my hypothesis).
Testing on my realm
It worked on my local worlds, but what would performance be like on a realm. I have a realm that I play with people I love called Derp & Chill. It is descriptive of how we play when we are there and especially when we play together. It isn't a super busy realm but I wanted to make sure it worked and no-one noticed any (new) performance issues.
I heard not a peep. This can either mean no-one played and cut down trees or no one noticed performance issues. Either way, it was time to make it public.
Making it public
I was using GitHub but had it as a private repo. The work I did was fun and I hope it can help others make even more exciting things by adding it to there worlds and add-on packs. So, I made it public and shared with a very expansive add-on pack I use called Better on Bedrock.
When the creator saw it, I was reminded that this was new. No one had really done this on Bedrock so there was some excitement. He checked it out and said that he didn't understand what I was doing. Ah, right. I should comment my code and explain myself. So, now it is up on GitHub, with comments explaining what I was trying to do. It is ready for you to download from the release page and give your feedback.
Recent Readings 29th of January, 2024
When the new year started, I read some articles and have been planning on writing my first recent readings post of the year. Then came the planning and rehearsing for a Duet AI virtual event on the 24th of January that took up all my brain space for a few weeks. I'm proud of the work Chloe Condon and I put into that, so check it out if you haven't seen it yet.
The recent readings for this article, are all (mostly) tech related but look for some more varied content soon. There are some interesting articles I've added to my queue.
The past few months have been hectic. My team at work has evolved from a media and content creation team to developer advocacy team focused on North America. This means that I'll be traveling to conferences and events, spreading the good word of Google Cloud. This didn't mean we were done making content. Our team pushed through the end of the year to make several videos showing the different ways someone might use Duet AI including some videos showing how to get started. So, I decided to take a break from writing about things I was reading and focus on that.
When the new year started, I read some articles and have been planning on writing my first recent readings post of the year. Then came the planning and rehearsing for a Duet AI virtual event on the 24th of January that took up all my brain space for a few weeks. I'm proud of the work Chloe Condon and I put into that, so check it out if you haven't seen it yet.
The recent readings for this article, are all (mostly) tech related but look for some more varied content soon. There are some interesting articles I've added to my queue. With no further gilding the lily, and without any more ado; here are my recent readings:
- LLMs and Programming in the first days of 2024 - We are at an exciting time with LLMs and the AI that uses them. Now that the hype of 2023 showing that there are tools and models to be used, now the question is, "What do we do with this?" This article answers with some poetic descriptions of LLM based AI.
... if this erudite fool is at our disposal and answers all the questions asked of them, things change. Current LLMs will not take us beyond the paths of knowledge, but if we want to tackle a topic we do not know well, they can often lift us from our absolute ignorance to the point where we know enough to move forward on our own.
- The myth that remote work stifles innovation and creativity is gaining ground–but the same evidence shows that it was only true in the pre-2010s workplace - The philosophical arguments between remote work and return to office mandates will probably still be going on for a while. The more we look at the data, though, the more we see the patterns are different now that we live in a technically more advanced world than we did just a decade and a half ago. Many of the things that used to be the Truth then are misinformation now.
- Ditch ‘UX’, it’s time for Product Experiences. - This article starts out with, "UX is dead, and that's great news!" which is probably more click bait than actual substance for this article. However, what this article does cover is the relationship between UX designers and Developers. Perhaps my career path, that started working in a design heavy agency, had me understand the importance of this partnership, but I really loved what this article was saying. It covers what both designers and developers need to understand about the other role to create a great experience for users and for the people working on a project.
- The 9 Principles of Better Stories - As someone who has been a songwriter, a professional wrestler, and an improviser; I understand the power of good storytelling. In fact, as a developer advocate I think this will be very important to help communicate between developers and the teams making the products they use. This was less of an article and more of a static site designed to help you understand the basics of good storytelling. So, take look and learn more about the 9 principles to improve your communication in business and life.
- The End of Front-End Development - Here's another article with a bit of a click bait title, but it does so to tell a good story. 2023 saw so much hype around AI that some front end developers are worried it will make them obsolete. At this point I don't see that happening, and neither does the author of this article. What we both see are ways in which AI is going to make the quality of our life as we work, much better.
- CSS :has() pseudo class - As someone who has wanted this on many projects, only to find I couldn't count on it being in major browsers, CSS can now confidently use the :has() pseudo class. Instead of just using selectors based on what you are a child of, now you can make selectors that see what children they have.
- Waymo’s driverless cars are finally ready for the highway - The Verge - One of my fears in life is actually cars. Because of this, I have been really watching the various brands of driverless vehicle technology with excitement. Though my employment may be making me biased, the articles I read tend to have me follow Waymo with the most excitement. They've been the most conservative when it comes to putting the tech on the road with real passengers and this has lead to a very good track record of safety. The fact that they feel confident having driverless rides that will go on the freeway is a very good sign. Now, if we could only get them in Seattle.
- Attacks on machine learning models - LLMs and the AI that uses them are very cool. But, like any new technology, they are also a new attack vector, or rather have two attack vectors. Like other software there are code vulnerabilities but the data behind the models can also be attacked. I find security related articles fascinating because you almost have to think entirely different than a dev to see vulnerabilities. Yet another reason LLMs and AI are tools that humans need to use as tools with the understanding of their strengths and weaknesses.
- How to get 💩 done as a software engineer - Yes, that's an emoji in the title. With all productivity books and article you have to read them not as the truth, but as possibly useful and may need some tweaking. As someone who is neurodivergent, many of these tips and tricks are not solutions for me. So have a look at this article. Remove the measures he has, except as comparison to see what could work for you, and if anything sounds like it is worth a try, go right ahead.
Recent Readings 10th of November, 2023 (#2)
In this, my second _Recent Readings_, post I got a bit overwhelmed with articles as I streamlined how I was taking articles in. This meant, I had to get even more organized and thankfully some of my articles were about learning and Personal Knowledge Management (PKM). Long story short, I've now got a backlog of articles on various topic. I'm ready for my brain to overheat from learning so much, rather than just ADHD related causes ;)
In this, my second Recent Readings, post I got a bit overwhelmed with articles as I streamlined how I was taking articles in. This meant, I had to get even more organized and thankfully some of my articles were about learning and Personal Knowledge Management (PKM). Long story short, I've now got a backlog of articles on various topic. I'm ready for my brain to overheat from learning so much, rather than just ADHD related causes ;)
Articles
Tech Related
- The clouds can't afford to forget developers - Much of the focus on marketing cloud tech is done toward enterprises and their executives. This is for a good reason, that's where the money and decision makers are. With the rush to incorporate AI, even more so. At the end of the day, it is the developers who have to make all of this work and they will be the ones deciding which platform they use when designing systems.
- Virtual meetings tire people because we're doing them wrong, says new research - Virtual meetings tire people out, this isn't new information. As someone who does virtual meetings everyday because I'm not in the same city as the rest of my team, I know virtual meetings can be just as engaging as in person. Take a look at some actual studies to show when people were more or less engaged and maybe you can improve your time in virtual meetings.
- Where are all the laid-off software developers going? - 2023 has been a tough year for tech when it comes to layoffs. However, this doesn't mean developers have nowhere to go. So, whether you are developer or a non-tech business executive, take a look at the new opportunities that may not have been on your radar.
- Why I think GCP is better than AWS - As a Developer Advocate for Google Cloud and someone who worked (not in cloud) at Amazon for 6 years, I definitely have my own opinions and biases. Those thoughts aside, here is someone who has developed on both platforms and breaks down the pros and cons of each. This reminds of a Macho Man flavored skit I have always wanted to do in a video about different cloud platforms.
Non-Tech Related
- Why Quantity Matters So Much More Than Quality - We live in a world where Failure Is Not An Option but really that type of thinking often keeps us from improving. In truth Failure is the BEST optionif we want to learn and grow. Also something my ADHD brain needs to remember when perfection paralysis rears its ugly head.
- New Insights Into Rejection Sensitive Dysphoria - When it comes to ADHD and its effect on people, RSD seems to be the most universal experience. But what is it and how can we approach it to improve our quality of life.
- How to Live a Happy Life, From a Leading Atheist - When metaphor and parable aren't enough of an explanation, where do you find meaning? More important, where do you find happiness? Well, the human experience allows for great wonder and perhaps there will still be metaphors of your own, just don't get mired in them.
- How to Escape the PKM Trap of Sophisticated Procrastination - This has been my past week. How do I organize all my new articles, quotes and other bits of knowledge and not get bogged down by trying to make it perfectly organized. Well, I can remember the other article, and I can read this as well.
- How to Make Yourself Into a Learning Machine - I've been interested in PKM and how I can use it to help myself learn for a while now. Bullet Journals and Second Brains have helped but I'm still looking for my personal path. One's personal path to anything can come from the experience of others, and this description of Simon Eskildsen's methods along with his story have some great things to try.
Until next time fellow internet traveler, stay curious.
[Video] Using Duet AI to speed up development
I've found #GoogleCloud's #DuetAI to be a useful tool for development. It really helps with context switching, boilerplate, and more. Here's me walking through using it to work with a public API.
[Video]What is Cloud CDN & Media CDN
A CDN is only as good as its infrastructure. Google understands infrastructure and at massive scale. Check out my latest video where I discuss this.
Recent Readings 30th of October, 2023 (#1)
In an effort to read, learn, and share like I used to I'm going to start blogging a reading list. This is inspired by one of my skip level (multi times removed) manager's own almost daily reading list. I'd love to say I'm going to do this even weekly, but now I know I've got ADHD and keep my interests and activities diverse. Thus, I've named it Recent Readings.
In an effort to read, learn, and share like I used to I'm going to start blogging a reading list. This is inspired by one of my skip level (multi times removed) manager's own almost daily reading list. I'd love to say I'm going to do this even weekly, but now I know I've got ADHD and keep my interests and activities diverse. Thus, I've named it Recent Readings.
Most of the articles in Recent Readings will be tech & software development related, and all of this list's are. But remember, I did I keep my interests diverse and some of those may slip in as well. It's always good to keep ourselves well rounded. So, here are some recent articles that I have read.
- Thoughts on techno-optimism - It's easy in today's day and age to be either jaded by what tech will do with our future, or caught up in the hype of it. This article looks at some different ways you might look at our techno-future with a positive lens. I found myself to be mostly active-normative with a bit of passive-positive.
- AI Is Becoming a Band-Aid over Bad, Broken Tech Industry Design Choices - Right now the AI hype is loud. It has actually been behind the scenes for a while too. When something becomes the new hotness in tech it often falls into the, "My only tool is a hammer so everything looks like a nail" problem. This article goes into some places, especially UX, where this is the case. Yes, AI is powerful, but maybe we can improve our design to improve experiences.
- 8 ways we're making daily tasks more accessible - I'm intensely interested in user experience(UX), and fascinated by the ways accessibility(a11y) affects everyone's life. This goes over some of the latest ways Google Maps, Search, and Chrome are improving all our experiences by making things more accessible.
- Interviews in the Age of AI: Ditch Leetcode - Try Code Reviews Instead - I saw this article the day after I had to be the interviewer for a candidate. I'm not really a fan of the way interviews go because I want everyone to succeed, or at least show their best more clearly. This is an alternative I had never thought of before, but it does represent more of a software engineer's workday than leetcoding. Also, it allows for more of a conversation where you can hear how the candidate thinks. Speaking of which, have a read and let me know what you think.
- How the microservice vs. monolith debate became meaningless - The world of tech is filled with little squabbles between the best language, framework, methodologies, and more. It can be really difficult to parse all of it to find a best practice. So, which is better, using microservices or all your code as a monolith? Read on to see how the debate has evolved.
- MMO Architecture: client connections, sockets, threads and connection-oriented servers - As someone who has worked in the games industry (never on a true MMO) and played many MMOs, this was a fun read for just seeing the way problems were solved when the obvious solutions didn't quite work as well after first glance.
- Top 3 SWE Skills I Picked Up On The Job - As someone who has been in tech since 2005, I do the math and am surprised how long I've been working in the field. Many days my impostor syndrome makes me feel as if I'm still a novice. Articles like this are a good way to both solidify what I have learned and help me find words for when I mentor others.
Thanks for checking out my first set of Recent Readings. Please, let me know if these articles gave you any interesting thoughts. Or, perhaps, you've written something yourself that I might find worth reading.