<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lynn Langit</title>
    <description>The latest articles on DEV Community by Lynn Langit (@lynnlangit).</description>
    <link>https://dev.to/lynnlangit</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F413064%2F02ad5783-6a48-4833-a638-897fa9d2ceb3.jpg</url>
      <title>DEV Community: Lynn Langit</title>
      <link>https://dev.to/lynnlangit</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lynnlangit"/>
    <language>en</language>
    <item>
      <title>5 Min Series - Prompting</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Mon, 04 Dec 2023 18:10:27 +0000</pubDate>
      <link>https://dev.to/lynnlangit/5-min-series-prompting-1omk</link>
      <guid>https://dev.to/lynnlangit/5-min-series-prompting-1omk</guid>
      <description>&lt;p&gt;I've started a YouTube series "5+ min of My GPT".  In this series I am creating short screencasts of me trying out various prompting techniques on ChatGPT, customGPTs and more.&lt;/p&gt;

&lt;p&gt;I've been using ChatGPT and other genAI tools for over a year now and they've changed the way I do my technical work and research.  Before I explore the OpenAI Assistants API, I want to 'go deep' into what can be done in ChatGPT web UI.&lt;/p&gt;

&lt;p&gt;So far I've looked at the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creating, testing and updating multiple custom GPTs in the ChatGPT web UI&lt;/li&gt;
&lt;li&gt;Using multiple plugins to improve the quality of responses&lt;/li&gt;
&lt;li&gt;Prompt engineering techniques such as setting context, specifying output, chaining and others.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition to the 10 short screencasts I've made already, I am looking to explore/collaborate with others who are learning in this space.  I feel like the dev community headed directly to RAG patterns (i.e. embeddings and vector DBs) and skipped deep diving into understanding the nuances of prompt engineering.&lt;/p&gt;

&lt;p&gt;I welcome feedback and requests for topics in my expanding series. &lt;/p&gt;

&lt;p&gt;Here's a screenshot which shows the currently available videos.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft85c5q0brxmz4cectbts.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft85c5q0brxmz4cectbts.png" alt="Image description" width="800" height="667"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My YouTube playlist is &lt;a href="https://www.youtube.com/playlist?list=PL4Q4HssKcxYuwbVAgVqwM5od3yLtg9NM0" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I am interested in hearing from the Dev.to audience.  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What is your experience with ChatGPT?
&lt;/li&gt;
&lt;li&gt;Which ChatGPT features are you using/learning in your technical work?
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I am looking forward to reading comments in response to this post.&lt;/p&gt;

</description>
      <category>chatgpt</category>
      <category>genai</category>
    </item>
    <item>
      <title>DataMesh on GCP</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Sat, 29 Jul 2023 12:56:56 +0000</pubDate>
      <link>https://dev.to/lynnlangit/datamesh-on-gcp-fd2</link>
      <guid>https://dev.to/lynnlangit/datamesh-on-gcp-fd2</guid>
      <description>&lt;p&gt;I've been leading a many-week bookclub on the &lt;a href="https://www.oreilly.com/library/view/data-mesh/9781492092384/" rel="noopener noreferrer"&gt;DataMesh book &lt;/a&gt;(cover image from a presentation from the book author) and also have been building POCs of a DataMesh using Google Cloud set of DataPlex services.&lt;/p&gt;

&lt;p&gt;To that end, I will link resources here.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First the &lt;a href="https://dev.tourl"&gt;YouTube playlist&lt;/a&gt; for the bookclub.&lt;/li&gt;
&lt;li&gt;Next my notes from my GitHub Repo `gcp-for-bioinformatics' on &lt;a href="https://github.com/lynnlangit/gcp-essentials/blob/master/4_big%20data_and_genomics/4k_BigLake_&amp;amp;_Dataplex/Dataplex.md" rel="noopener noreferrer"&gt;Dataplex&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Also a &lt;a href="https://github.com/lynnlangit/learning-data-mesh" rel="noopener noreferrer"&gt;dedicated Repo&lt;/a&gt; with notes on Data Mesh in general.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Are you exploring Data Mesh yet?  How's it going?  Share comments here.&lt;/p&gt;

</description>
      <category>datamesh</category>
      <category>dataplex</category>
      <category>googlecloud</category>
      <category>bigquery</category>
    </item>
    <item>
      <title>Tech Interviews that Work</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Mon, 07 Mar 2022 16:39:21 +0000</pubDate>
      <link>https://dev.to/lynnlangit/tech-interviews-that-work-3l8g</link>
      <guid>https://dev.to/lynnlangit/tech-interviews-that-work-3l8g</guid>
      <description>&lt;p&gt;I've written about (and suffered from) the perennially broken technical interview processes.  One article &lt;a href="https://lynnlangit.medium.com/tech-anti-interviewing-106674655ea0" rel="noopener noreferrer"&gt;"Tech Anti Interviewing"&lt;/a&gt; in particular, seems to have struck a chord.&lt;/p&gt;

&lt;h2&gt;
  
  
  Doing It Right
&lt;/h2&gt;

&lt;p&gt;Given that I've roundly criticized my experiences with existing practices, what then do I recommend?&lt;/p&gt;

&lt;p&gt;It's simple really, talking about how a person would work is a poor substitute for actually doing work.  The trick is, of course, what constitutes &lt;em&gt;'work'&lt;/em&gt; in this sense?&lt;/p&gt;

&lt;h2&gt;
  
  
  Keeping it Real
&lt;/h2&gt;

&lt;p&gt;A practical technique I use is to do something similar to what I will be hiring for to get an understanding of a number of aspects of working together.  If I will be working on technology x, then try it out some non-work way. For example, for this month's interviews the candidate and I will be getting a one-process bioinformatics workflow working with &lt;a href="https://www.nextflow.io/" rel="noopener noreferrer"&gt;Nextflow&lt;/a&gt; (a DSL for data pipelining).&lt;/p&gt;

&lt;p&gt;What I am looking for during a &lt;strong&gt;30-minute remote pairing session&lt;/strong&gt; is the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ability to communicate&lt;/li&gt;
&lt;li&gt;Openness to learning&lt;/li&gt;
&lt;li&gt;Ability to collaborate&lt;/li&gt;
&lt;li&gt;Background skills&lt;/li&gt;
&lt;li&gt;Interest in topic area&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;How I do measure these traits? By listening carefully and observing actual behavior.  Also, I tell candidates what I am looking for before the pairing session starts (this is somewhat similar the AWS focus on &lt;a href="https://www.amazon.jobs/en/principles" rel="noopener noreferrer"&gt;'leadership principals'&lt;/a&gt;).  &lt;/p&gt;

&lt;p&gt;I call my method -  &lt;em&gt;'active technical interviewing'&lt;/em&gt;.  I supposed you could also call it &lt;em&gt;'anti-white boarding'&lt;/em&gt; because we do &lt;strong&gt;not&lt;/strong&gt; do puzzles, algorithms or optimization problems, and we work &lt;strong&gt;together&lt;/strong&gt;, as we will be doing in real life if the candidate is hired.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqeqj0pdwxnlzcrbrbjzo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqeqj0pdwxnlzcrbrbjzo.png" alt="Active Interviewing in Action" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hiring Small
&lt;/h2&gt;

&lt;p&gt;As a small business owner who works on a contract-by-contract basis, I hire subcontractors hourly per project.  This limits my exposure, if a new hire isn't a good fit.  Also I tend to hire junior developers (often students and/or career changers).&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Results
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;'What tech shortage?'&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Using these methods, over 11 years, I've &lt;strong&gt;never&lt;/strong&gt; lacked for qualified candidates.  In fact, I have MORE qualified candidates that I can hire, because I carefully select my clients and projects.  Also ALL of my subcontractors have gone on to get full-time roles as developers, devops pros, machine learning or data science engineers.&lt;/p&gt;

&lt;p&gt;In fact I've had so much success, I've written a &lt;a href="https://lynnlangit.medium.com/list/software-apprenticeships-b28b944a1ee9" rel="noopener noreferrer"&gt;series of articles&lt;/a&gt; about collaborative technical work (articles shown in the graphic below).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz19nnu758egxb2g7tzek.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz19nnu758egxb2g7tzek.png" alt="My articles on Medium about Technical Hiring and Work" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've also delivered talks on this topic.  Here's a &lt;a href="https://www.beautiful.ai/player/-Mx_CNp8kYKAtNCPIzyF" rel="noopener noreferrer"&gt;link&lt;/a&gt; to a presentation deck from a recent talk on this topic.&lt;/p&gt;

&lt;h2&gt;
  
  
  Being Human
&lt;/h2&gt;

&lt;p&gt;IMHO, all of of optimizations and algorithms applied to interviewing and hiring has actually made our &lt;em&gt;'shortage of talent'&lt;/em&gt; problem worse.  &lt;/p&gt;

&lt;p&gt;So I strongly suggest when interviewing...spend some of your own time, work together, listen closely and remember that building software is a human-centered business.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>hiring</category>
    </item>
    <item>
      <title>Stop AWS Account Hacks</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Wed, 16 Feb 2022 17:30:55 +0000</pubDate>
      <link>https://dev.to/aws-heroes/stop-aws-account-hacks-1bim</link>
      <guid>https://dev.to/aws-heroes/stop-aws-account-hacks-1bim</guid>
      <description>&lt;p&gt;The message got my attention:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Client: &lt;em&gt;"My AWS training account was hacked and I got a big bill!"&lt;/em&gt;&lt;br&gt;
Me: &lt;em&gt;"How big?"&lt;/em&gt;&lt;br&gt;
Client: &lt;em&gt;"&lt;strong&gt;7k in 3 hours&lt;/strong&gt; and it keeps going - help!"&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This story is a cautionary tale, it's not the first time I've helped a client recover from bad practices, it's just the most recent.  Also a quick search, revealed this situation happens more often than you might realize - &lt;a href="https://news.ycombinator.com/item?id=29789417" rel="noopener noreferrer"&gt;hacker news thread&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  First Steps
&lt;/h2&gt;

&lt;p&gt;This novice (student) user had set up an AWS account &lt;em&gt;'for training purposes'&lt;/em&gt; and had nearly forgotten about it.  Our student had set up a budget alert, which triggered due to the account activity, but they &lt;em&gt;'didn't catch it at first.'&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Subsequent email from AWS saying &lt;em&gt;'unusual activity'&lt;/em&gt; and &lt;em&gt;'please login and confirm'&lt;/em&gt; is what brought our student to me.  AWS also advised them to change the root user account password, deactivate the account key and to add MFA authentication immediately.&lt;/p&gt;

&lt;p&gt;As I see all too often, for convenience our user accessed this 'study' account using a weak password and logging in as the root user.&lt;/p&gt;

&lt;h2&gt;
  
  
  Resolution
&lt;/h2&gt;

&lt;p&gt;After 10+ messages back and forth with AWS (and over a month) later, working together we were able to properly secure the account and get AWS to remove all of the fraudulent changes.  The total amount of fraud accrued over a 24 hours period?  &lt;strong&gt;21k.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Avoid Trouble
&lt;/h2&gt;

&lt;p&gt;Because this is just the latest in what I have seen happen many times over the years, I decided to write up a series of best practices around protecting demo/training AWS accounts.  Feel free to contribute your suggestions and tips at the end of this article as well.&lt;/p&gt;

&lt;h2&gt;
  
  
  Safe Account Steps
&lt;/h2&gt;

&lt;p&gt;Here's the high-level list of core account safety steps&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Use a dedicated AWS account&lt;/li&gt;
&lt;li&gt;Monitor the account&lt;/li&gt;
&lt;li&gt;Create IAM users securely&lt;/li&gt;
&lt;li&gt;Secure and do not login with the root account&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Next, I'll drill down on how to implement each of these steps:  &lt;/p&gt;

&lt;h3&gt;
  
  
  To implement Step 1 - Dedicated Account...
&lt;/h3&gt;

&lt;p&gt;If possible, create a &lt;strong&gt;dedicated AWS account&lt;/strong&gt; solely for the purpose of demo or training.  Do not use this account for any production work.  Assign an alias to the login URL (using the IAM console), this masks the AWS account number when non-root IAM users login in.  &lt;/p&gt;

&lt;h3&gt;
  
  
  To implement Step 2 - Monitor the account...
&lt;/h3&gt;

&lt;p&gt;Set up a billing alert for usage on your demo AWS account.  I suggest $ 50 USD / day.  Send this alert to an email that you check regularly.  &lt;strong&gt;Respond promptly to any billing alert&lt;/strong&gt; notifications and/or AWS alert emails.&lt;/p&gt;

&lt;h3&gt;
  
  
  To implement Step 3 - Create IAM Users...
&lt;/h3&gt;

&lt;p&gt;Create one or more IAM users. If using the console assign a strong password. If using API access, assign keys.  Change passwords and/or update keys regularly.  Do not check keys into source control.  Do not share passwords.  &lt;strong&gt;Assign MFA&lt;/strong&gt; to each each IAM user (I use the Duo mobile app for this, but there are many options).  Add IAM users to custom groups with appropriate permissions (see groups in next paragraph). Do not assign account admin permissions to the working IAM user accounts.&lt;/p&gt;

&lt;p&gt;Create groups and assign &lt;strong&gt;only&lt;/strong&gt; the required permissions, i.e. if you are testing a service, for example Amazon Timestream, then assign create (or admin) permission ONLY to the Timestream service.  Add IAM users to custom groups to grant them appropriate permissions.  You can use the IAM access advisor to verify that you've granted all needed permissions, example screen shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhf7zhu98o0v040rb2egc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhf7zhu98o0v040rb2egc.png" alt="IAM Access Advisor" width="800" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4 - Secure Root Account...
&lt;/h3&gt;

&lt;p&gt;Assign a strong password to the IAM root account.  Update the password regularly.  Associate MFA with the root account.  &lt;strong&gt;Do NOT login with the root account&lt;/strong&gt;.  Follow AWS best practices for securing the root user account - &lt;a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html" rel="noopener noreferrer"&gt;link&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Shown below is a screenshot from the AWS IAM console, note that the status of the root account is shown on the first page using check marks (green is good).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foj7q557e886r0qw7f5ln.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foj7q557e886r0qw7f5ln.png" alt="AWS IAM console" width="800" height="383"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Respond to Trouble
&lt;/h2&gt;

&lt;p&gt;If your billing alert fires or if AWS contacts you, respond immediately.  One of the reasons our student had such trouble, was that they took 24 hours to respond.  This placed an additional burden of proof on them as they hadn't deleted the running services (in this case &lt;strong&gt;an EKS cluster in EVERY AWS region&lt;/strong&gt;) and associated triggering lambdas, ECS images, IAM roles and initial probe EC2 instance.  This instance launched the clusters using a Terraform template.&lt;/p&gt;

&lt;p&gt;To be fair, the student was a novice cloud user, and didn't actually know HOW to locate all of the running services in order to delete all of the instances.  However, had our student stopped the attack at the single EC2 instance launch point, it would've saved both the student and AWS a whole bunch of hassle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bottom Line
&lt;/h2&gt;

&lt;p&gt;Fraudulent cloud activity happens all too often.  I liken the result of it to having left a stove's gas burner on indefinitely - if you are going to use this method of cooking, make sure you understand what you need to do to keep everyone safe!&lt;/p&gt;

&lt;p&gt;As mentioned earlier, have any of you had this experience?  Anything to add?  Share in comments.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>security</category>
    </item>
    <item>
      <title>Amazon Timestream</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Mon, 14 Feb 2022 16:57:05 +0000</pubDate>
      <link>https://dev.to/aws-heroes/amazon-timestream-37dd</link>
      <guid>https://dev.to/aws-heroes/amazon-timestream-37dd</guid>
      <description>&lt;p&gt;I recently took a look at the &lt;a href="https://aws.amazon.com/timestream" rel="noopener noreferrer"&gt;Amazon Timestream&lt;/a&gt; NoSQL time series serverless database service.  &lt;/p&gt;

&lt;p&gt;tl;dr - I found the getting started process to be quick and easy.  Timestream presents in the AWS console as a purpose-built table-as-a-service.  &lt;/p&gt;

&lt;p&gt;Amazon includes two small sample datasets, one for IoT and one for DevOps.  Also they include two versions of each sample - single-record or multi-record.  Additionally they supply example queries for each of the 4 types of sample data presented via the console.  Shown below (from the Amazon documentation) is a summary of the modeling approach types.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr43u5r2x7px90b9shafg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr43u5r2x7px90b9shafg.png" alt="Timestream record types" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Of note are a set of time-series functions, available via extensions to the SQL query language which is supported for Timestream.&lt;/p&gt;

&lt;p&gt;For a summary - see the notes page in my &lt;a href="https://github.com/lynnlangit/Hello-AWS-Data-Services/tree/master/3_streams-and-iot/3_Timestream" rel="noopener noreferrer"&gt;&lt;code&gt;Hello-AWS-Data-Services&lt;/code&gt; Github repo for Timestream&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>aws</category>
      <category>nosql</category>
    </item>
    <item>
      <title>Implementing Ethical AI</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Sun, 26 Dec 2021 15:43:02 +0000</pubDate>
      <link>https://dev.to/lynnlangit/implementing-ethical-ai-2kj5</link>
      <guid>https://dev.to/lynnlangit/implementing-ethical-ai-2kj5</guid>
      <description>&lt;p&gt;This year, I've been educating myself on how to build ethical AI (machine learning models).  To that end I've read a number of books in the areas of bias, cognition, models and more.  My reading recommendations are shown below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jlmbkjk30e2q3hh6was.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jlmbkjk30e2q3hh6was.png" alt="Ethical AI Recommended Reading" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Also, I've collected academic papers, bias detection tools and other resources in a GitHub repo (&lt;a href="https://github.com/lynnlangit/learning-ethical-ai/blob/main/README.md" rel="noopener noreferrer"&gt;https://github.com/lynnlangit/learning-ethical-ai/blob/main/README.md&lt;/a&gt;).  Shown below are the sections on 'tools' from this repo&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fydlw50csuhtlf6c3ry77.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fydlw50csuhtlf6c3ry77.png" alt="Ethical AI Tool List" width="800" height="877"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As I continue to learn about this topic, I'd be interested to hear from you.  What have you read or used to improve the ethics of your machine learning models?  Feel free to comment here or to submit PRs to my GitHub repo.&lt;/p&gt;

</description>
      <category>machinelearning</category>
    </item>
    <item>
      <title>Two Types of Consulting</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Mon, 09 Aug 2021 13:51:20 +0000</pubDate>
      <link>https://dev.to/lynnlangit/two-types-of-consulting-1h37</link>
      <guid>https://dev.to/lynnlangit/two-types-of-consulting-1h37</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy5legt0i35f0u0muluhb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy5legt0i35f0u0muluhb.jpg" alt="2 views of a bridge" width="800" height="643"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Working with a client recently, I was reminded of what I call the "Two Varieties of Consulting".  I've seen this pattern many times over the 10+ years I've been running my own cloud and data &lt;a href="https://lynnlangit.com/" rel="noopener noreferrer"&gt;consultancy&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Traditional - Solved by Consultant
&lt;/h2&gt;

&lt;p&gt;👩‍💻 Another way to think about this method is based on what I like to call using a focused approach to consulting. The sentence below is another way to think about this idea.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Get the urgent work done as fast as possible.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Solve an immediate problem via outside experience&lt;/li&gt;
&lt;li&gt;Problem will be solved to the level of complexity based on consultant knowledge&lt;/li&gt;
&lt;li&gt;Focus will be on deploying running code ASAP&lt;/li&gt;
&lt;li&gt;Minimal (or no) tests or verification of correctness&lt;/li&gt;
&lt;li&gt;Billing will be deliverable-based&lt;/li&gt;
&lt;li&gt;Consultant will have minimal interaction with existing team&lt;/li&gt;
&lt;li&gt;Consultant will complete project and leave&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Usual Results: solution works when run by consultant, but solution is often not maintainable by team due to complexity and lack of documentation. Solution code becomes brittle over time and team is unwilling to update it (it breaks when changed).  Sometimes the solution is not actually deployable to existing production environment.&lt;/p&gt;




&lt;h2&gt;
  
  
  Modern - Solved by Team
&lt;/h2&gt;

&lt;p&gt;👨‍💻 👱🏿 👩‍💻 👩‍💻 🧕 Another way to think about this method is based on what I like to call using a consultative approach to consulting. The sentence below is another way to think about this idea. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;Do what can be done together&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;First step is listening to access current situation - problem(s), team and code&lt;/li&gt;
&lt;li&gt;Next agree on priority project with stakeholders and team&lt;/li&gt;
&lt;li&gt;Conduct detailed assessment of current technical implementation (expect surprises!)&lt;/li&gt;
&lt;li&gt;Create implementable plan to address top priority problem&lt;/li&gt;
&lt;li&gt;Present plan which includes information about learning techniques suggested&lt;/li&gt;
&lt;li&gt;Include path to implement and next suggested project in presentation&lt;/li&gt;
&lt;li&gt;Include test and verification steps in plan&lt;/li&gt;
&lt;li&gt;(Optional) work side-by-side with team to implement on their timeline&lt;/li&gt;
&lt;li&gt;Engage for next round based on team input&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Usual Results: When solution is implemented it works as expected and is maintainable (and by association extendable by team).&lt;/p&gt;

</description>
      <category>consulting</category>
    </item>
    <item>
      <title>360 Refactoring</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Wed, 04 Aug 2021 19:05:38 +0000</pubDate>
      <link>https://dev.to/lynnlangit/360-refactoring-488p</link>
      <guid>https://dev.to/lynnlangit/360-refactoring-488p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoaj2lbv4d6tolerlvi4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoaj2lbv4d6tolerlvi4.png" alt="360 Degree Refactoring" width="800" height="412"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As part of my preparation to lead next week's instance of our weekly &lt;a href="https://www.youtube.com/watch?v=QIC8PBmnRhc&amp;amp;list=PLIrLpelK7F7-pGGMKph7dHuJWwEswnXOc" rel="noopener noreferrer"&gt;'Programming Quantum Computers bookclub'&lt;/a&gt;, I did a little exercise in refactoring.&lt;/p&gt;

&lt;p&gt;I find myself refactoring not only code, but also comments and other elements of examples and samples for learning.  In this case I show how I approach refactoring for a sample in a Jupyter notebook.  This particular sample is in the &lt;a href="https://quantumai.google/cirq" rel="noopener noreferrer"&gt;Cirq (Python-like) quantum computing library&lt;/a&gt; and it shows an example of how to implement &lt;a href="https://en.wikipedia.org/wiki/Shor%27s_algorithm" rel="noopener noreferrer"&gt;Shor's algorithm&lt;/a&gt; using Cirq running on &lt;a href="https://colab.research.google.com/" rel="noopener noreferrer"&gt;Google Colab&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I've been doing this frequently, so I decided to make a short screencast to show a bit more detail about the process of 360° refactoring.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=3rgzin_tIJ4" rel="noopener noreferrer"&gt;Link to screencast&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What about you?  How/when do you use refactoring to learn?  Share in the comments.&lt;/p&gt;

&lt;p&gt;happyRefactoring!&lt;/p&gt;

</description>
      <category>jupyter</category>
      <category>refactorit</category>
    </item>
    <item>
      <title>Programming Quantum bookclub</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Tue, 29 Jun 2021 01:32:17 +0000</pubDate>
      <link>https://dev.to/lynnlangit/programming-quantum-bookclub-iaa</link>
      <guid>https://dev.to/lynnlangit/programming-quantum-bookclub-iaa</guid>
      <description>&lt;p&gt;&lt;a href="https://twitter.com/jeremybytes" rel="noopener noreferrer"&gt;Jeremy Clark&lt;/a&gt; and I have been running a weekly bookclub on quantum computing.  We meet Mondays at 5pm CST and discuss a chapter a week from the O'Reilly &lt;a href="https://www.oreilly.com/library/view/programming-quantum-computers/9781492039679/" rel="noopener noreferrer"&gt;'Programming Quantum Computers'&lt;/a&gt; book (shown below)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk6zqqazw7wumfyu0iw0u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk6zqqazw7wumfyu0iw0u.png" alt="Programming Quantum Computers book" width="800" height="1040"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How the Bookclub works
&lt;/h2&gt;

&lt;p&gt;We meet via Zoom for ~1 hour to discuss some or all of the code and examples in each chapter.  We record and post our weekly meetings to a YouTube &lt;a href="https://www.youtube.com/playlist?list=PLIrLpelK7F7-pGGMKph7dHuJWwEswnXOc" rel="noopener noreferrer"&gt;playlist&lt;/a&gt;.  We also have a Slack to discuss and share more information.&lt;/p&gt;

&lt;p&gt;DM Jeremy to join in.&lt;/p&gt;

&lt;p&gt;Join us!&lt;/p&gt;

</description>
      <category>quantumcomputing</category>
    </item>
    <item>
      <title>Data Lake Houses</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Fri, 23 Apr 2021 23:54:13 +0000</pubDate>
      <link>https://dev.to/aws-heroes/data-lake-houses-kan</link>
      <guid>https://dev.to/aws-heroes/data-lake-houses-kan</guid>
      <description>&lt;p&gt;I am writing about the emerging connections between cloud data warehouses and cloud data lakes.  This is called a 'data lake house' pattern (concept using AWS services shown below).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkvamzj3235m0d67aff24.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkvamzj3235m0d67aff24.png" alt="Alt Text" width="800" height="637"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Over the years I've built many AWS Redshift data warehouses and a couple of AWS S3 data lakes.  What about you?  What types of AWS solutions are you building for data analytics lately?  &lt;/p&gt;

&lt;p&gt;I am particularly interested in communicating with those of you who are using the &lt;a href="https://aws.amazon.com/lake-formation/features/" rel="noopener noreferrer"&gt;AWS Lake Formation&lt;/a&gt; services.  These 'sit on top of' AWS S3 adding federated security and other key services to an AWS Data Lake.  When I built data lakes, AWS Lake Formation wasn't yet available, so my teams had to build these control services manually.&lt;/p&gt;

&lt;p&gt;I've also been looking at [AWS Glue Data Brew(&lt;a href="https://aws.amazon.com/glue/features/databrew/" rel="noopener noreferrer"&gt;https://aws.amazon.com/glue/features/databrew/&lt;/a&gt;).  The data profiling looks to be very useful (shown below).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3sblgfaxddopr8z2oqz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk3sblgfaxddopr8z2oqz.png" alt="Alt Text" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I am very curious about Data Brew's scalability and cost in production vs. more traditional ETL and/or Hadoop/Spark batch transform methods.&lt;/p&gt;

&lt;p&gt;I'll be posting on this topic over the next few month's.  If this is of interest to you, follow me on twitter as well.  Let's connect!&lt;/p&gt;

</description>
      <category>aws</category>
    </item>
    <item>
      <title>Nevertheless, Lynn Langit Coded in 2021!</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Mon, 08 Mar 2021 03:58:52 +0000</pubDate>
      <link>https://dev.to/lynnlangit/nevertheless-lynn-langit-coded-in-2021-2mop</link>
      <guid>https://dev.to/lynnlangit/nevertheless-lynn-langit-coded-in-2021-2mop</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4sgas3tcc1i50n875ytu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4sgas3tcc1i50n875ytu.png" alt="Alt Text" width="800" height="120"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My most recent achievement was making at least one open source contribution per day (to GitHub).  I wrote about why I did it - &lt;a href="https://lynnlangit.medium.com/why-365-commits-4923e712742c" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Advocating for myself looks like...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt; getting paid what I am worth &lt;/li&gt;
&lt;li&gt;for doing work that matters &lt;/li&gt;
&lt;li&gt;with people I who enjoy working with&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;My biggest goal is to continue my work with teams...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to build reusable genomic-scale bioinformatics cloud pipelines &lt;/li&gt;
&lt;li&gt;that enable researchers &lt;/li&gt;
&lt;li&gt;to improve human health&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;My advice for allies to support underrepresented folks who code is...&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;to LISTEN to their ideas&lt;/li&gt;
&lt;li&gt;to AMPLIFY their work&lt;/li&gt;
&lt;li&gt;to CHALLENGE them to grow skills&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>wecoded</category>
    </item>
    <item>
      <title>Learning Cloud - FAQ</title>
      <dc:creator>Lynn Langit</dc:creator>
      <pubDate>Sun, 14 Feb 2021 19:00:18 +0000</pubDate>
      <link>https://dev.to/lynnlangit/learning-cloud-faq-1gaf</link>
      <guid>https://dev.to/lynnlangit/learning-cloud-faq-1gaf</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fune2iqv61767yszeppzs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fune2iqv61767yszeppzs.png" alt="Alt Text" width="800" height="127"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wrote a quick page on my &lt;a href="https://github.com/lynnlangit/learning-cloud" rel="noopener noreferrer"&gt;&lt;code&gt;learning-cloud&lt;/code&gt; GitHub Repo&lt;/a&gt; to answer the &lt;a href="https://github.com/lynnlangit/learning-cloud/blob/master/FAQ.md" rel="noopener noreferrer"&gt;TOP TEN&lt;/a&gt; questions I get asked about learning and working with various public cloud vendors.&lt;/p&gt;

&lt;p&gt;I am opinionated, of course, so I welcome your thoughts on my questions and answers!  Are these the top questions you are wondering (or are being asked)?  What are you hearing?&lt;/p&gt;

&lt;p&gt;What do you think about my answers?  What is your experience with these topics?&lt;/p&gt;

</description>
      <category>cloudnative</category>
      <category>cloudskills</category>
      <category>discuss</category>
    </item>
  </channel>
</rss>
