<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0"><channel><title>Pulumi Blog: Pulumi interns</title><link>https://www.pulumi.com/blog/tag/pulumi-interns/</link><description>Pulumi blog posts: Pulumi interns.</description><language>en-us</language><pubDate>Fri, 11 Jun 2021 09:53:45 -0700</pubDate><item><title>Hitesh's Intern Experience at Pulumi</title><link>https://www.pulumi.com/blog/hiteshs-experience-as-a-pulumi-intern/</link><pubDate>Fri, 11 Jun 2021 09:53:45 -0700</pubDate><guid>https://www.pulumi.com/blog/hiteshs-experience-as-a-pulumi-intern/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/hiteshs-experience-as-a-pulumi-intern/index.png" /&gt;
&lt;p&gt;Hi everyone, I’m &lt;a href="https://www.linkedin.com/in/hitesh-boinpally"&gt;Hitesh Boinpally&lt;/a&gt;, a junior studying Computer Science at the University of Washington. I was offered the opportunity to intern for Pulumi over the past three months, and here’s how it looked!&lt;/p&gt;
&lt;h2 id="technical-work"&gt;Technical Work&lt;/h2&gt;
&lt;p&gt;My overall project was to build a test harness for Pulumi&amp;rsquo;s converter tools such as &lt;a href="https://github.com/pulumi/arm2pulumi"&gt;&lt;code&gt;arm2pulumi&lt;/code&gt;&lt;/a&gt; and tf2pulumi. The project involved several pieces, all of which meant learning about technologies I hadn&amp;rsquo;t encountered before.&lt;/p&gt;
&lt;div class="note note-info"&gt;
&lt;div class="icon-and-line"&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" class="ph-icon ph-icon--fill" fill="currentColor" aria-hidden="true" focusable="false"&gt;&lt;use href="https://www.pulumi.com/icons/sprite.70121449e0dde6f8c01ff68423fffaa0336ecc73c7bbc87506404126694ca58c.svg#p-info-fill"/&gt;&lt;/svg&gt;
&lt;div class="line"&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="content"&gt;As of Pulumi CLI v3.71.0, &lt;code&gt;tf2pulumi&lt;/code&gt; has been replaced with &lt;code&gt;pulumi convert --from terraform&lt;/code&gt;. &lt;a href="https://www.pulumi.com/blog/converting-full-terraform-programs-to-pulumi/"&gt;Converting Full Terraform Programs to Pulumi blog&lt;/a&gt; has more details.&lt;/div&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;A program that ran the test itself and generated results in a program readable way, which I wrote in Go.&lt;/li&gt;
&lt;li&gt;Running that program to generate historical data over time through GitHub Actions consistently.&lt;/li&gt;
&lt;li&gt;The cloud infrastructure part, which was uploading the test results into an AWS Redshift table for human-accessible analysis. Here was where I got to utilize Pulumi and better understand infrastructure as code.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;All of these were fascinating to learn about and stretched my knowledge in directions I hadn’t previously explored.&lt;/p&gt;
&lt;p&gt;I began with setting up the harness for &lt;a href="https://github.com/pulumi/arm2pulumi"&gt;&lt;code&gt;arm2pulumi&lt;/code&gt;&lt;/a&gt;. The Go program had already been written, so I needed to focus on the GitHub Actions for CI and cloud infrastructure aspects. I set up the CI quickly, but the cloud infrastructure took some time. Wrangling with AWS’s different IAM roles, cross-account permissions, and how to utilize the different tools was complex and challenging. However, I learned a lot about these different spaces and gained valuable experience. Further, I appreciated the advantages of Pulumi, as I could quickly undo/redo changes incrementally, rather than making manual changes in the AWS Console.&lt;/p&gt;
&lt;p&gt;Once I built the arm2pulumi coverage tracker end-to-end, I shifted to tf2pulumi. Unlike &lt;code&gt;arm2pulumi&lt;/code&gt;, there was no code to inherit, and I had to write out the entire workflow from scratch. The Go program was the real challenge, as the CI work and cloud infrastructure I had written was reusable. I got a much better hang of Go as a language and the advantages that came with it. I also got to leverage Pulumi’s &lt;a href="https://www.pulumi.com/docs/using-pulumi/automation-api/"&gt;Automation API&lt;/a&gt; and the power of having multiple, configurable stacks through Pulumi to significantly simplify the process of deploying &lt;code&gt;tf2pulumi&lt;/code&gt;’s (and any other converter’s) coverage report cloud infrastructure. Overall, I explored various new technologies, many of which I’ve used in personal projects since, and plan to continue to do so.&lt;/p&gt;
&lt;h2 id="day-to-day-work"&gt;Day to Day Work&lt;/h2&gt;
&lt;p&gt;Due to the ongoing pandemic, my internship was done fully remote. Having come from 4 quarters of remote learning in college, I wasn’t particularly ecstatic about more remote work. Pulumi completely exceeded my expectations, though! It was hard to meet new people, and I missed out on the daily interactions you might expect in a traditional office environment. Regardless, efforts were made to overcome that, and they were pretty successful, with biweekly random 1:1s and fun team events to better integrate with the team. On the other hand, I work better at night and am a bit of a late sleeper, so I could adjust my schedule to my strengths more than I would if I were going into an office each day. Additionally, Pulumi has adapted nicely to the remote environment and made my experience much better than I thought possible.&lt;/p&gt;
&lt;p&gt;The team itself was great, with everyone being super friendly and supportive. It took me longer than I expected to get the confidence to ask questions in general Slack channels, but each time I did, I was met with a helpful response and got the assistance I needed to succeed. Despite being the only intern, I never felt cast aside and was guided throughout my project in a balanced way, still allowing for some independence. Everyone is also so knowledgeable that I would learn something new perusing Slack every day, whether internal to Pulumi or an article about some new way of doing things.&lt;/p&gt;
&lt;p&gt;Thanks to the high level of transparency at Pulumi, I also got to see many different levels of the company, rather than just the work that I was doing. As a result, I learned more about how a company works fundamentally, and a typical development process.&lt;/p&gt;
&lt;h2 id="closing-thoughts"&gt;Closing Thoughts&lt;/h2&gt;
&lt;p&gt;Pulumi was my first ever internship, and I couldn’t have asked for a better experience. I learned about a ton of new technologies, some of which I may not have explored yet but at least am aware of for future projects. In addition, I met some truly incredibly talented, hardworking, and interesting people. I’m stoked to continue using Pulumi and am excited to see how the company evolves and grows!&lt;/p&gt;
&lt;h2 id="thank-yous"&gt;Thank Yous&lt;/h2&gt;
&lt;p&gt;First off, a huge shout out to the leadership at Pulumi for offering this opportunity to begin with! Thanks to &lt;a href="https://github.com/leezen"&gt;Lee&lt;/a&gt;, especially for organizing the internship and your help throughout it!&lt;/p&gt;
&lt;p&gt;Thank you to &lt;a href="https://github.com/lblackstone"&gt;Levi&lt;/a&gt; for being an awesome, approachable mentor and always willing to help out! I asked a ton of &amp;ndash; oftentimes pretty random &amp;ndash; questions, and you helpfully answered each of them.&lt;/p&gt;
&lt;p&gt;Thank you to &lt;a href="https://github.com/viveklak"&gt;Vivek&lt;/a&gt; for guiding me through many technical details and approving my PRs. Your guidance was really useful, and I appreciate it a lot!&lt;/p&gt;
&lt;p&gt;Lastly, thanks to all those who helped me out along the way and the rest of the team for building such a friendly, helpful environment!&lt;/p&gt;</description><author>Hitesh Boinpally</author><category>pulumi-interns</category></item><item><title>Zephyr's Summer Intern Experience with Pulumi</title><link>https://www.pulumi.com/blog/zephyrs-summer-intern-experience-with-pulumi/</link><pubDate>Fri, 18 Sep 2020 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/zephyrs-summer-intern-experience-with-pulumi/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/zephyrs-summer-intern-experience-with-pulumi/index.png" /&gt;
&lt;p&gt;Hi, I am &lt;a href="https://www.linkedin.com/in/zephyr-zhou-a17741196/"&gt;Zephyr Zhou&lt;/a&gt;, a senior Computer Science student at the University of Washington. I spent this past summer interning at Pulumi. This is my first internship ever in my life. Thanks to Pulumi for providing this opportunity even in this difficult time of the Covid-19 epidemic. Despite the sad truth that I couldn&amp;rsquo;t get in touch offline, I believe this will be one of my most precious memories.&lt;/p&gt;
&lt;p&gt;Time goes by so fast, but before saying goodbye to my internship, I would like to share the story.&lt;/p&gt;
&lt;h2 id="personal-growth"&gt;Personal Growth&lt;/h2&gt;
&lt;p&gt;Honestly, before my internship started, I was so nervous that I couldn&amp;rsquo;t sleep. Previously, I had taken only one data management course that contains a tutorial about setting up Azure SQL Database. Other than that, I knew nothing about the cloud. Although I have read the &lt;a href="https://www.pulumi.com/docs/quickstart"&gt;Getting Started documentation&lt;/a&gt; and learned Go, I was worried that my understanding was not good enough. Also, I transferred from a community college to the University of Washington as a junior student and was admitted to the Computer Science major after that. Therefore, I felt relatively new to programming than my peers and less confident working in the industry, even less so working remotely.&lt;/p&gt;
&lt;p&gt;However, I am glad that I was brave enough to make the first step out of my comfort zone to learn about new things and improve my understanding while practicing. That was one of the important reasons for choosing to intern at Pulumi, a startup with great potential. Also, due to the nature of startups, Pulumi has smaller but more connected teams. Personally, I felt more comfortable discussing issues and thoughts in small groups. Also, I was able to work with different teams and people. I was also able to broaden my horizons and improve my collaboration skills.&lt;/p&gt;
&lt;p&gt;I found that the more familiar I got with the company and the job, the more confident I was. My confidence was boosted in large part from the support of team members. The warm greetings and kind help gave me a lot of powers and courage. Working remotely with Pulumi was much more interactive than I thought. The one-to-one meeting with my mentor and site supervisor has boosted my working efficiency because I could compile my questions and updates, talk about them all together, and get informed about if I am on the right path. I also loved the fact that I was able to join other team meetings so I could learn about the different projects other people are working on.&lt;/p&gt;
&lt;p&gt;In addition, I absolutely loved the various team-building games, especially the virtual escape room and the pair-up chatting with other engineers in the team. These interesting events and relaxed atmosphere made me feel more welcomed and less stressful. I&amp;rsquo;ve been moved and realized it is okay to be imperfect and improve step by step. Despite having less coding experience, I was still welcomed and cared for by everyone at Pulumi.&lt;/p&gt;
&lt;p&gt;Moreover, I am so glad that I could work on my individual internship project: building the content management system (CMS) for Pulumi&amp;rsquo;s website. I took control of the whole development phase of the Content Management System project. I was able to research and write up proposals, implement the project, plan the next steps, and improve. In the end, the CMS was published and running. I have contributed back to the Netlify CMS, the underlying technology for the CMS. I have built an &lt;a href="https://github.com/pulumi/examples/tree/master/aws-ts-netlify-cms-and-oauth"&gt;open-source example&lt;/a&gt; and written blog posts on deploying the &lt;a href="https://www.pulumi.com/blog/deploying-netlify-cms-on-aws/"&gt;CMS application&lt;/a&gt; and its &lt;a href="https://www.pulumi.com/blog/deploying-the-infrastructure-of-oauth-server-for-cms-app/"&gt;OAuth Access Token Server&lt;/a&gt; to AWS.&lt;/p&gt;
&lt;p&gt;When I heard the CMS project would be a great help for the marketing team during our meetings, I felt indescribable happiness and proud of myself. Although far from perfect, I was finally able to prove myself with this unforgettable experience.&lt;/p&gt;
&lt;p&gt;Confidence is the greatest gift that Pulumi gave me during this Summer internship. I felt a lot more confident in entering the technology industry and pursue my career goal as a software engineer. Thanks to this internship experience, I have grown braver and stronger than before.&lt;/p&gt;
&lt;h2 id="technology-skills"&gt;Technology Skills&lt;/h2&gt;
&lt;p&gt;I have learned a lot of skills that I have never learned in the classrooms.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;First of all, I learned a lot about Pulumi and cloud technology.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Before my internship, I read about how Pulumi provides a platform for building infrastructure. At first, I thought the benefit would be to reduce the amount of work to click through different settings on the provider&amp;rsquo;s website. However, during the CMS development process, I found writing infrastructure as code can do many more things than that. For example, I have implemented Github Actions, which automatically deploys the infrastructure when I push or merge a pull request. It saves time to upload and deploy again and prevent any manual error by automating the process. Also, if we want to remove the cloud resources completely, Pulumi enables us to do a simple &lt;code&gt;pulumi destroy&lt;/code&gt; rather than manually going through and worrying about missing any resources.&lt;/li&gt;
&lt;li&gt;I also learned to build the cloud infrastructure for a static website by configuring AWS S3 bucket, Route 53, CloudFront, and Certificate Manager. I also learned to configure AWS Fargate Service and create a Dockerfile.&lt;/li&gt;
&lt;li&gt;I learned more concepts, including assume role, CDN (Content Delivery Network), target groups, and load balancers.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Besides cloud technology, I also got to work with the Continuous Integration/Continuous Delivery concept and have practiced it with GitHub to work with the team.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I learned more details about git command including, the difference between &lt;code&gt;git rebase&lt;/code&gt; and &lt;code&gt;git merge&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;I learned to create GitHub projects, issues, and pull requests and link them for better references.&lt;/li&gt;
&lt;li&gt;I got to know about GitHub Actions and Workflow and implemented one for my internship project to increase efficiency in deploying.&lt;/li&gt;
&lt;li&gt;I learned about GitHub OAuth Applications and more about GitHub API while working on the OAuth Server for the CMS application.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;I learned to create a static website using plain HTML and CSS in the classroom. During my internship, I was able to get in touch with modern front-end technology including Netlify CMS, Hugo, Markdown, and React, while building CMS and the website&amp;rsquo;s preview.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="reflection-and-next-steps"&gt;Reflection and Next Steps&lt;/h2&gt;
&lt;p&gt;Although the CMS application&amp;rsquo;s basic infrastructure is working and provides a content management interface for updating the webinars and events pages, there are more things I want to improve. During the last meeting with the marketing team, we discussed creating a &lt;a href="https://docs.netlify.com/"&gt;custom widget&lt;/a&gt; for shortcodes and image storage system. I created the necessary GitHub issues and added them to a GitHub project but didn&amp;rsquo;t have the time to implement it.&lt;/p&gt;
&lt;p&gt;I realized I should have had a clearer time schedule of development when writing the proposal and coming up with a priority list of the features I wanted to develop initially. During my meeting with the marketing team in the beginning we only discussed the potential improvement but failed to count the time it takes to develop each feature and the priority of them. If I could communicate about that better and write a better-timed plan, I would be able to implement more new features.&lt;/p&gt;
&lt;p&gt;Also, my mentor and manager taught me to dig deeper into the problem to understand the issue better. It also helped me organize my time better when looking into issues.&lt;/p&gt;
&lt;p&gt;In general, these lessons and experience will benefit me a lot, especially after I enter the industry after graduation in Spring 2021. I feel more prepared now. I have been fascinated by the concept of cloud and cloud infrastructure as code. I feel the potential of cloud technology and believe I will develop my career goal in this direction.&lt;/p&gt;
&lt;p&gt;Soon I will return to my senior year&amp;rsquo;s schoolwork. However, please feel free to keep in touch with me via my &lt;a href="https://www.linkedin.com/in/zephyr-zhou-a17741196/"&gt;Linkedin&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id="special-thanks"&gt;Special Thanks!&lt;/h2&gt;
&lt;p&gt;First of all, I offer my sincere appreciation to Pulumi leaders, Joe Duffy and Luke Hoban, for offering this internship opportunity despite their busy schedules in the middle of our internship.&lt;/p&gt;
&lt;p&gt;Words can&amp;rsquo;t express my thanks to Praneet Loke, my mentor, who spent every day having sync meetings with me to guide my internship pathway and help me move forward, step by step. I can&amp;rsquo;t count how many times he saved me from daunting problems and patiently explained obscure knowledge.&lt;/p&gt;
&lt;p&gt;I cannot express enough thanks to Lee Zen, our manager, for organizing this internship, ensuring our internship experience, entrusting me with the exciting CMS project, and guiding me towards the correct path during our weekly meeting.&lt;/p&gt;
&lt;p&gt;Moreover, my completion of the internship could not have been accomplished without:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Chris Smith. Thank you for helping me to understand the concept of assuming a role and setting up the credentials and domains for my CMS project.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Sophia Parafina. Thank you for proofreading my three blog posts and carefully fixing my expression errors.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Isaac Harris, Lindsay Marolich, and Jay Wampold. Thank you for spending time learning and trying out the CMS and sharing suggestions for improvement.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Zack Chase. Thank you for informing me about the components of Pulumi&amp;rsquo;s website and trying out my CMS application.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Freddy Hernandez. Thank you for ensuring our compensation and organizing various team building games, which made my life in quarantine fascinating.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Everyone at Pulumi. Thank you all for helping my fellow interns and me out and contributing to my wonderful internship experience!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;</description><author>Zephyr Zhou</author><category>pulumi-interns</category></item><item><title>Reflections of a Pulumi Intern</title><link>https://www.pulumi.com/blog/reflections-of-a-pulumi-intern/</link><pubDate>Fri, 18 Sep 2020 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/reflections-of-a-pulumi-intern/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/reflections-of-a-pulumi-intern/index.png" /&gt;
&lt;p&gt;Hi everyone! I&amp;rsquo;m Albert, a soon-to-be sophomore studying computer science at the University of Washington. Today marks my last day as a Pulumi intern, so I figure I&amp;rsquo;d reflect on my experiences up until this point.&lt;/p&gt;
&lt;h2 id="joining-pulumi"&gt;Joining Pulumi&lt;/h2&gt;
&lt;p&gt;I heard of Pulumi for the first time when they visited my school&amp;rsquo;s career fair in January. As I rounded the corner into the &lt;a href="https://www.cs.washington.edu/building"&gt;CSE1 atrium&lt;/a&gt;, I saw a banner titled &amp;ldquo;Modern Infrastructure as Code,&amp;rdquo; with some lines of TypeScript of what appeared to be the creation of an S3 bucket. I found it interesting because it looked so simple and modular. In contrast, when I had played around with AWS in the past to deploy the occasional Django web app, it had always involved following a series of exact instructions (usually go to this dashboard, copy this YAML file, run this command, and pray it works).&lt;/p&gt;
&lt;p&gt;I walked up to the banner&amp;rsquo;s adjacent booth and chatted with &lt;a href="https://www.pulumi.com/blog/author/sean-holung/"&gt;Sean&lt;/a&gt;, a software engineer at Pulumi. He explained how Pulumi was building an open-source platform that allows developers to manage cloud infrastructure using familiar programming languages. To be honest, I didn&amp;rsquo;t have too much experience with the cloud, but I did sympathize with the pain of wrangling with YAML files. The concept sounded compelling, so I told him I was interested in interning there. He gave me the Pulumi recruiter&amp;rsquo;s email, who I later emailed that day with my resume and a brief bit about my background. After a few email and phone exchanges, I came over to the Pulumi office for an in-person interview (which was unfortunately also the only time I ever saw it, due to &lt;a href="https://www.pulumi.com/blog/coronavirus-plan/"&gt;COVID-19&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A couple of weeks later the recruiter called me and extended an offer for the summer intern role! I was incredibly excited about the opportunity to work at such an interesting startup, and especially one working with the cloud, an industry that seemingly dominates my hometown of Seattle. I accepted it a few weeks later since I believed Pulumi had the most fascinating technical challenges to work on relative to the other companies I applied to. From then until summer, I was nervous that my position would be canceled since the coronavirus was forcing many companies to reconsider their budgets. Thankfully Pulumi confirmed that it would shift to a virtual setting, and I started in late June.&lt;/p&gt;
&lt;h2 id="the-first-week"&gt;The First Week&lt;/h2&gt;
&lt;p&gt;I had very little idea of what the internship would look like. In addition to it being virtual, it was my first software engineering gig, so I had no prior experience to base it off. I wasn&amp;rsquo;t sure what my role would be—would I just be assigned a single project and be told to work on it? Would I have a mentor? How does the process of submitting code look like? Fortunately, these questions were answered fairly quickly.&lt;/p&gt;
&lt;p&gt;For the first week, the other interns and I converted Pulumi &lt;a href="https://github.com/pulumi/examples/"&gt;examples&lt;/a&gt; from one language to another. TypeScript seemed to be the most common language, so I converted a few from that language to some of the relatively less popular languages, such as Python and Go. I thought that this was an excellent way to help us interns ramp up since it allowed us to get some baseline experience with Pulumi and the various cloud providers and programming languages it supports. By Friday, I was pretty familiar with how to navigate the various Pulumi repositories and documentation, which was a huge benefit as I launched into my project.&lt;/p&gt;
&lt;h2 id="my-project-crd2pulumi"&gt;My Project: &lt;code&gt;crd2pulumi&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;On the following Monday, I joined a Zoom meeting with &lt;a href="https://www.pulumi.com/blog/author/levi-blackstone/"&gt;Levi&lt;/a&gt; and my mentor &lt;a href="https://www.pulumi.com/blog/author/justin-vanpatten/"&gt;Justin&lt;/a&gt;. They had written up a preliminary design doc on generating SDK types for Kubernetes CustomResources, which would be my project for the summer. I had a minimal background with Kubernetes, so I couldn&amp;rsquo;t fully conceptualize what the end product would look like until a few days later.&lt;/p&gt;
&lt;p&gt;You can define custom fields of a Kubernetes CustomResource using &lt;a href="https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/"&gt;CustomResourceDefinitions&lt;/a&gt; (CRDs). Pulumi already allows you to create CustomResources using the &lt;a href="https://www.pulumi.com/registry/packages/kubernetes/api-docs/apiextensions/"&gt;apiextensions&lt;/a&gt; package. However, there&amp;rsquo;s no way to inherently know the exact fields of a CustomResource, since it&amp;rsquo;s set by some CRD. Therefore we have to set the CustomResource fields to some generic type, such as &lt;code&gt;map[string]interface{}&lt;/code&gt; in Go or &lt;code&gt;pulumi.Input&amp;lt;any&amp;gt;&lt;/code&gt; in TypeScript. This makes filling out the fields for complex CRDs such as cert-manager or Istio very cumbersome since they contain thousands of nested properties. Being able to leverage IDE type-checking and auto-complete makes the process much quicker and less error-prone.&lt;/p&gt;
&lt;p&gt;Throughout the summer, I progressively built &lt;a href="https://github.com/pulumi/crd2pulumi"&gt;&lt;code&gt;crd2pulumi&lt;/code&gt;&lt;/a&gt;, a CLI tool that generates a typed CustomResource from a CRD. I then leveraged this tool to generate libraries for various Kubernetes Operators, which you can find &lt;a href="https://github.com/pulumi/pulumi-kubernetes-crds/"&gt;here&lt;/a&gt;. I still feel like there are additional features to build out in this area though, so I plan to submit a PR here and there even after today.&lt;/p&gt;
&lt;h2 id="school-vs-work"&gt;School vs. Work&lt;/h2&gt;
&lt;p&gt;Before joining Pulumi, all my programming experiences had come from either school projects or practicing coding challenge type problems. So far, these scenarios have been fairly &lt;a href="https://wiki.osdev.org/Atomic_operation"&gt;atomic&lt;/a&gt;, in the sense that they are self-contained and started and finished in a relatively discrete chunk of time. A typical coding project at school is straightforward—I sit down, read the instructions, code everything, and don&amp;rsquo;t think about it until my grade comes back. Most problems (not relating to the difficulty of the course content itself) can usually be resolved by looking more closely at the instructions or consulting the Piazza board.&lt;/p&gt;
&lt;p&gt;In contrast, real software development at Pulumi was far more multi-person, rich, and dynamic. It was challenging, but also far more rewarding. In the first couple of weeks, I was seemingly running into issues at all layers—with the &lt;code&gt;pulumi/pulumi&lt;/code&gt; codegen, with the Go compiler, with the Pulumi CLI, with the Python SDKs, or with my Macbook overheating and crashing whenever I tried opening up the &lt;code&gt;examples&lt;/code&gt; repository in VSCode. Getting stuff to &amp;ldquo;just work&amp;rdquo; often required fixing many nested sub-problems until the root problem could finally be resolved. After a while, I internalized a lot of general debugging heuristics, and developed better skills in squashing bugs and getting code to &amp;ldquo;just work.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;I thought that Pulumi gave me an excellent balance between guidance and autonomy. My co-workers gave me an outline of what my project should achieve, and some pointers on how which tools to use, but other than that it was up to me to implement it.&lt;/p&gt;
&lt;p&gt;One aspect that I liked about Pulumi was that its main audience is, of course, developers, so it was easier to design &lt;code&gt;crd2pulumi&lt;/code&gt; since I am a developer. Being able to directly interact with other programmers that use my tool and hear their feedback was immensely satisfying. I loved the energy that came from working with a fast-growing startup that provided real value to real people. It was exciting to come to Monday&amp;rsquo;s team meeting and see Pulumi&amp;rsquo;s user count continuously rise, and hear about the latest deal that the sales team had just closed.&lt;/p&gt;
&lt;h2 id="pros-of-the-virtual-life"&gt;Pros of the Virtual Life&lt;/h2&gt;
&lt;p&gt;I hugely appreciated the flexibility of virtual work-from-home. In conjunction with the two summer classes I was taking, this allowed me to occasionally optimize my schedule. For example, if I had stayed up late on Tuesday night submitting a problem set and I knew I had no meetings tomorrow, I could wake up later on Wednesday morning, but just work a few more hours in the evening to compensate. However, I tried my best to avoid this to keep in sync with the majority of Pulumi employees that are on from 9 am to 5 pm PST.&lt;/p&gt;
&lt;p&gt;After a few days, I settled into a routine of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wake up around 9-10 am and drink some water&lt;/li&gt;
&lt;li&gt;Fire up my Macbook, check Slack and emails, attend meetings if scheduled, read through the reviews to my PR, and write some code&lt;/li&gt;
&lt;li&gt;Eat brunch around 1-2 pm (almost always a double-wrapped Chipotle burrito with brown rice and chicken)&lt;/li&gt;
&lt;li&gt;Write some more code, fix some bugs, push some changes until 5-6 pm&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I feel that the quality of the technical practice I received would have been the same, had the internship been in-person. I usually knew which feature or fix to accomplish, and could troubleshoot most technical errors along the way. If I did run into a bug with my code or had questions on how to implement some function, I could always message a co-worker or set up a meeting to resolve it pretty quickly. I also picked up on a lot of knowledge regarding Pulumi, our tech stack, and best practices by just listening in on meetings and browsing the company Slack channel.&lt;/p&gt;
&lt;h2 id="cons-of-the-virtual-life"&gt;Cons of the Virtual Life&lt;/h2&gt;
&lt;p&gt;For me, the largest drawback to work-from-home was diminished social opportunities. Everybody I met at Pulumi was so interesting, talented, and kind, so I&amp;rsquo;m disappointed that I couldn&amp;rsquo;t meet them in person. There&amp;rsquo;s no online replacement for actually seeing a person for 8 hours a day and 5 days a week. I feel that so much of life is disproportionately formed via one-off, chance encounters with people, so not being able to go down to a city such as Seattle and work in an office limited my &lt;a href="https://nevalalee.wordpress.com/2011/10/16/nassim-nicholas-taleb-on-maximizing-serendipity/"&gt;exposure to the envelope of serendipity&lt;/a&gt;. Looking back, I should&amp;rsquo;ve set up more 1-1 meetings with people at Pulumi, just to chat with them and learn from their experiences over lunch.&lt;/p&gt;
&lt;p&gt;Nevertheless, it was still enjoyable, and Pulumi tried its hardest to keep us engaged with remote social activities. For example, &lt;a href="https://www.pulumi.com/blog/author/lee-zen/"&gt;Lee&lt;/a&gt; set up a couple of virtual escape room games which were entertaining.&lt;/p&gt;
&lt;h2 id="wrapping-up"&gt;Wrapping Up&lt;/h2&gt;
&lt;p&gt;In my view, one of the best lessons I got was that now I know how much I don&amp;rsquo;t know, which is far better than &lt;em&gt;not&lt;/em&gt; knowing how much I don&amp;rsquo;t know. I was exposed to many different areas of tech—Kubernetes, code generation, TypeScript, Go, infrastructure as code, AWS, GCP, and so much more. I&amp;rsquo;ve only begun to scratch the huge surface area of the cloud ecosystem, and I&amp;rsquo;ll always be grateful to the awesome people at Pulumi who helped me get started.&lt;/p&gt;
&lt;p&gt;In two weeks I&amp;rsquo;ll start (also remote) fall quarter at college. If you want to chat, feel free to reach out to me via any of the links on my &lt;a href="https://albertzhong.com/"&gt;website&lt;/a&gt;. Thanks for reading!&lt;/p&gt;</description><author>Albert Zhong</author><category>pulumi-interns</category></item><item><title>The Pulumi Intern Experience</title><link>https://www.pulumi.com/blog/the-pulumi-intern-experience/</link><pubDate>Wed, 16 Sep 2020 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/the-pulumi-intern-experience/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/the-pulumi-intern-experience/index.png" /&gt;
&lt;p&gt;What is the cloud? Three months ago, that one word simply meant a bunch of water suspended in the atmosphere, but now it means more than that.&lt;/p&gt;
&lt;p&gt;Hi, I’m &lt;a href="https://www.linkedin.com/in/sashushankar/"&gt;Sashu Shankar&lt;/a&gt;, a second-year computer science student at the University of Washington, and this is my life as a Pulumi intern!&lt;/p&gt;
&lt;h2 id="my-pulumi-experience"&gt;My Pulumi Experience&lt;/h2&gt;
&lt;h3 id="getting-to-know-the-team"&gt;Getting to Know the Team&lt;/h3&gt;
&lt;p&gt;Let’s be real, onboarding with a new team in a remote situation was tough; the world was quite literally in a state of chaos, and each day was filled with talking to faces on the screen, but everyone was in the same situation, and that made it just a little more bearable. Coming into my first full software engineering internship, I was a nervous wreck, and I had millions of questions. What is the remote culture of the company going to be like? What is their standard for the quality and timeline of work, and am I going to be able to meet them? However, the team was always supportive, and it didn’t take long for me to feel like I was integrated with them and comfortable with the people around me. No matter the time of day, someone was always available to talk!&lt;/p&gt;
&lt;h3 id="asking-questions"&gt;Asking Questions&lt;/h3&gt;
&lt;p&gt;“There is no such thing as a dumb question” was a phrase I heard a lot, but it never fully registered until recently. The “cloud” as we know it is quite vast. Setting it up takes hours, and fully understanding what is going on could take tenfold. Pulumi simplifies the process; however, there is still so much going on even when doing a single thing. This experience truly taught me that there really is no such thing as a dumb question and searching the internet to find answers is an expectation! Nobody knows all the answers, and that is completely okay.&lt;/p&gt;
&lt;h3 id="remote-lifestyle"&gt;Remote Lifestyle&lt;/h3&gt;
&lt;p&gt;I’m definitely not a fan of the &lt;a href="https://www.pulumi.com/blog/coronavirus-plan/"&gt;remote environment&lt;/a&gt;, however, I’m the kind of person that is more productive at night, so it allowed me to shift my work to times when I knew I would get things done. That said, face to face interaction was something I missed a lot, as it’s understandably harder to get to know people over a computer. However, since Pulumi already has many remote engineers, it was a very smooth process to get set up and start working right away.&lt;/p&gt;
&lt;h2 id="the-project-experience"&gt;The Project Experience&lt;/h2&gt;
&lt;h3 id="introduction-to-the-pulumi-model"&gt;Introduction to the Pulumi Model&lt;/h3&gt;
&lt;p&gt;I worked on the Platform team for the last 3 months, and they focused their work on the Pulumi SDK. The first few weeks were a huge learning curve, as the interns were tasked with converting Pulumi deployment examples from Typescript to Python, C#, and Go. This intro project taught me a lot about cloud resources, how they are deployed, and introduced me to helpful debugging tools through this process. I also learned how to write &lt;a href="https://www.pulumi.com/docs/iac/concepts/testing/"&gt;tests&lt;/a&gt; to validate output for a deployment which proved helpful as I learned how the entire process was working.&lt;/p&gt;
&lt;h3 id="kube2pulumi-tooling"&gt;kube2pulumi Tooling&lt;/h3&gt;
&lt;p&gt;I built a CLI tool, and an open-source library to convert Kubernetes YAML manifests to Pulumi in a user-defined language &lt;a href="https://www.pulumi.com/blog/introducing-kube2pulumi"&gt;check out kube2pulumi!&lt;/a&gt;. This was done so that Kubernetes users could easily migrate to Pulumi, and use familiar programming languages to tame YAML&amp;rsquo;s complexity. I truly learned a lot from this experience as it was my first time designing and implementing a project end to end in a set time frame. Utilizing existing open-source libraries, code generation techniques, and compilers theory were just some of the many things I got to delve into.&lt;/p&gt;
&lt;h3 id="ui-interface"&gt;UI Interface&lt;/h3&gt;
&lt;p&gt;Another feature that came out of this was a UI layer to access it directly on the web; this forced me to think about different error scenarios and how they would be handled to make it a polished experience. Additionally, this really exposed the programmatic usage of kube2pulumi when writing the web service. It allowed me to further improve the overall experience in whichever form the user decides to use. To top it all off, going through a feature launch with the team was extremely exciting! It&amp;rsquo;s one thing to consistently work on an internal tool, but it&amp;rsquo;s another ball game when you are shipping your work directly to the community.&lt;/p&gt;
&lt;h2 id="final-thoughts"&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;Coming into industry work right out of my freshman year of college was a daunting task; however, I wouldn’t have wanted to intern at any other place other than Pulumi! The mentorship, team camaraderie, and, most importantly, the exposure to new technologies and learning made this the best possible experience I could’ve imagined. I’m super proud of what I could accomplish with the team, and I’m excited to see what the future holds for the company!&lt;/p&gt;
&lt;p&gt;What is the cloud? Three months later, I can say that the cloud, to me, is a vast tool for people to build their visions and dreams, and Pulumi is the place I would come to help me get that started :)&lt;/p&gt;
&lt;h2 id="shoutouts-"&gt;Shoutouts :)&lt;/h2&gt;
&lt;p&gt;Thank you &lt;a href="https://github.com/albert-zhong"&gt;Albert&lt;/a&gt;, &lt;a href="https://github.com/zephyrz73"&gt;Zephyr&lt;/a&gt;, and &lt;a href="https://github.com/jetvova"&gt;Vova&lt;/a&gt; for being incredible, kind, and helpful intern buddies!&lt;/p&gt;
&lt;p&gt;Thank you &lt;a href="https://github.com/evanboyle"&gt;Evan&lt;/a&gt; for being an amazing mentor by being so approachable, and always being there everyday. You were always so patient with me and answered virtually any question I threw at you :)&lt;/p&gt;
&lt;p&gt;Thank you &lt;a href="https://github.com/leezen"&gt;Lee&lt;/a&gt; and and &lt;a href="https://github.com/lukehoban"&gt;Luke&lt;/a&gt; for being such organized, motivating, and empathetic managers!&lt;/p&gt;
&lt;p&gt;Thank you to &lt;a href="https://github.com/lblackstone"&gt;Levi&lt;/a&gt;, &lt;a href="https://github.com/jaxxstorm"&gt;Lee Briggs&lt;/a&gt;, &lt;a href="https://github.com/komalali"&gt;Komal&lt;/a&gt;, &lt;a href="https://github.com/pgavlin"&gt;Pat&lt;/a&gt;, and &lt;a href="https://github.com/MikhailShilkov"&gt;Mikhail&lt;/a&gt; for being so open and friendly and always being available and sharing your experience when I needed anything at all!&lt;/p&gt;
&lt;p&gt;And finally, thank you to everyone at Pulumi and the whole platform team for giving me this opportunity!&lt;/p&gt;</description><author>Sashu Shankar</author><category>pulumi-interns</category></item><item><title>Life of a Pulumi Intern</title><link>https://www.pulumi.com/blog/life-of-a-pulumi-intern/</link><pubDate>Thu, 02 Apr 2020 00:00:00 +0000</pubDate><guid>https://www.pulumi.com/blog/life-of-a-pulumi-intern/</guid><description>
&lt;img src="https://www.pulumi.com/images/generated/blog/life-of-a-pulumi-intern/index.png" /&gt;
&lt;p&gt;👋I&amp;rsquo;m Tasia, a Computer Science student at the University of Washington and Pulumi&amp;rsquo;s very first intern. Read on to learn about some of my thoughts and experiences from these past few months!&lt;/p&gt;
&lt;h2 id="why-pulumi"&gt;Why Pulumi?&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve interned at a few different companies before, but for my last internship, there were several things I was looking for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A start-up. All the companies I worked at previously had at least a couple thousand people, and I wanted to see first-hand the difference in both engineering and culture between larger, more established companies and smaller, newer ones.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A knowledgeable engineering team. Although I knew I wanted to work at a start-up, I also wanted access to the knowledge and expertise that usually comes with more senior engineers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;A product I can get behind. There&amp;rsquo;s a lot of start-ups out there, and not all of them work on things that I think are viable or exciting. Working on something that I can see myself and others using makes getting up for work a little more bearable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Competitive compensation. Even though I don&amp;rsquo;t expect smaller companies to be as financially well-off as the other companies I worked for, I still wanted to be paid comparably.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Opportunities to learn something new. The main goal for &lt;em&gt;all&lt;/em&gt; of my internships was basically just to learn something new. I don&amp;rsquo;t really know what I want to do for the rest of my career, but the best way I think to figure that out is to try a bit of everything!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you haven&amp;rsquo;t guessed already, Pulumi checks all of these boxes! Although Pulumi was only founded a few years ago, their team is rich with experienced engineers and their product has taken a foothold in companies all over the world. Especially with the release of 2.0 right around the corner, I&amp;rsquo;m glad I joined at such an exciting time.&lt;/p&gt;
&lt;h2 id="working-across-the-company"&gt;Working Across the Company&lt;/h2&gt;
&lt;p&gt;Pulumi engineering is currently split up into two teams: the &lt;em&gt;Service&lt;/em&gt; Team and the &lt;em&gt;Platform&lt;/em&gt; Team. The service team primarily works on the &lt;a href="https://www.pulumi.com/docs/pulumi-cloud/"&gt;Pulumi Service&lt;/a&gt;, whereas the platform team primarily works on the &lt;a href="https://www.pulumi.com/product/#sdk"&gt;Pulumi SDK&lt;/a&gt;. Although I&amp;rsquo;m technically a part of the Service Team, one of the benefits of working as an intern in a small company is the flexibility to work on projects across the whole company.&lt;/p&gt;
&lt;p&gt;Within the Service Team, I added &lt;a href="https://www.pulumi.com/blog/pulumi-service-improvements_02-2020/#first-class-support-for-tags"&gt;support for tags&lt;/a&gt; within the Pulumi Service and created new pages to &lt;a href="https://www.pulumi.com/blog/pulumi-service-improvements_02-2020/#reverse-stack-permissions-view"&gt;view a member&amp;rsquo;s specific stack permissions&lt;/a&gt;. Within the Platform Team, I added support for both &lt;a href="https://www.pulumi.com/docs/concepts/resources#transformations"&gt;transformations&lt;/a&gt; and &lt;a href="https://github.com/pulumi/pulumi-docker"&gt;Docker images&lt;/a&gt; in Go. Lastly, in a cross-team effort, I&amp;rsquo;ve been helping out with updating our &lt;a href="https://github.com/pulumi/pulumi-terraform-bridge"&gt;code generation tools&lt;/a&gt; for Pulumi 2.0. I&amp;rsquo;m sparing the nitty gritty details here for the sake of time and space, but most of the repos I worked in are open-source, so feel free to &lt;a href="https://github.com/pulumi"&gt;check them out&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Simply put, I took on the work of a full-time engineer, only with slightly more flexibility and a lot less experience. Prior to working at Pulumi, I had basically zero knowledge on Angular, cloud providers, and code generation. Now, I&amp;rsquo;m still nowhere near an expert on any of these, but I feel like I have a stronger grasp on where the software engineering industry is headed, thanks to the support of everyone I worked with!&lt;/p&gt;
&lt;h2 id="things-ive-learned"&gt;Things I&amp;rsquo;ve Learned&lt;/h2&gt;
&lt;p&gt;Earlier I mentioned that one of my main goals for any internship is to learn. Here are just three key things I&amp;rsquo;ve learned about myself and software engineering during this one:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Remote life is not the life for me. Due to &lt;a href="https://www.pulumi.com/blog/coronavirus-plan/"&gt;unforeseen circumstances&lt;/a&gt;, I spent the last month of my internship in my apartment. I always thought I was a bit of a homebody, but it turns out that staying in one place for more than one day makes me stir crazy, and I&amp;rsquo;m nowhere near as productive in my room as I think I am. On the upside, Pulumi already had several remote engineers, so all the infrastructure was already in place to continue the actual work side of things fairly smoothly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Writing tests before writing code is actually a good strategy. I remember learning this in one of my classes and thinking &amp;ldquo;Yeah that seems like a good idea, but what person would actually do that?&amp;rdquo;. Apparently, that person would be me. Often times, I would find myself starting to code something without really understanding possible use cases. Making myself write tests beforehand clears that up pretty quickly.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Using &amp;ldquo;the cloud&amp;rdquo; is anything but simple. To be completely fair, I already knew this. My previous experience with cloud providers involved reading through multi-page documents just to set everything up, and clicking a handful of buttons on the console without really understanding why. Pulumi hugely streamlines that process, but even still there&amp;rsquo;s so much that goes into doing a single thing on a cloud. In other words, I have a newfound appreciation for people working on cloud infrastructure and I feel lucky to be entering the industry when resources like Pulumi already exist.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="final-thoughts"&gt;Final Thoughts&lt;/h2&gt;
&lt;p&gt;Overall, my time at Pulumi wasn&amp;rsquo;t quite the chaotic startup experience I was expecting. I came into Pulumi with this idea that start-ups consisted of stressed-out people, working around the clock, and disorganization across the board. My time here at Pulumi, however, was anything but. Looking back, the only major differences I felt while working at Pulumi (both engineering-related and otherwise) compared to my previous companies were the lack of free meals (which as a college student, I&amp;rsquo;m very partial to) and intern events (which as the only intern, I didn&amp;rsquo;t expect any of), which I think really speaks to the maturity of their engineering and leadership teams. I&amp;rsquo;m proud seeing what I&amp;rsquo;ve accomplished, and excited to see the future of Pulumi!&lt;/p&gt;
&lt;h2 id="conclusion"&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;m soon returning to (virtual) classes (thanks, coronavirus!), but feel free to reach out to me via &lt;a href="https://www.linkedin.com/in/anastasiahalim/"&gt;LinkedIn&lt;/a&gt; to learn more about me and/or my experiences!&lt;/p&gt;</description><author>Tasia Halim</author><category>pulumi-interns</category></item></channel></rss>