<?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: Aditi</title>
    <description>The latest articles on DEV Community by Aditi (@aditi_e8f6d1764055c719a47).</description>
    <link>https://dev.to/aditi_e8f6d1764055c719a47</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4006799%2F3fb56122-ada1-4340-a03c-eb97f69a50b0.png</url>
      <title>DEV Community: Aditi</title>
      <link>https://dev.to/aditi_e8f6d1764055c719a47</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aditi_e8f6d1764055c719a47"/>
    <language>en</language>
    <item>
      <title>5 Things Nobody Tells You About Deploying to AWS for the First Time</title>
      <dc:creator>Aditi</dc:creator>
      <pubDate>Sun, 12 Jul 2026 14:36:47 +0000</pubDate>
      <link>https://dev.to/aditi_e8f6d1764055c719a47/5-things-nobody-tells-you-about-deploying-to-aws-for-the-first-time-58h2</link>
      <guid>https://dev.to/aditi_e8f6d1764055c719a47/5-things-nobody-tells-you-about-deploying-to-aws-for-the-first-time-58h2</guid>
      <description>&lt;p&gt;Lessons from Week 4 of the AWS Summer Builder Cohort 2026&lt;br&gt;
Everyone tells you AWS is powerful. Everyone tells you it's the industry standard. Nobody tells you about the 45 minutes you'll spend staring at an AccessDeniedException wondering why your Lambda can't talk to your own DynamoDB table.&lt;br&gt;
This week, my team deployed our Intelligent Polling System to AWS for the first time — and we learned more from the things that went wrong than from the things that went right. Here are 5 honest lessons from our first real AWS deployment.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;IAM Will Humble You Immediately&lt;br&gt;
Before this week, IAM was that thing we knew was important but hadn't really needed to deal with. After this week, we understand why the entire cloud security session was dedicated to it.&lt;br&gt;
Every AWS service operates in its own permission bubble. Your Lambda function cannot read from S3 or write to DynamoDB just because you created them in the same account. You have to explicitly tell AWS: "this function is allowed to do this thing."&lt;br&gt;
The error message when you get it wrong:&lt;br&gt;
User: arn:aws:sts::123456789:assumed-role/my-lambda-role&lt;br&gt;
is not authorized to perform: dynamodb:PutItem&lt;br&gt;
on resource: arn:aws:dynamodb:ap-south-1:table/polling-results&lt;br&gt;
What to do: Before writing deployment code, map out every service-to-service interaction in your architecture. For each one, ask: "does this service have permission to talk to that service?" Create a checklist and tick them off as you set up IAM roles.&lt;br&gt;
The principle of least privilege — only give each service exactly the permissions it needs and nothing more — is not just a security best practice. It's also what keeps you from creating a mess that's impossible to debug later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Environment Variables Are Not Optional&lt;br&gt;
This one caught us off guard. We had been developing locally with a .env file that stored API keys, database connection strings, and configuration values. We had .env in our .gitignore so it never went to GitHub. Smart, right?&lt;br&gt;
What we didn't think about: Lambda has no idea your .env file exists. It's not running on your machine. It's running in AWS's infrastructure. So every process.env.MY_API_KEY in your code returns undefined in production.&lt;br&gt;
The fix is straightforward — Lambda has a built-in Environment Variables section under Configuration. Set your variables there. But finding this out after deployment, when your function is silently failing, is not a fun debugging experience.&lt;br&gt;
What to do: Before deploying any function, write down every environment variable your code uses. Set them all in Lambda's configuration before running a single test. Make this a checklist item for every deployment.&lt;br&gt;
For sensitive secrets, go one step further — use AWS Secrets Manager or AWS Systems Manager Parameter Store instead of plain Lambda environment variables. Your future self will thank you.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;S3 is Not Just Storage — But Its Permissions Are Confusing&lt;br&gt;
We knew S3 was an object storage service. What we didn't fully appreciate was that S3 could also host an entire frontend application — static HTML, CSS, JavaScript, images — all served directly from a bucket.&lt;br&gt;
What confused us: there are two separate ways to control access to S3 objects — Bucket Policies and ACLs (Access Control Lists). They overlap, they can conflict, and if you get either one wrong your site is either completely inaccessible or completely open to the world.&lt;br&gt;
We initially enabled static website hosting but forgot to make the objects publicly readable. Our site loaded a blank page with no errors — because S3 was returning 403 Forbidden silently for every asset request.&lt;br&gt;
What to do: When hosting a static site on S3, set the bucket policy explicitly:&lt;br&gt;
json{&lt;br&gt;
"Version": "2012-10-17",&lt;br&gt;
"Statement": [&lt;br&gt;
{&lt;br&gt;
  "Sid": "PublicReadGetObject",&lt;br&gt;
  "Effect": "Allow",&lt;br&gt;
  "Principal": "&lt;em&gt;",&lt;br&gt;
  "Action": "s3:GetObject",&lt;br&gt;
  "Resource": "arn:aws:s3:::your-bucket-name/&lt;/em&gt;"&lt;br&gt;
}&lt;br&gt;
]&lt;br&gt;
}&lt;br&gt;
And always put CloudFront in front of S3 — it handles HTTPS automatically, caches your assets globally, and hides your S3 bucket URL so it can't be accessed directly.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lambda's Default Timeout Will Break Your App&lt;br&gt;
Lambda functions have a default execution timeout of 3 seconds. For a simple function that does a quick calculation or database lookup, that's fine. For a function that makes HTTP requests to external URLs — like ours does — 3 seconds is dangerously short.&lt;br&gt;
Our polling function checks whether websites are up. Some websites take 5, 8, even 12 seconds to respond. Lambda was killing our function mid-execution and returning a timeout error with no useful debugging information.&lt;br&gt;
The fix is one click — Lambda → Configuration → General Configuration → Timeout. We set ours to 30 seconds. But we only found the problem after scratching our heads over why some URLs were always showing as "down" when they clearly weren't.&lt;br&gt;
What to do: Think about the slowest possible execution of your function and set your timeout to at least 2x that. Also set up CloudWatch Logs from day one — every Lambda invocation logs to CloudWatch automatically, and those logs are invaluable when something goes wrong.&lt;br&gt;
javascript// Always log at the start and end of your handler&lt;br&gt;
exports.handler = async (event) =&amp;gt; {&lt;br&gt;
console.log('Event received:', JSON.stringify(event));&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;// your code&lt;/p&gt;

&lt;p&gt;console.log('Result:', JSON.stringify(result));&lt;br&gt;
  return result;&lt;br&gt;
};&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;EventBridge Is the Most Underrated AWS Service for Student Projects
We saved the best for last. EventBridge is AWS's event bus and scheduler — and it completely changed how our system works.
Before EventBridge, our polling system required someone to manually trigger a check. Useful, but not really "intelligent." After EventBridge, our Lambda function triggers automatically every 5 minutes, checks all configured URLs, saves the results to DynamoDB, and sends an SNS alert if anything is down — all without a single human action.
Setting it up takes about 10 minutes:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;EventBridge → Rules → Create Rule&lt;br&gt;
Schedule → Rate expression: rate(5 minutes)&lt;br&gt;
Target → Lambda function → select yours&lt;br&gt;
Done&lt;/p&gt;

&lt;p&gt;Watching DynamoDB fill up with automated results for the first time — knowing that no one triggered it, that the system was just... working on its own — was genuinely one of the coolest moments of the entire cohort so far.&lt;br&gt;
What to do: If your project does anything on a schedule — checking data, sending reminders, generating reports, cleaning up old records — EventBridge is your friend. It's free for the first few million events per month, which means for any student project, it's essentially free forever.&lt;/p&gt;

&lt;p&gt;The Real Lesson from Week 4&lt;br&gt;
Here's what nobody tells you about deploying to AWS for the first time: it will take three times longer than you expect, and you will learn more from the errors than from the successes.&lt;br&gt;
The AccessDeniedException teaches you IAM. The blank S3 page teaches you bucket policies. The silent Lambda timeout teaches you CloudWatch. The missing environment variable teaches you production configuration.&lt;br&gt;
Every error is the cloud teaching you something that no tutorial covers because tutorials show you the happy path. Real deployment shows you everything else — and that's where the actual learning happens.&lt;/p&gt;

&lt;p&gt;What's Next&lt;br&gt;
Week 5 is about polish, performance, and preparing for Demo Day. We're adding CloudWatch dashboards, improving our UI, and starting to think about how to present the Intelligent Polling System to judges.&lt;br&gt;
If you're going through your first AWS deployment right now and hitting walls — keep going. The walls are the curriculum.&lt;/p&gt;

&lt;p&gt;Built with ☁️ during AWS Summer Builder Cohort 2026 — AWS Student Builder Group, IGDTUW&lt;br&gt;
Team: Aditi Shanker · Vaishnavi Verma · Naina Verma&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS #Lambda #Serverless #DynamoDB #S3 #CloudFront #EventBridge #AWSSummerBuilderCohort2026 #IGDTUW #BuildInPublic #Deployment #StudentDeveloper #WebDev #CloudComputing
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>Lessons from MVP Week – More Than Just Coding</title>
      <dc:creator>Aditi</dc:creator>
      <pubDate>Sun, 05 Jul 2026 17:38:57 +0000</pubDate>
      <link>https://dev.to/aditi_e8f6d1764055c719a47/lessons-from-mvp-week-more-than-just-coding-3ifa</link>
      <guid>https://dev.to/aditi_e8f6d1764055c719a47/lessons-from-mvp-week-more-than-just-coding-3ifa</guid>
      <description>&lt;p&gt;One of the biggest lessons from Week 3 of the AWS Summer Builder Cohort is that building an application is much more than implementing features.&lt;/p&gt;

&lt;p&gt;Creating an MVP means bringing together multiple concepts that work in harmony.&lt;/p&gt;

&lt;p&gt;Here's what we're learning this week:&lt;/p&gt;

&lt;p&gt;💡 Debugging&lt;br&gt;
Writing code is only half the journey. Finding bugs, understanding why they occur, and improving code quality are skills that every developer develops over time.&lt;/p&gt;

&lt;p&gt;🔗 API Integration&lt;br&gt;
APIs are the bridge between the frontend and backend. Learning how to consume REST APIs helps transform static interfaces into dynamic applications.&lt;/p&gt;

&lt;p&gt;🗄️ Databases&lt;br&gt;
Whether SQL or NoSQL, databases are the backbone of modern applications. Understanding CRUD operations helps us manage and retrieve data efficiently.&lt;/p&gt;

&lt;p&gt;🚀 Deployment&lt;br&gt;
A project sitting on your local machine isn't enough. Deploying an application teaches us about hosting, environment variables, and preparing software for real users.&lt;/p&gt;

&lt;p&gt;For our Intelligent Polling System, each of these pieces contributes to creating a functional MVP that users can interact with.&lt;/p&gt;

&lt;p&gt;As we continue building, I'm excited to see our architecture evolve from diagrams into a fully working application.&lt;/p&gt;

&lt;p&gt;Every week brings new challenges, but every challenge is another opportunity to learn.&lt;/p&gt;

&lt;p&gt;Looking forward to sharing our deployed MVP soon! 🌟&lt;/p&gt;

&lt;h1&gt;
  
  
  AWS #CloudNative #DeveloperJourney #NextJS #Supabase #Docker #DevOps #FullStack #LearningInPublic #AWSSummerBuilderCohort
&lt;/h1&gt;

</description>
      <category>aws</category>
      <category>learning</category>
      <category>softwaredevelopment</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
