Sign in

Jenny Bryan

@jennybryan.bsky.social
6.7K followers 463 following 99 posts

Software engineer @posit.co, humane #rstats

PostsRepliesMedia
Jenny Bryan @jennybryan.bsky.social · 04/09/2026
"hey, will you remove kudzu from my yard for free?" 😖
150
Jenny Bryan @jennybryan.bsky.social · 02/09/2026
👉 "But in this new era, we must delete code even harder, because if we don’t constantly remove complexity, we are going to drown in generated kudzu slop that overtakes codebases." 🌿
04710
Reposted by Jenny Bryan
Davis Vaughan @davisvaughan.bsky.social · 26/06/2026
Air 0.10.0 is out now! - Enforce `<-` or `=` throughout your #rstats code (only one of these is correct though 😉) - Tighter Positron and RStudio integration - pre-commit / prek support - stdin support - Install with uv, mise, or pixi Read all about it! opensource.posit.co/blog/2026-06...
opensource.posit.co
Air 0.10.0
Air 0.10.0 is here! This release rounds up everything new since 0.8.2: a new `assignment-style` option, tighter Positron and RStudio integrations, installation via uv and friends, pre-commit support, ...
07217
Reposted by Jenny Bryan
Mine Çetinkaya-Rundel @minecr.bsky.social · 25/06/2026
TidyDevDay 2026: bring your laptop, leave with a merged PR, new friends, and sharper R skills! First-time contributor? Perfect. Seasoned developer? Also perfect. opensource.posit.co/blog/2026-06... 📅 Sep 17, Houston, TX, after posit::conf(2026) 🕘 9 am - 4 pm 🎟️ luma.com/pnjuw08h #rstats #tidyverse
opensource.posit.co
Tidy Dev Day 2026
Join us for a full day of collaborative open source work — whether you're a seasoned contributor or making your very first pull request.
33113
Reposted by Jenny Bryan
Nic Crane @niccrane.bsky.social · 22/06/2026
Contributing to open source using AI can be a win for both maintainers and contributors, but it takes some thought to keep that balance. I wrote a blog post about some of the strategies I use when contributing to a new codebase. niccrane.com/posts/ai-ope... #rstats #ai #opensource
niccrane.com
My Strategies for Using AI to Contribute to Open Source – Nic Crane
Nic Crane
0142
Jenny Bryan @jennybryan.bsky.social · 20/05/2026
I think it’s defensive because it is also annoying and wasteful of tokens to attempt an operation in the wrong working directory I just think this should be worked out at a different layer of the system / in a less boneheaded way
020
Jenny Bryan @jennybryan.bsky.social · 20/05/2026
most/all AI coding agents *love* to do an explicit `cd` before various bash commands but this makes those commands into compound commands, which tend to be viewed as higher risk and it also makes it harder to write simple allow/deny rules that work well
130
Jenny Bryan @jennybryan.bsky.social · 19/05/2026
I have to update one of the most inflammatory things I said back on the bird site, but for the LLM era: 🔥 🔥 🔥 🔥 If your agent prefaces every tool call with `cd /the/current/workspace &&`, I will come set your data center on fire 🔥 🔥 🔥 🔥
2610112
Jenny Bryan @jennybryan.bsky.social · 18/05/2026
I didn't engage in that sort of stuff for fun, but do remember messing around with Hypercard, which seems pretty on-brand for my nerd subtype 🤓
051
Jenny Bryan @jennybryan.bsky.social · 17/05/2026
We got "lucky" and were selected for the long form of the Canadian census. Which apparently I filled out after the deadline 😬 once I saw the envelope says it's required by law.
3160
Jenny Bryan @jennybryan.bsky.social · 04/05/2026
I feel like #rstats is actually doing well re: "Maintainers need help finding out who’s downstream of them, talking to those people before things break". I know that R core uses CRAN pkgs basically as tests and pkg maintainers *have* to grapple with rev dep breakage before release.
141
Jenny Bryan @jennybryan.bsky.social · 01/05/2026
I am most excited that @inheritParams now supports explicit inclusion and exclusion 🎉 #rstats #' @inheritParams other_fn x y #' @inheritParams other_fn -z
2376
Jenny Bryan @jennybryan.bsky.social · 09/04/2026
Just sent this to my oldest, who's in 4th year of a software engineering degree. It's going to be an "interesting" ride for this cohort 😅
1216
Jenny Bryan @jennybryan.bsky.social · 05/04/2026
this honestly increases my interest in making slides with quarto (I'm a known Keynote neanderthal 😅, but am trying to psych myself up for a change)
130
Jenny Bryan @jennybryan.bsky.social · 02/04/2026
Weird thing I'm enjoying about the Orion launch: I love hearing people speak with this level of precision 🤓
0211
Jenny Bryan @jennybryan.bsky.social · 22/03/2026
this was my exact thought! during COVID, you could rent the local theatre for your family/quarantine unit so we booked it to (rere)watch The Martian 🤓
140
Reposted by Jenny Bryan
Max kuhn @topepo.bsky.social · 21/03/2026
Our list of 2026 #rstats and #python summer internships has been posted. We can't wait to work with you and make great things! tidyverse.org/blog/2026/03...
tidyverse.org
2026 Posit Internships
Posit is sponsoring four summer internship positions in 2026.
12618
Jenny Bryan @jennybryan.bsky.social · 18/03/2026
this is covered in github.com/tidyverse/re... it's not always a welcome or popular response, but this is the downside of type guessing -- super convenient yes, but in the end it's always better (safer) to specify types as an analysis gets more serious
github.com
Why does "1176413S03" get converted to numeric when using `readr::type_convert` ? · Issue #1562 · tidyverse/readr
Why does these values get converted into numeric when using readr::type_convert ? I would expect them to stay characters. x <- c("1176413S03", "1176413S06", "1176413S02", "1176413S08", "1176413S05"...
151
Jenny Bryan @jennybryan.bsky.social · 12/03/2026
This is fantastic news! Heather is such a positive force in the #rstats community and is doing vital work for the long-term sustainability of R and its community.
2486
Jenny Bryan @jennybryan.bsky.social · 02/03/2026
in a similar vein, I'm not fond of the "chore" label in issue tagging systems
1120
Reposted by Jenny Bryan
Posit @posit.co · 27/02/2026
The future of #DataScience is at #positconf 2026. Check out our keynote lineup: Wes McKinney: Future of high-performance computing Christine Zhang: Data storytelling at NY Times Emily Riederer: Scaling open-source at Capital One Sara Altman & Simon Couch: AI-driven workflows Register: pos.it/conf
0178
Jenny Bryan @jennybryan.bsky.social · 23/02/2026
this is one of my very favorite things about withr's take on this withr::defer() -> withr::deferred_run() tidyverse.org/blog/2020/04...
tidyverse.org
Self-cleaning test fixtures
A wild romp through environments -- namely, the environments associated with functions and tests. How to adopt a low-impact lifestyle.
010
Reposted by Jenny Bryan
Posit @posit.co · 20/02/2026
Apply to be an Opportunity Scholar at posit::conf(2026) in Houston! We’re offering 40 full-support scholarships for underrepresented groups in data science. Includes: 🎟️ Conference+Workshop pass 🏨 Hotel stay ✈️ Travel reimbursement Apply by March 13: posit.co/blog/apply-t... #positconf2026 #rstats
02613
Reposted by Jenny Bryan
ᴅʀ. ᴍᴏᴡɪɴᴄᴋᴇʟ'ꜱ @drmowinckels.io · 03/02/2026
Stop playing "diagnostics ping-pong" with your users 🏓 Wrote about why every R package wrapping external tools needs a sitrep() function — with real examples from meetupr and freesurfer. #RStats drmo.site/F5gVjR
A close-up view of a computer monitor in a dimly lit room, showing a terminal console. The terminal displays the output of an R function called meetupr_sitrep(). The report shows green checkmarks for "Active Authentication" and "Cached Token," and a blue information icon for package settings. At the bottom, a red "X" marks a failed "API Connectivity Test," illustrating a diagnostic situation report in action. In the foreground, a coffee mug and a person’s hand on a keyboard are visible but slightly out of focus.
0226
Reposted by Jenny Bryan
Posit @posit.co · 02/02/2026
Good news: The posit::conf(2026) Call for Talks has been extended to Friday, February 20! Join us in Houston to share your work with the R & Python community. 🎤 Speakers receive: Professional coaching, free conference pass, travel assistance Submit your 20-min talk proposal: pos.it/conf-talk-2026
095
Jenny Bryan @jennybryan.bsky.social · 27/01/2026
you don't need to copy/paste from that preview! the rendered reprex, in a friendly md form, is already on your clipboard 😆 the htmlpreview is for your 👀, but the good stuff is on the clipboard waiting to be pasted in the relevant venue (default is github, but slack can also be requested)
151
Reposted by Jenny Bryan
Posit @posit.co · 15/01/2026
Speak at posit::conf(2026) and share your R & Python stories! Accepted speakers get: ✨ Travel & lodging help ✨ Free conference pass ✨ Professional coaching Apply by Feb 6 to join us Sept 14-16 in Houston, TX! Submit here: pos.it/conf-talk-2026 #positconf2026 #rstats #pydata
03012
Jenny Bryan @jennybryan.bsky.social · 12/12/2025
the tidyr::separate_wider_*() functions might offer a nice little improvement to your existing approach this idea has been kicking around for years and @henrikbengtsson.bsky.social catalyzed something at an rOpenSci unconf once: github.com/HenrikBengts...
github.com
GitHub - HenrikBengtsson/dirdf: R package: dirdf - Extracts Metadata from Directory and File Names
R package: dirdf - Extracts Metadata from Directory and File Names - HenrikBengtsson/dirdf
180
Reposted by Jenny Bryan
Roy Francis @royfrancis.bsky.social · 08/12/2025
Join us this summer in Visby, Sweden 🇸🇪 for RaukR 2026, a 2-week intensive R summer school 👨‍💻👩‍💻 to take your R skills 📊 beyond the basics. Sign up now for early bird offer! @nbis.se @scilifelab #rstats #r #datascience #code #bioinformatics #nbisweden #raukr go.nbis.se/raukr-2026/
022
Jenny Bryan @jennybryan.bsky.social · 24/11/2025
Vignette workflows are just inherently awkward since, unlike help topics and `man/*.Rd` files, the rendered form of vignettes has no legit business or home inside an R package in source form. This chapter outlines some of the least bad workflows: r-pkgs.org/vignettes.html
r-pkgs.org
17  Vignettes – R Packages (2e)
Learn how to create a package, the fundamental unit of shareable, reusable, and reproducible R code.
180
Jenny Bryan @jennybryan.bsky.social · 17/11/2025
I define short aliases `bp()` and `bg()` for `usethis::browse_package()` and `usethis::browse_github()` in `.Rprofile` because I use them so much.
050
Jenny Bryan @jennybryan.bsky.social · 17/11/2025
I'm reminded of how handy the usethis::browse_*() functions are and thought I'd remind people they exist. Choose from a menu of links or go straight to CRAN or GitHub. #rstats
Screenshot showing usage of usethis::browse_package(), usethis::browse_cran(), and usethis::browse_github().
25518
Jenny Bryan @jennybryan.bsky.social · 12/11/2025
This gives a fantastic framing of how to think about reproducibility (it's a spectrum) and how to use renv with intention. Highly recommend, even if you're not using renv, to get a better understanding of how to live in peace as R and package versions advance 🕊️ #rstats
2448
Reposted by Jenny Bryan
Jonathan @jmcphers.bsky.social · 07/11/2025
My keynote about data science tools at posit::conf is now online! I originally meant it to be a talk about Positron, but as I was writing it, it took a left turn through the history of RStudio and into the philosophy of tool design & how to build stuff for people. www.youtube.com/watch?v=tGre...
youtube.com
10 Years of Data Science Tools...and What Happens Next (Jonathan McPherson) | posit::conf(2025)
YouTube video by Posit PBC
04811
Reposted by Jenny Bryan
Davis Vaughan @davisvaughan.bsky.social · 07/11/2025
We are looking for #rstats community feedback on 3 new dplyr functions! We're aiming to expand the `filter()` family: - `filter()` to keep rows - `filter_out()` to drop rows - `when_any()` and `when_all()` as modifiers Read more and leave feedback here: github.com/tidyverse/ti...
Example of using `filter_out()` on the `penguins` dataset, showing how it is much easier than `filter()`, especially with `NA`s
1014933
Jenny Bryan @jennybryan.bsky.social · 06/11/2025
maybe it should be your first Pythong package 🩴
1111
Jenny Bryan @jennybryan.bsky.social · 31/10/2025
Will definitely include this example in my next talk on how to name files! ✅ Full marks for "make it easy to guess what the heck something is, based on it name".
1374
Reposted by Jenny Bryan
Isabella Velásquez @ivelasq3.bsky.social · 27/10/2025
I loved discussing "Positron for RStudio Users: A Gentle Introduction" with @simisani.bsky.social & R-Ladies Gaborone! Check out the recording and materials: 📹 www.youtube.com/watch?v=2fOQ... 📝 ivelasq.rbind.io/talk/positro... I hope this intro is better than the one between my three cats 😹
Positron for RStudio Users: A Gentle Introduction with an image of a cute orange kitten sniffing a hand
3398
Reposted by Jenny Bryan
Lionel Henry @lionelhenry.bsky.social · 21/10/2025
I'm excited to share a new version of the Air formatter for #rstats, with support for tabular formatting! Super useful with `tibble::tribble()` calls or `data.table::fcase()`. It's currently experimental as we're looking to get feedback on the feature, so please let us know what you think.
713631
Jenny Bryan @jennybryan.bsky.social · 21/10/2025
I still marvel at the choice to do "C:\Program Files"
190
Jenny Bryan @jennybryan.bsky.social · 03/10/2025
BTW this "Frequency Reduces Difficulty" post from @martinfowler.com is the origin of the mantra "if it hurts, do it more often" (at least, it's where I learned it). It's amazing how broadly this applies. martinfowler.com/bliki/Freque...
martinfowler.com
bliki: Frequency Reduces Difficulty
"If it hurts - do it more often". Good advice if the amount of pain raises exponentially with the time between actions, such as for integrating software.
0284
Jenny Bryan @jennybryan.bsky.social · 03/10/2025
I bet the whole reason he's thinking about this is that I was complaining to him (to everyone, really) about the pain of using Windows full-time while my macbook's logic board gets replaced. And he brought out the house words "if it hurts, do it more often!"
3402
Jenny Bryan @jennybryan.bsky.social · 03/10/2025
this is a *wild* exaggeration but I'll allow it 🤣
1181
Jenny Bryan @jennybryan.bsky.social · 02/10/2025
"When you hit enter for a newline in your prompt" on the "This little maneuver is gonna cost us 51 years" image from Interstellar
1132
Jenny Bryan @jennybryan.bsky.social · 02/10/2025
2️⃣ I HAVE SUCH STRONG FEELINGS ABOUT THIS but already sense that it's a lost cause
1210
Jenny Bryan @jennybryan.bsky.social · 26/09/2025
I'd install Xcode command line tools (NOT all of Xcode) to get git and compilers, etc. (xcode-select --install) and I'd use rig to install one or more versions of R (github.com/r-lib/rig) (my macbook's logic board failed and is being replaced, so I'll be doing all this set up myself soon 😬)
github.com
GitHub - r-lib/rig: The R Installation Manager
The R Installation Manager. Contribute to r-lib/rig development by creating an account on GitHub.
170
Reposted by Jenny Bryan
We Are RLadies+ @weare.rladies.org · 23/09/2025
Ever run `install.packages()` and wish it were faster, smarter, and more reliable? The {pak} package speeds things up with parallel downloads, dependency solving, and reproducible installs. 📦 pak.r-lib.org #RStats
you should be using pak
15712
Jenny Bryan @jennybryan.bsky.social · 19/09/2025
enough women to make a line 😄
020
Reposted by Jenny Bryan
Davis Vaughan @davisvaughan.bsky.social · 17/09/2025
Air is our incredibly fast R code formatter! Come learn all about it at 2:40pm in Regency V in the Sparking Development Joy session!! We also have hex stickers! #positconf2025 #rstats
Air hex sticker logo
1325
Jenny Bryan @jennybryan.bsky.social · 17/09/2025
The equivalent of the Bechdel test for a tech-ish event is “is there a line for the womens bathroom?” and #positconf just passed with flying colours 😅
1739