Share hexdevs
Share to email
Share to Facebook
Share to X
Can you tell if a Ruby gem is really thread-safe or not? And how do you fix a seemingly thread-safety issue that can be something else entirely?
We had no idea. So we asked Nate Berkopec to help us. Nate is an expert in Ruby performance.
The verdict: nuking all shared global mutable state in your Ruby code is a bad idea if you don't know what you're doing!
Listen to this episode to learn:
- How and why faker-ruby became thread-unsafe, especially for Puma users
- Questions to ask yourself when trying to debug thread-safety issues
- Shared global mutable state is not always the villain, and is not the source of all thread-safety issues
- Nate's "watch-out" list of things that can cause undesired behavior when running multi-threaded Ruby applications: Constants, Class Variables, and Rack Middleware.
Episode Notes
🔗 Full transcript and links
-----
A special thanks to Valentino Stoll, nfstern02, and Gregg P for sponsoring hexdevs!
Enjoy!
Are you working on Ruby on Rails Applications that are constantly on fire, overwhelmed by technical debt? What if you were building Technical Wealth instead? Learn which tools & strategies to work with legacy code effectively, remove dead code, and leave tech debt behind.
Listen to and watch our conversation with M. Scott Ford and learn how to build technical wealth, enjoy working with legacy code, tools, and strategies to remove dead code, and how thrive in a world of makers as a mender.
About our guest
M. Scott Ford is the Co-Founder & Chief Code Whisperer of Corgibytes, where he has quietly led a software maintenance revolution for the past decade. Where most people find nothing but frustration, shame, and bugs in legacy code, Scott has centered his work around his genuine love of software modernization and helping others use joy, empathy, and technical excellence to make their systems more stable, scalable, and secure.
Scott’s ideas have been featured in books such as The Innovation Delusion and as a guest lecturer at Harvard University. Scott is the author of three courses on LinkedIn Learning: Dealing With Legacy Code And Technical Debt, Code Quality, and Clean Coding Practices.
He is the host of the podcast Legacy Code Rocks and enjoys helping other menders find a sense of belonging in a world dominated by makers.
Episode Links
Chapters
00:00 intro
01:57 makers vs menders
03:43 menders love improving legacy codebases
05:06 greenfield projects are glamorized
06:30 greenfield-legacy projects
09:07 working with legacy code: tools & strategies
09:53 building technical wealth vs tech debt
14:29 "the big rewrite" never works
18:54 removing redundant code
22:56 features not used very often
25:41 static code analysis tools
27:23 charge extra for features used by fewer customers
30:52 find code that is never used
34:09 code audit with feature flags
36:07 enforce code quality with tests and CI
39:26 measure code quality over time
41:09 churn, complexity, and CodeClimate score
42:43 bus factor
45:59 working with makers
51:24 hanging out with other menders
53:27 follow hexdevs
How to Open Source: Learn the secrets of successful contributors
Recently, Richard published the book “How to Open Source: Learn the secrets of successful contributors". The missing handbook will guide you from making your first contribution to building a sustainable practice.
Listen to and watch our conversation with Richard Schneeman (@schneems) about the book, and how to go from coder to contributor.
Episode Links
Chapters
00:00 Intro
02:28 say hello to our cat, bob!
03:25 what prevents developers from contributing to open source?
04:58 the bystander effect
06:42 not comfortable contributing to new repo
08:30 be a lurker: read a PR and leave a thumbs up
10:12 building tiny habits for Open Source
11:19 do you really want to contribute to open source?
13:53 If you contribute to Open Source, can you skip coding interviews?
14:39 do you need a CS degree to contribute to Open Source?
15:14 use a fake account or nickname on GitHub
16:18 what prevents people from contributing more?
17:52 how do you find time to contribute to open source?
19:00 how to do open source work as part of my job?
21:53 how do you find Open Source projects to contribute to?
24:16 how to build a culture of open source at work?
27:20 what is CodeTriage & how it works?
28:56 writing the book How to Open Source
30:07 tips for getting started with open source
32:23 workarounds vs fixing bugs upstream
34:10 can you get promoted by doing open source work?
37:29 open source work and becoming Principal Engineer
40:26 making mistakes in public
41:57 merging the wrong commit in Ruby on Rails
44:39 what if my Pull Request is rejected?
50:00 how to build a contribution practice
55:14 closing remarks
Are you tired of feeling like an impostor? Do you feel like you've been holding yourself back for too long? That you are missing out on growth opportunities because you don't feel confident enough?
We believe you can be happy AND grow in your career. No need to sacrifice one to get the other. But to get there, you need as many tools and support as you can get.
In this episode, Amor Muto shares strategies to help you beat Burnout, Fear of Success and Imposter Complex.
About our guest
Amor Muto is a Certified Professional Coach with a vast knowledge and experience on the imposter complex, leadership and fear of success, especially with Software Developers. He is a tetraplegic entrepreneur with 15+ years of experience. Purpose-driven to make burnout a thing from the past.
Show Notes
"How can I practice my skills so I can code faster?"
One way is to design Drill Exercises when learning a new skill. It helps break down the steps and practice them in isolation until you master all of them. Plus, you get instant feedback.
Master technical skills faster. Design Drill Exercises and practice deliberately.
Listen to this short episode about designing effective technical practice as a self-learner. We also mentioned what we've been reading and listening to lately.
Chapters
00:00 Intro
00:22 What is deliberate practice?
01:06 Ultralearning and Drill Exercises
01:48 Direct Drills for Technical Practice
04:08 Fast Feedback on Learning
06:02 Foundational Skills
07:13 Practice above your current skill level
10:42 Learn Hard Things Faster
14:27 Improving your memory
15:11 The Feynman Technique
18:08 Subtracting and Doing Less
21:23 Ask good questions and simplify
22:55 Ending
Links
Are you an experienced software developer and don't know how to get promoted to Senior level? Have you been trying to master one technical skill after the other and still not sure how to make the jump to Senior?
In this episode, we talk about the non-obvious skills experienced software developers miss when trying to make the jump to Senior -- and how to get out of the technical trap that is keeping them stuck in the mid-career level.
Listen to our conversation with Caroline Salib to learn how she is taking control of her career and being on the path to Senior level.
About our guest
Caroline is a super talented Ruby Software Developer. She is passionate about code quality, automated tests, and open-source projects. She loves the feeling of fixing broken things and building software that will have value to others.
We talked about her experience publishing a gem for the first time, and learning C. We also talked about her “spread” experience as a Software Developer. With more than 10 years of experience, she wasn’t sure what she was missing to become a Senior Software Developer.
Carol shares the struggles of changing backgrounds from .NET, to PHP and then to Ruby. And the importance of being kind to ourselves, being comfortable with being uncomfortable, and how to embrace our mistakes.
Caroline told us how she is changing the direction of her career. By doing challenging things, taking action, and being the person who chooses to fix the problem instead of complaining about them.
Show Notes
Are you ready to Get to Senior?
Want to become a badass software developer on track to becoming a Senior just like Caroline? We just opened the doors for the next Get to Senior cohort.
If you want more support and accountability on your path to Senior, enroll in the next cohort now to start your journey to Senior level.
Often as developers, we believe we are supposed to know everything. Just figure everything by ourselves. As long as we get faster and better at coding, our careers will progress smoothly.
But if you ask around, you’ll notice that most people are feeling technically stuck, despite years of experience. If you ask for career advice, people will throw you an endless list of complex technical skills to master.
That’s not what you’ll find here.
Have you ever reflected on your career goals as a Software Developer? How often do you talk with someone who’s doing the kind of work you want to be doing?
Mina Slater is our guest for this episode. Mina decided she will never be stuck. She is always doing things that are uncomfortable and scary, such as communication and leadership skills. Some people call these "soft skills for software developers".
With more than a decade of experience with theater management before becoming a Software Developer, Mina has been progressing in her career as she wanted. She even created her own role. In the week this episode was released, she was promoted to Senior Developer!
This episode also addresses this fact: no pacing is right or wrong, everyone has their own journey. How do you make sure you are moving forward and not getting stuck on your journey? That’s what this episode is about.
You’ll hear Mina using phrases such as “helping my team”, “reflecting on my progress”, “peer-mentoring”, “people skills”. These are clues of how to explore opportunities to grow in your career organically.
About Mina Slater
Mina Slater is dedicated to using her "superpowers" for good, to connect people and bring them closer together by contributing to meaningful and inclusive products.
Since transitioning from a career in theater management by way of Northwestern Coding Bootcamp in April of 2018, she has developed as Engineer and Consultant, with a specific interest in the backend and Ruby On Rails.
—
Do you feel like you’re too experienced to be a Junior but not enough to be a Senior? Feeling stuck in your career? Don’t know what to do next in your Ruby developer career?
Join Get to Senior, a collection of case Study interviews with Ruby developers. Learn from real people. Follow guided exercises to put into practice the strategies from the case studies to map out your Path to Senior. Grab your Get to Senior copy now.
Or sign up for the free Get to Senior Crash Course to receive 5 email lessons over the next 2 weeks. Learn how to identify opportunities to work on challenging projects while on the job. Get started now.
—
★ Episode Notes & Links
★ Buy Get to Senior
★ Get to Senior Free Email Crash Course
Do you suffer from Slack notification anxiety? On-call schedules and deadlines giving you nightmares? Are your teammates nitpicking your code during code review?
Instead of quitting your job out of frustration and having to go through another round of technical interviews, what if you knew how to have a great relationship with your work?
Learn how to deal with imposter syndrome, unrealistic deadlines, and stop communicating passive-aggressively today!
Communicate effectively with your team and finish the day feeling good about what you've accomplished.
Listen to our conversation with Dr. Randy Paterson, a psychologist and author practicing in Vancouver, Canada. He is the author of "The Assertiveness Workbook - How to express your ideas and stand up for yourself at work and in relationships."
He taught us effective skills we can use to feel better about our daily jobs as developers. Learn how to tell your manager that the project is running late without being the negative person in the team. And how to deal with conflict without freaking out.
Whether you've experienced any of these situations at work or have heard stories about it, it's always good to learn how to communicate better and avoid resentments. Enjoy the episode and share it with a friend or colleague!
Sign up for the hexdevs newsletter today and receive exercises, research-based techniques and actionable ideas to help you become an expert developer!
Episode links
- Full episode Transcript and Show Notes
- Save your spot for the hexdevs Software Design Workshop and take the next right step for your career
- Dr. Randy Paterson's website
- The Assertiveness Workbook - How to express your ideas and stand up for yourself at work and in relationships
- Psychology Salon with Dr. Randy Paterson - YouTube channel
- First Person Plural: Emotional Intelligence & Beyond podcast
Are you working on Ruby on Rails Applications that are constantly on fire, overwhelmed by technical debt?
Instead of being a firefighter, what if you could be a happy programmer again and "Escape the tar pit"?
Learn exactly how to measure tech debt and take the right steps to immediately improve code quality!
Listen to our conversation with Ernesto Tagwerker (@etagwerker). He is the Founder & CTO at FastRuby.io & Ombu Labs.
He and his company are the maintainers of many code quality projects: skunk, rails_stats, metric_fu, and rubycritic, and many other important Ruby gems such as database_cleaner, bundler_leak, and next_rails.
He's an expert in upgrading and improving legacy Ruby on Rails applications. He taught us some step-by-step strategies you can follow to quickly measure and improve code quality.
Sign up for the hexdevs newsletter today and receive exercises, research-based techniques and actionable ideas to help you become an expert developer!
Episode links
- Full episode Transcript and Show Notes
- Save your spot for the hexdevs Software Design Workshop and take the next right step for your career
- Read How to Improve Code Quality on a Ruby on Rails Application
- Ernesto Tagwerker on Twitter
- Podcast episode about maintaining shoulda_matchers with Gui Vieira
- RubyConf 2019 - Escaping The Tar Pit by Ernesto Tagwerker
- The Code Quality Challenge
- The Mythical Man-Month (book)
- Breaking Up the Behemoth by Sandi Metz
- Getting Empirical About Refactoring
- Code Quality Tools
- Makers vs Menders Talk by M. Scott Ford
- Surviving Legacy Code Workshop
- skunk.fyi (gem)
- skunk (gem)
- rails_stats (gem)
- metric_fu (gem)
- rubycritic (gem)
Do you feel frustrated with everything you need to learn as a developer?
When you can't learn a simple software development concept, build a simple feature, or find a simple bug, and you feel completely stuck. It's common to think that things will never 'click' for you.
Do you know these days when you feel like you're digging yourself into a hole?
What if you could use that energy to build up a ladder you can climb instead?
What if you had a strategy to get into the flow and focus on doing your best work as part of your coding journey?
The Thoughts and Questions from the Unstuck Guide for Developers will help you re-frame your perspective when you’re feeling in a rut on your coding journey.
Episode Notes and Free Cheat Sheet
The podcast currently has 41 episodes available.