Skip to content

Commit

Permalink
chore: sourcegraph is not open-source
Browse files Browse the repository at this point in the history
  • Loading branch information
bobheadxi committed Aug 25, 2024
1 parent 60b687f commit 1edc313
Show file tree
Hide file tree
Showing 9 changed files with 50 additions and 50 deletions.
24 changes: 11 additions & 13 deletions content/_experience/2020-5-7-sourcegraph-intern.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,6 @@ My work as an intern had several areas of focus:
* improving the [process for creating Sourcegraph releases](#sourcegraph-releases) to on-premise deployments with new capabilities
* experimenting with changes to the [pipelines that help us roll out Sourcegraph changes](#deployment-pipelines) to the various deployments we manage ourselves

Most of the company's work is open-source, so you can [see my pull requests for Sourcegraph on GitHub](https://github.com/search?q=org%3Asourcegraph+author%3Abobheadxi+is%3Amerged+updated%3A%3C2021-05-01&type=pullrequests&s=comments&o=desc)! If you poke around, you might spot me chiming in on a variety of other pull requests and issue discussions as well.

A brief hiatus after my internship, I [returned to Sourcegraph full-time](2021-7-5-sourcegraph.md).

<br />
Expand All @@ -41,18 +39,18 @@ A brief hiatus after my internship, I [returned to Sourcegraph full-time](2021-7
During my time at Sourcegraph, a major part of my focus has been on expanding the capabilities of Sourcegraph's built-in monitoring stack and improving the experience for administrators of Sourcegraph deployments, Sourcegraph engineers, and Sourcegraph support.

* I created a new sidecar service to ship with the [Sourcegraph Prometheus image](https://docs.sourcegraph.com/dev/background-information/observability/prometheus), which I wrote a bit about in [this blog post](../_posts/2020-06-21-docker-sidecar.md). This service enabled me to build:
* [alerting capabilities and configuration](https://docs.sourcegraph.com/admin/observability/alerting) directly within Sourcegraph, which now powers all alerting needs (routing, paging, and more) at Sourcegraph and [completely replaced our old alerting infrastructure](https://github.com/sourcegraph/sourcegraph/issues/5370#issuecomment-629406540)
* the ability to [include recent alerts data in bug reports](https://github.com/sourcegraph/sourcegraph/pull/10704) and [render service status within the Sourcegraph app](https://github.com/sourcegraph/sourcegraph/pull/11957)
* [alerting capabilities and configuration](https://docs.sourcegraph.com/admin/observability/alerting) directly within Sourcegraph, which now powers all alerting needs (routing, paging, and more) at Sourcegraph and [completely replaced our old alerting infrastructure](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/5370#issuecomment-629406540)
* the ability to [include recent alerts data in bug reports](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/10704) and [render service status within the Sourcegraph app](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/11957)

<figure>
<img src="https://user-images.githubusercontent.com/23356519/106082166-26713580-6155-11eb-9b96-cecceb1af5b3.png" />
<figcaption>The Prometheus sidecar allows for detailed diagnostic feedback within the main Sourcegraph application.</figcaption>
</figure>

* I built features for and refactored the [Sourcegraph monitoring generator](https://docs.sourcegraph.com/dev/background-information/observability/monitoring-generator), which generates the Grafana dashboards, Prometheus rules and alerts definitions, documentation, and more that ship with Sourcegraph from a [custom monitoring specification](https://github.com/sourcegraph/sourcegraph/blob/main/monitoring/monitoring/README.md) that teams use to declare monitoring relevant to their services. Some changes include:
* [team ownership of alerts](https://github.com/sourcegraph/sourcegraph/issues/12010), which is part of what drives our alerting infrastructure and also guides support request routing.
* [new API design for customising graph panels](https://github.com/sourcegraph/sourcegraph/pull/17112) within our monitoring specification
* generated [dashboard overlays](https://github.com/sourcegraph/sourcegraph/pull/17198) for alert events and version changes
* I built features for and refactored the [Sourcegraph monitoring generator](https://docs.sourcegraph.com/dev/background-information/observability/monitoring-generator), which generates the Grafana dashboards, Prometheus rules and alerts definitions, documentation, and more that ship with Sourcegraph from a [custom monitoring specification](https://github.com/sourcegraph/sourcegraph-public-snapshot/blob/main/monitoring/monitoring/README.md) that teams use to declare monitoring relevant to their services. Some changes include:
* [team ownership of alerts](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/12010), which is part of what drives our alerting infrastructure and also guides support request routing.
* [new API design for customising graph panels](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/17112) within our monitoring specification
* generated [dashboard overlays](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/17198) for alert events and version changes
* driving a cross-team discussion to [overhaul the principles that drive our work on this tooling](https://github.com/sourcegraph/about/pull/2000) to help guide the future of monitoring at Sourcegraph

<figure>
Expand All @@ -62,8 +60,8 @@ During my time at Sourcegraph, a major part of my focus has been on expanding th

I also made a wide range of other improvements such as:

* [Shipping cAdvisor with Sourcegraph](https://github.com/sourcegraph/sourcegraph/issues/9791), which now serves container metrics for our standardised dashboards across deployment types
* [Update dashboards to scale with deployment sizes](https://github.com/sourcegraph/sourcegraph/pull/12756)
* [Shipping cAdvisor with Sourcegraph](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/9791), which now serves container metrics for our standardised dashboards across deployment types
* [Update dashboards to scale with deployment sizes](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/12756)

<br />

Expand All @@ -73,19 +71,19 @@ Previously, creating Sourcegraph releases was a lengthy, complex process that in

* I made extensive improvements to the [Sourcegraph release tool](https://about.sourcegraph.com/handbook/engineering/distribution/tools/release), which handles automation of release tasks such as generating multi-repository changes, creating tags, setting up tracking issues, adding calendar events, making announcements, and more.
* New automated changes and consolidated features as part of work to [reduce the number of steps to create a release](https://github.com/orgs/sourcegraph/projects/90)
* [Multi-repository changeset tracking](https://github.com/sourcegraph/sourcegraph/pull/15032)
* [Multi-repository changeset tracking](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/15032)
* Extensive refactors to improve the tool's extensibility and reliability
* Overall, helped reduce time to cut a release from several days to just a few hours

<figure>
<img src="../../assets/images/experience/sourcegraph/single-day-releases.png" width="75%">
<figcaption>
Chart of downwards trend of steps required to create a release, based on checklist items in our generated release tracking issues (for example, <a href="https://github.com/sourcegraph/sourcegraph/issues/17727">sourcegraph#17727</a>).
Chart of downwards trend of steps required to create a release, based on checklist items in our generated release tracking issues (for example, <a href="https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/17727">sourcegraph#17727</a>).
Patch release steps increased due to improved documentation and standardisation of the process.
</figcaption>
</figure>

* Improved our integration and regression testing suite by introducing the capability to [directly leverage candidate images in tests, generalising test setup tooling, and migrating our automated upgrade tests to ensure compatibility](https://github.com/sourcegraph/sourcegraph/pull/14974)
* Improved our integration and regression testing suite by introducing the capability to [directly leverage candidate images in tests, generalising test setup tooling, and migrating our automated upgrade tests to ensure compatibility](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/14974)
* Work on automated end-to-end testing by the Distribution team also contributed to the removal of many release steps
* The use of shared per-build candidate images is now the standard way to run integration tests, saving a lot of build time previously spent building images for each individual test

Expand Down
10 changes: 6 additions & 4 deletions content/_experience/2021-7-5-sourcegraph.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ description: "July 2021 - Present | Remote"
author: robert
---

Since July 2021, I have been working as a software engineer at [Sourcegraph](#about-sourcegraph), firstly in the the newly created [Developer Experience team](#developer-experience) for about 5 months and later in the [Sourcegraph Cloud team](#sourcegraph-cloud).
Since July 2021, I have been working as a software engineer at [Sourcegraph](#about-sourcegraph) in various teams across the company over time.

Most of the company's work is open-source (to a lesser extent on the Sourcegraph Cloud team), so you can [see some of my contributions for Sourcegraph on GitHub](https://github.com/search?q=org%3Asourcegraph+author%3Abobheadxi+is%3Amerged+created%3A%3E2021-05-01&type=pullrequests&s=comments&o=desc)!
- [Core Services](#core-services)
- [Sourcegraph Cloud](#sourcegraph-cloud)
- [Developer experience](#developer-experience)

## Core Services

Expand All @@ -39,15 +41,15 @@ During my 15 months as part of the Developer Experience team, I contributed exte
- [`sg`, the Sourcegraph developer tool](https://docs.sourcegraph.com/dev/background-information/sg), in particular building out a infrastructure to [allow development of `sg` to scale](../_posts/2022-10-10-investing-in-development-of-devx.md)
- Sourcegraph's continuous integration infrastructure and CI pipeline generator
- the Sourcegraph monitoring generator, which manages converting monitoring definitions into integrations with Sourcegraph's monitoring ecosystem like Grafana dashboards, Prometheus Alertmanager alerts, and generated alert response documentation.
- driving the discussion, implementation, and adoption of [standardised logging](https://github.com/sourcegraph/sourcegraph/pull/33956) and [OpenTelemetry](https://github.com/sourcegraph/sourcegraph/issues/39397) in Sourcegraph
- driving the discussion, implementation, and adoption of [standardised logging](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/33956) and [OpenTelemetry](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/39397) in Sourcegraph
- designing and building a new architecture for [scalable, stateless continuous integration agents](../_posts/2022-4-18-stateless-ci.md)

...and more.

In addition to work directly related to the Developer Experience teams' ownership areas, I also contributed to other parts of the core Sourcegraph application during my time with the team, such as:

- [scaling GitHub permissions mirroring](../_posts/2021-10-8-mirroring-github-permissions-at-scale.md) for large enterprises and supporting the continued maintenance of Sourcegraph's permissions syncing systems
- designing and developing [an extended permissions model for Sourcegraph](https://github.com/sourcegraph/sourcegraph/issues/27916), notably [implementing expanded access control parsing for Perforce](https://github.com/sourcegraph/sourcegraph/pull/26745)
- designing and developing [an extended permissions model for Sourcegraph](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/27916), notably [implementing expanded access control parsing for Perforce](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/26745)

<br />

Expand Down
12 changes: 6 additions & 6 deletions content/_posts/2020-06-21-docker-sidecar.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ While I'll generally refer to Grafana in this writeup, you can apply it to prett

---

**⚠️ Update:** Since the writing of this post, we have pivoted on the plan ([sourcegraph#11452](https://github.com/sourcegraph/sourcegraph/issues/11452#issuecomment-648628953)) and most of the work here no longer lives in our Grafana distribution, but is instead a part of our Prometheus distribution - see [sourcegraph#11832](https://github.com/sourcegraph/sourcegraph/pull/11832) for the new implementation. You can explore the source code [on Sourcegraph](https://sourcegraph.com/github.com/sourcegraph/sourcegraph/-/tree/docker-images/prometheus), and relevant documentation [here](https://docs.sourcegraph.com/dev/background-information/observability/prometheus).
**⚠️ Update:** Since the writing of this post, we have pivoted on the plan ([sourcegraph#11452](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/11452#issuecomment-648628953)) and most of the work here no longer lives in our Grafana distribution, but is instead a part of our Prometheus distribution - see [sourcegraph#11832](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/11832) for the new implementation. You can explore the source code [on Sourcegraph](https://sourcegraph.com/github.com/sourcegraph/sourcegraph-public-snapshot/-/tree/docker-images/prometheus), and relevant documentation [here](https://docs.sourcegraph.com/dev/background-information/observability/prometheus).

Most of this article still applies though, but with Prometheus + Alertmanager instead of Grafana.

Expand Down Expand Up @@ -309,15 +309,15 @@ And that's it for a rudimentary sidecar service that allows you to continue trea

Some relevant pull requests implementing these features:

* [sourcegraph#11427](https://github.com/sourcegraph/sourcegraph/pull/11427) - I ended up reverting this due to bugs in certain environments and adding it back in [sourcegraph#11483](https://github.com/sourcegraph/sourcegraph/pull/11483), but both PRs include relevant discussions. These PRs implements a basic sidecar without start and restart capabilities.
* [sourcegraph#11554](https://github.com/sourcegraph/sourcegraph/pull/11554) adds the ability for the sidecar to start and restart the main service.
* [sourcegraph#11427](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/11427) - I ended up reverting this due to bugs in certain environments and adding it back in [sourcegraph#11483](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/11483), but both PRs include relevant discussions. These PRs implements a basic sidecar without start and restart capabilities.
* [sourcegraph#11554](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/11554) adds the ability for the sidecar to start and restart the main service.

Note that most of the above work has been superseded by a pivot to Prometheus (see the update at the start of this post).
Following the pivot, a lot of other work was enabled by the addition of this sidecar:

* [sourcegraph#12010](https://github.com/sourcegraph/sourcegraph/issues/12010) (implementation: [sourcegraph#12491](https://github.com/sourcegraph/sourcegraph/pull/12491)) proposed a mechanism for denoting ownership in our monitoring and routing alerts appropriately.
* [sourcegraph#17602](https://github.com/sourcegraph/sourcegraph/pull/17602) demonstrated potential summary capabilities a sidecar can export.
* [sourcegraph#17014](https://github.com/sourcegraph/sourcegraph/pull/17014) and [sourcegraph#17034](https://github.com/sourcegraph/sourcegraph/pull/17034) adds timestamped links to relevant Grafana panels to alert messages.
* [sourcegraph#12010](https://github.com/sourcegraph/sourcegraph-public-snapshot/issues/12010) (implementation: [sourcegraph#12491](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/12491)) proposed a mechanism for denoting ownership in our monitoring and routing alerts appropriately.
* [sourcegraph#17602](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/17602) demonstrated potential summary capabilities a sidecar can export.
* [sourcegraph#17014](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/17014) and [sourcegraph#17034](https://github.com/sourcegraph/sourcegraph-public-snapshot/pull/17034) adds timestamped links to relevant Grafana panels to alert messages.

## About Sourcegraph

Expand Down
Loading

0 comments on commit 1edc313

Please sign in to comment.