Balakrishna Avulapati
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    --- tags: goal, planning --- # FY22 Self-Review ## Provide input on key achievements, delivered results and overall outcomes. ### Secure storage for enterprise application - The secure storage for enterprise application that is crucial for a Million $ deal with AMEX - Assumed ownership of the secure storage. - Coordinated with Kamal from web foundation to understand the current storage system and shared the insights with starship team - These insights are also helpful in our future wider initiative of storage APIs ### Opensource contributions This is a goal I have set earlier to kick off open-source contributions. 1. [v8 - Add ldflags for aix](https://chromium-review.googlesource.com/c/v8/v8/+/3439339) 2. [electron - bump @types/node to v16](https://github.com/electron/electron/pull/32729) 3. [electron - Do not propagate GDK_BACKEND env variable to subproc](https://github.com/electron/electron/pull/32929) 4. [electron/build-tools - Fix root directory default in example (docs)](https://github.com/electron/build-tools/pull/322) 5. [electron-build-images - Add desktop-file-utils to electron linux build-image/docker image](https://github.com/electron/build-images/pull/22) 6. [electron - Separate the dependency list for ubuntu on the docs](https://github.com/electron/electron/pull/32607) 7. [nodejs - Removes the duplicate call of setPauseOnException() inside initAfterStart()](https://github.com/nodejs/node/pull/41838) 8. [nodejs - Make building with ninja more discoverable on the docs](https://github.com/nodejs/node/pull/41840) ### Removal of shared shell from postman app - To make the postman app less resource/process hungry, we started an initiative to remove shared shell and requester shell process. - This also made us closer to **enabling web in desktop** initiative that delivers app updates faster. - There were multiple initiatives. It started with removing shared shell, reached to removing entire shell process by moving the user accounts storage to main process. - Ankur partnered to identify the things that needs to happen in a singleton fashion. Which happened easily when we have shared process, that lives throughout lifecycle of app. - Worked with Ankur to design basic building blocks required from Foundation to enable the squads to build the sessions and isolation around users. - The work done to remove renderer shell when coupled with secure storage API would make app launch even faster. - This made **app launch [faster](https://postmanlabs.atlassian.net/wiki/spaces/CF/pages/3640656474/Performance+2022)** from icon click to window open by around 4-5 seconds - This also **removed splash screen** - This **removed 2 background processes** and associated **memory usage by ~120 MB** ### Starship contributions #### Automate the process of auditing the cipher suites - The cipher suites we provide has become crucial **integral part** of postman **user's work flows** - Every upgrade of electron needs us to audit the cipher suites available, as electron upgrades come along with boringSSL upgrades - We had to understand **boringSSL** workings in order to come up with a manual audit process and then find a way to automate. - This helps us [maintain](https://bitbucket.org/postmanlabs/starship/pull-requests/582) a **clear contract** now with a list of cipher suites we support #### Initial research on storage API - Lead the pre-requisite work of surfacing the [existing landscape](https://postmanlabs.atlassian.net/wiki/spaces/DKTPFN/pages/3362127975/STARSHIP-29+Storage+API+-+Establishing+the+existing+landscape) around storage usage. - Identified and classified the usage patterns in postman app. - Worked with Juan to come up with basic API design for secure storage key store API. #### Starship bug hunt - In order to reduce the growing number of desktop-related bugs reported through our various medium, we did a team wide initiative. - Actively participated with **44 points** on the score board, **closing 9 issues** and having **12 issues in progress**. #### Electron upgrade - In order to keep the postman app updated with the security vulnerabilities discovered and to offer latest features from electron, we upgraded electron(the base desktop app development framework postman consumes) from v13 to v15 on starship. - Helped in analysing the 220 GitHub open issues of electron v14, v15, v16 to categorize and triage the impact. - Contributed to electron by upstreaming a [test](https://github.com/electron/electron/pull/32929) that verifies a tricky scenario on Linux environment - *do not propagate GDK_BACKEND env variable to subproc* - **This is a take over from electron's core maintainer** - This needed communication with electron's core maintainers - The major challenge involved is the creation and association of a custom file type and application. - Helped in handling breaking changes in postman app - Helped in testing the postman app with electron upgrade #### Publishing starship packages on npm via circleci pipeline * Out of curiosity about continuous integration and delivery, grabbed the opportunity to configure circleci to publish starship as an npm package. #### Patching npm on starship core - There was a tricky npm dep minipass, which was missing when we prepare a tall ball. And relevant changes required on npm. ### Support for Web gateway based proxy(z-scaler) - We had customers behind enterprise proxies for whom the postman app is [unusable](https://postmanlabs.atlassian.net/browse/CUE-761) due to the strange workings of proxies. - The impact radius can be inferred from the **71 zendesk tickets**. - The major challenge supporting the proxy is to get a hands on the proxy to get first hand understanding and diagnosing the issue. - We(partnered with Harshil) had to **write a custom web gateway based proxy** ourselves to simulate the issue locally as we couldn't get access to z-scaler infra. - This server helped us gain confidence before deploying it to canary without having to invest in a ton of Gateway infrastructure and time. - And we had great cooperation and patience exhibited by the customer while working with us to resolve this. - Worked with support and customer to understand the issue at hand and verify the web gateway implementation. - This work **enables us to serve enterprise customers** in near future. ### Product version Service <> ARS - This enforces a product major version on a team. This gives us more flexibility to release postman in a controlled fashion - This is a product critical initiative, as the business would be impacted if we serve unwanted major version to users. - Assumed complete ownership of the ARS server side initiative to incorporate PVS changes. - Identified the impact and designed the change (honouring PVS). - Implemented, tested, deployed and monitored the changes required. ### The contribution to API-First initiative As part of API-First initiative, got a chance to document around **half** of the important APIs like * Partition service API * Node.Js Process API * User context partition service API * Scratchpad partition service API * InstallationId API * Logger API * App settings API * Keyboard shortcuts API * Crash reporter API Also, it was a good opportunity to surface and categorise a lot of **[technical debt](https://postmanlabs.atlassian.net/wiki/spaces/DKTPFN/pages/3375628672/API+First+-+Technical+debts)**. Notable suggestions include - Promoting **serialisation as first class foundational API** and increase adoption. It would improve performance of the application if we can provide an optimised serialisation API - **Enabling electron crash reporter on postman**. This collects and sends C and C++ stack traces. These traces help us understand the crashes and root causes better. It would reduce the time to contact customer with instructions, reproduce crash, collect the logs. - **The knowledge of shared shell adds an overhead to developers**. It becomes another important thing for developers to worry about. This also needs an extra process. ### Starship <> Postman Integration - Introduced starship packaging command to postman and integrated starship with the postman app. - This enabled postman to leverage the starship work, optimisations and living contract. - This initiative abstracted core foundational packaging and runtime interfaces for postman app. - This initiative surfaced an **interface between starship and postman apps**. ### Incidents #### INC-22 Desktop App goes into a reload loop after login or add account - The reload loop made the desktop app unusable to the users - The incident's impact can be inferred from 13 user tickets overs 2 days and 1 community thread with 3 users #### INC-68 Postman shows “Certificate has expired” error for let’s encrypt issued certs - This impacted a wider audience of desktop apps developed using electron. The impact is evident from the comments and reactions on the electron [issue](https://github.com/postmanlabs/postman-app-support/issues/10338#issuecomment-932256449) - After finding the root cause, we have contributed the fix to electron upstream open-source. - We have also come up with a tricky test to keep an eye on this in future. The test required a lot of understanding in terms of certificates, openSSL,Certificate Authority, cross- signing, etc., ### Hack-fests #### Embedded postman - The [embedded postman](https://postmanlabs.atlassian.net/wiki/spaces/CF/pages/3329818908/HACK-11+Embedded+postman) project tries to reduce the time to wow users. It tries to reduce the number of hops to get started with the Postman. In its current state, users will be able to embed any Postman tabs in their own application. - We won second prize in this hack-fest with **$75 USD** amazon vouchers. I bought a kindle with this voucher. #### Tracks in stage - Deploying production versions to tracks would enable enterprises/users to have their own variant of postman. - Would enable us to revisit an older version of postman web app - We won the third popular vote for this hack. ### Miscellaneous #### Use node package to modularise the APIs Identified the need to modularise the source code on starship and proposed a way to do so and documented an approach. https://postmanlabs.atlassian.net/l/c/B1Sv3dwX When proposing the same, got to know that a company wide initiative to do so for postman is already started. To reflect the API first approach in the starship project, a node package for each API would make APIs first-class citizens. #### Possible improvements to app distribution While working with ARS, [collected](https://postmanlabs.atlassian.net/wiki/spaces/DKTPFN/pages/3446538275/App+distribution+-+the+sub+problem+spaces+involved) technical debt. notable suggestions or technical debts identified on the app distribution are: * Migration of admin UI tech stack to that postman prefers. So that we can leverage existing expertise to improve it. The UI is untouched from ages. * Getting familiarity over the squirrel source code and tech stack, in order to make improvements #### Decoupling IAM and CF During an incident I'm involved related to login loop, the existence of shell is questioned. And an initiative to remove the shell kicked off. Proposed a design to remove shell and prepared a POC. This made the tight coupling between CF <> IAM. The documentation out of this initiative is used to surface the coupling as a part of API first initiative. ### Cross team coordinations 1. [Enable dev tools for Authentication web view](https://postmanlabs.atlassian.net/wiki/spaces/DKTPFN/pages/3657171631/DKTPFN-217+Enable+dev+tools+for+authentication+web+view) 2. [Obsolete Lambda runtimes - Postman Inc](https://postmanlabs.atlassian.net/wiki/spaces/DKTPFN/pages/3657662871/DKTPFN-102+Obsolete+Lambda+runtimes+-+Postman+Inc) 3. Shared Logger API context with Integrations squad ### Interviews - Interviewed around 10 candidates and provided feedback ## Identify opportunities for improvement ### Improve my C++ knowledge - Improving my C++ knowledge around the development and tooling would help me in contributing to a low level native features. - Also helps me in increasing my open-source quality contributions ### Articulate my thoughts well - Improving articulation of my thoughts would help me in voicing my opinions - I need to come up with a way to push my thoughts with required research - This would help me in sharing my ideas well to the peers and gather support. ## Provide at least two development goals that will help provide depth in your current job and/or help you prepare for a future role. ### Own and deliver low level cross platform high complexity problems - The high complexity problems will push myself to the next level - The ownership of such low level complex problems would let me learn a wider set of skills involving planning, communication, technical ### Entrepreneurial mindset - Would love to inculcate entrepreneurial mindset in pursuing my ideas from inception to delivery - Would like to train myself to come up with new ideas and vision - This would enable me to identify the problems around me, pitch about it, pursue and solve them

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully