Valerii Iatsko

// wisdom

Wisdom

A moodboard of tweets and links I keep coming back to.

No CS Degree

Inspiring interviews with successful self-taught and bootcamp developers

Simplicity

Distinguished Engineers are not always right & importance of the feedback

Chasing FAANG

Staff Engineering

Junior Devs

Job Title

Titles matter. 10 years ago, when I was junior, I didn’t go for promo for a while. I accumulated more leadership over time. My perf said I’m splitting myself too thin even though I was just performing at the next level. I got promoted and my next perf appreciated my “thin” split.

Jaana Dogan ヤナ ドガン @rakyll

I'd be happier in a world titles mattered less but titles change the way others perceive the content and scope of your work. Titles also set the expectations for many people because not everyone can work at the same level on a project.

Jaana Dogan ヤナ ドガン @rakyll

Inclusivity problems in tech has a lot to do with titles. You won't be invited to a cross-team strategy meeting if you are officially a junior person regardless of how you perform. It's your leader's job to start including you. If they fail, you're missing opportunities.

Jaana Dogan ヤナ ドガン @rakyll

Titles matter because it impacts the way people outside of your immediate team/org work with you. If I wanted to work on projects only directly impacting a few engineers, I'd not care about titles. If you need to go beyond, keeping levels representative of your scope matters.

Jaana Dogan ヤナ ドガン @rakyll

Once you step outside the boundaries of your company, describing the scope and responsibilities of your title starts to matter. It's not unlikely for a principle engineer at a XXX billion dollar company to operate with a larger scope than many SV CTOs.

Jaana Dogan ヤナ ドガン @rakyll

Opinions

Big Companies

Developing New Language

Productionization new languages at Google is a lot of work. As a person who witnessed two attempts, this thread is what I learned. Google has an incubation policy for new languages. You start by being experimental, then become incubator and then graduate to a canonical language.

Jaana Dogan ヤナ ドガン @rakyll

Being able to explain why you are introducing a new language and how you are going to do cost analysis is VERY CRITICAL at the proposal stage. You can't get around by underestimating this step.

Jaana Dogan ヤナ ドガン @rakyll

Our SRE team has a lot of requirements from our languages. They enjoy identical contact surfaces with other languages, functional parity in terms of tools. But most importantly, SREs want to be able to understand and change the code base they support.

Jaana Dogan ヤナ ドガン @rakyll

Focus on the operability aspects of the language runtime, and making the monitoring and debugging surface and tooling very similar to other languages. Extra credits if you can improve incident response with your new language.

Jaana Dogan ヤナ ドガン @rakyll

It's a must to meet the operating system and architecture requirements from the runtimes and Google hardware-specific stuff's. Follow Borg's production-ready language requirements. You need all the essential debugging z-pages: /varz, /statz, /heapz, /profilez, ...

Jaana Dogan ヤナ ドガン @rakyll

Readability is a must. You need a style guideline and a proper readability process. You need to figure out the early readability approvers. Then, where to put things in the monorepo? How to handle third-party packages, modules, etc? How do you vendor?

Jaana Dogan ヤナ ドガン @rakyll

Then, it's an endless list of integrations with the developer tools we build in house. Build system support, developer tooling support, indexer support, testing and CI support, ... This list is endless and there is no easy way around.

Jaana Dogan ヤナ ドガン @rakyll

Critical libraries! At Google, everything is in-house built and you need to provide client libraries for all the critical services. You also need a proto compiler. You can't push new services without gRPC support. If gRPC doesn't already have support for your language, good luck!

Jaana Dogan ヤナ ドガン @rakyll

Essential runtime metrics should be exported and should have similar parity with other languages. You have to also have a plan for runtime version requirements, update policy and security patches policy. For example, we start using Go in production as soon as there is an RC.

Jaana Dogan ヤナ ドガン @rakyll

Then we have other runtime policies and best practices. For example, graceful shutdown policies... A more granular example would be flushing logs on program exit. You have to document and provide convenience to these every day tasks.

Jaana Dogan ヤナ ドガン @rakyll

engEDU and internal training comes next. You have to represent the language support internally all across the tech stack. You need high quality reference code for critical services and internal training programs to teach the internal flavors. You will need internal case studies.

Jaana Dogan ヤナ ドガン @rakyll

Testimonials and success stories from other teams help the internal adoption! Especially large scale systems feel more confident once more examples of the new language exists in similar scales in production. It gives an idea about how mature the support and integrations are.

Jaana Dogan ヤナ ドガン @rakyll

Working on languages at Google is hard work but it is a good opportunity to learn the entire stack end-to-end. It allows you to inherit a lot of knowledge and work with a large number of production users closely.

Jaana Dogan ヤナ ドガン @rakyll

CS Degree

There is a major difference between saying "Not all software development jobs need a CS degree." and "No one should have CS degrees." I'm not sure people understand this obvious difference.

Jaana Dogan ヤナ ドガン @rakyll

Some people's arguments around developers without CS degrees are clustered around "the fact" they don't know maths or have enough analytical skills -- even though there is an overwhelming number of people pivoting from maths & other engineering fields to software development.

Jaana Dogan ヤナ ドガン @rakyll

I am not trying to say you can only learn maths or be analytical if you are coming from these fields. What I'm trying to say is that the reality is just so inconsistent with the counter arguments that it's hard to take them seriously.

Jaana Dogan ヤナ ドガン @rakyll

A lot of people are also missing the fact that a CS degree is giving you the 5-10% of what's needed to perform as a software developer unless you are specialized in some topics like robotics. Then you learn by reviews, mentorship and experience.

Jaana Dogan ヤナ ドガン @rakyll

Unpopular opinion: I see CS degrees complementary to our craft. It teaches a little bit of the foundations. It doesn't determine the boundaries of your knowledge or your technical depth. I benefited a lot from having one and would recommend it if you have time/money.

Jaana Dogan ヤナ ドガン @rakyll

Knowing what's in the CS curriculum and how inconsistent the quality of the education is also the reason why I'm criticizing people bullshitting about these programs. Understanding each individual's knowledge and skills is more valuable than checking boxes bc they have a degree.

Jaana Dogan ヤナ ドガン @rakyll

Conferences

Good API

CAP

Database Migrations

System Design Interviews

Design Docs, RFCs, Etc

Communication

Good Infrastructure

Bad Product Management

Burnout

I'm never taking 6 months without a real vacation again, cause that shit does a number to your mental and emotional health. 😭

Iheanyi Ekechukwu @kwuchu

Burnout threads often imply its working too much. Whenever I’ve felt burnt out it was a misalignment with how I was spending my energy, not just the amount. Working too much makes me tired, but burnout feels like suspended momentum without a worthwhile goal.

Layla Sells 🐚🦪 @LaylaSells_cshs

Wow 😳 *burnout == suspended momentum without a worthwhile goal* struck a chord. I spent some time reflecting and wanted to help those who might be experiencing burnout now. 🧵🧶 1/13

Layla Sells 🐚🦪 @LaylaSells_cshs

When we think something is “killing our career” or “toxic” or any of the other awful sounding things forced on us, we shrink a bit. We work hard, but the focus is just trying to get out. We spin on our stationary bikes, tired, sore and in the same spot. 2/13

Layla Sells 🐚🦪 @LaylaSells_cshs

If your goal from a spin class is getting across town. Wow, you’re going to feel like a failure. But if that class is just practice. If you collect your learnings and toned muscles and head out to do something new it’s totally different. 3/13

Layla Sells 🐚🦪 @LaylaSells_cshs

Burnout feels awful and makes it super hard to function. As you get more drained, it compounds. You have less energy. Brute forcing your actions becomes harder. You do less. Guilt and the fear of failure creep in. 4/13

Layla Sells 🐚🦪 @LaylaSells_cshs

Stress & anxiety leads to over-reliance on our primal brain when we need our prefrontal cortex most. Please be kind to yourself. The more you can build up your own psychological safety, the more access to your logical brain you’ll have back. 5/13

Layla Sells 🐚🦪 @LaylaSells_cshs

The longer down a path, the more it feels like wasted time. That’s scary. But really, you have no idea how the story ends. You don’t know what great things your future self will do; what things become possible only after going through this. 6/13

Layla Sells 🐚🦪 @LaylaSells_cshs

As far down the wrong path that you think you’ve gone, you can always turn back or take the next fork in the road. Staying the course down a regretted path only takes you further down that path. What would your future self a year (or 5) down the road be happy you did today? 7/13

Layla Sells 🐚🦪 @LaylaSells_cshs

You don't have to - stay if you're miserable - be miserable to leave (you can be happy & want something different) - leave to still change it all - have all the answers to make new decisions - jump from dread to ideal to feel better 8/13

Layla Sells 🐚🦪 @LaylaSells_cshs

If you don’t even know where to begin. Try a thought download (https://devyourlife.com/thought-download) or 30 days of gratitude (my exp: https://devyourlife.com/public-gratitudes). Experiment with how you can build your own personal momentum. 9/13

Layla Sells 🐚🦪 @LaylaSells_cshs

When I start feeling off, I do both. I get my thoughts out of my head and then I restart my gratitude practice. It doesn’t have to be public or in a fancy notebook. Yes gratitude helps you appreciate what you have, but it also retrains your brain to search for good things. 10/13

Layla Sells 🐚🦪 @LaylaSells_cshs

I consider myself a problem solver by trade. The problem with being a problem solver is that you’re always on the lookout for problems to solve. Taking the time to intentionally practice finding good things builds your positive pattern matching skills. 11/13

Layla Sells 🐚🦪 @LaylaSells_cshs

In part it’s about giving the good stuff it’s fair share of attention. Another benefit of tracking what you are grateful for is that it shows you what you value which is an important input into deciding what you want to do (more of). 12/13

Layla Sells 🐚🦪 @LaylaSells_cshs

Find your little wins. “Go as far as you can see; when you get there, you'll be able to see farther.” - JP Morgan 13/13

Layla Sells 🐚🦪 @LaylaSells_cshs