shlogg · Early preview
Cesar Aguirre @canro91

Software engineer, lifelong learner, language enthusiast & avid reader — Get my free 7-day email course to refactor your coding career: bit.ly/csarag-lessons

Mastering Soft Skills For Career Growth As A Software Engineer

Being a top coder won't get you far in corporate ladder. Leadership roles require strong soft skills, not just coding expertise. Be a movie director, not the best actor. Focus on team management, meetings & collaboration.

Say I Love You In Japanese: A Guide For Language Lovers

Language of love? Try French! But if you must say 'I love you' in Japanese, it's actually a simple phrase: 'Aishiteru'. Don't @ me.

Unit Testing Private Methods Is Bad Because It Breaks Encapsulation.

Private methods are meant to be private. Don't test them directly. Test their observable behavior through public methods instead. This way, you're testing the class's external interface, not its internal implementation.

Software Engineer's Journey: From Coding To People Skills

Started blogging to become a better coder. Chose dev.to for its welcoming platform & no trolls. Write in Notable, publish when ready. Favorite post: "I Applied at a FAANG and Failed

Read More Code: The Secret Technique To Becoming A Better Developer

Read more code actively! Download source code, compile & run it, look at unit tests & debug features. Understand how authors implemented a feature & recreate a bare-bones version without looking at the original code.

Retro'ing And Debugging 2024: Lessons Learned From Burnout And Layoff

Reflecting on 2024: change, freelancing, online presence growth, career reflections, AI predictions & writing momentum. Lessons learned & new beginnings for 2025.

4 Steps To Find A Mentor Without Asking: Not-Mentorship

Find a "not-mentor" by asking genuine questions, showing interest in them & helping them too. This approach can lead to an informal mentorship without commitment from either side.

14 Lessons For Software Engineers Navigating Corporate World

14 lessons learned as a software engineer: detach meaning from work, build multiple income sources, always be ready to leave a job & more. Your career is your responsibility, not your employer's. Start refactoring now!

.NET 9 Introduces CountBy() And Index() Methods

Two new LINQ methods: CountBy() groups elements by key & counts occurrences, Index() projects elements alongside their position in the collection.

LINQ Set Operations: Intersect, Union, Except Explained

Learn 3 essential LINQ methods: Intersect() finds common elements, Union() combines without duplicates, and Except() finds unique elements. Master these set operations for more expressive code.

LINQ DistinctBy Method Explained In .NET 6

LINQ DistinctBy method explained: returns unique objects based on one property, useful for complex object collections. Source code breakdown shows how it uses a set to keep track of unique keys.

LINQ Mistakes: Count Vs Any, Where, And Null Checking

3 common LINQ mistakes: Use Any over Count, use condition directly with Any, & check for nulls after FirstOrDefault. Fix these to write efficient & safe code!

Software Engineering Lessons From My First Job

My first coding job was far from Silicon Valley glamour, teaching me valuable lessons about life, coding & money: don't judge others by their code, collaboration is key, live on half your salary & have an exit plan to avoid burnout.

C# Borrowing Functional Features: Discriminated Unions Proposal

C# is borrowing features from functional languages like F#, but still lacks Discriminated Unions, a key feature that allows for exhaustive pattern matching and type safety. A proposal for union types in C# aims to address this gap.

Reducing Noise In Unit Tests With Object Mothers

Reduce test noise with Object Mothers & builder methods: simplify Arrange parts & setup scenarios, making your tests more readable & maintainable.

Writing Better Assertions In Unit Tests

5 tips to write better assertions: Follow AAA pattern, separate each part, don't put logic in assertions, have single Act & Assert, use right assertion methods.

Replacing ASP.NET Core BackgroundServices With Lite Hangfire

Replaced ASP.NET Core BackgroundServices with lite Hangfire, using in-memory storage & single-threaded configuration for recurring tasks & retries.

Software Engineering Best Practices For Pure Business Logic

Don't mix I/O with business logic, keep it at arm's length for cleaner code & easier testing, as per Scott Wlaschin's talk "Moving IO to the edges of your app" at NDC London 2024.

When To Use Value Objects Vs Primitive Values In Software Engineering

Not every primitive value deserves a Value Object. Use them when enforcing domain rules or performing business operations, otherwise stick with plain values.