š Hey there! Iām Ilija. on Ilija Eftimov šØāš
Documenting my experiences and learnings, with the goal of helping other software engineers on their journey
GoTesting / QARuby / RailsEngineering management / careersWeb developmentEngineering blogs
- Posts
- 96 from 5 Jun 2014 to 29 Mar 2023
- Posting
- quiet since 2023
- Kind
- personal blog
- Feed
- https://ieftimov.com/index.xml
2023 2
2022 5
- How to Make Reviewers Love Your Big Pull Requests
- Problem Solving Framework & Principles for Software Engineers
- Ditch old tools and habits for the golden tools of your new company
- Identify & Escalate Risks: A Practical Framework for Software Engineers
- How to Make the Step up From Intermediate to Senior Engineer
2021 4
2020 8
- Testing in Go: Stop Leaking Files
- Four Steps to Daemonize Your Go Programs
- Understanding bytes in Go by building a TCP protocol
- Testing in Go: WebSockets
- Testing in Go: HTTP Servers
- Testing in Go: Clean Tests Using t.Cleanup
- Testing in Go: Golden Files
- Make resilient Go net/http servers using timeouts, deadlines and context cancellation
2019 19
- Testing in Go: Test Doubles by Example
- Testing in Go: Dependency Injection
- Simple Golang database seeding abstraction for Gorm
- Testing in Go: Fixtures
- Testing in Go: Subtests
- Testing in Go: Table-Driven Tests
- Testing in Go: go test
- Testing in Go: Naming Conventions
- Testing in Go: Writing Practical Failure Messages
- Testing in Go: Failing Tests
- Testing in Go: First Principles
- Deep Dive in the Upcoming Go Error Inspection Changes
- My First dotGo Conference
- Tell your team you are running late using Google Home, Google Cloud Functions, Golang and Twilio
- Barebones model of Spotify's 'Recently Played' screen using a Least Recently Used (LRU) cache in Golang
- When and Why to use a Least Frequently Used (LFU) cache with an implementation in Golang
- Golang Datastructures: Trees
- OTP in Elixir: Learn GenServer by Building Your Own URL Shortener
- Understanding the basics of Elixir's concurrency model
2018 6
2017 2
2016 17
- What happens when you DELETE a resource?
- Sprinkle some HATEOAS on your Rails APIs
- The practicality of designing and describing your APIs
- Learn your tools: Navigating your Git History
- How Rails handles status codes
- A bit about decorators and presenters
- Git history is underrated
- Write your first Rubygems plugin
- You Can't Rescue Them All
- Refactoring in Ruby: Primitive Obsession
- PostgreSQL Indexes: B-Tree
- PostgreSQL Indexes: First Principles
- Building a Weather Widget using RxJS
- Understanding Reactive Programming with RxRuby
- Refactoring in Ruby: The right place for a Builder?
- Running a Rails Application on Deis
- Refactoring in Ruby: Smelly Parameters Lists
2015 32
- Refactoring in Ruby: TDD your way through Extract Class
- Rails, Secure Cookies, HSTS and friends
- Why and how to test Rake tasks in your Rails application
- Writing command line apps with Elixir
- Getting Started with Minitest
- Testing Ruby Mixins with Minitest in isolation
- Filter request params from Phoenix logs
- How to set tests as pending in your ExUnit suite
- Write and publish your first Elixir library
- Variable hoisting in Ruby
- TDD Patterns: Humble Object
- Test Doubles: in theory, in Minitest and in RSpec
- Exception handling and testing it with Minitest
- Testing Ruby's floats precision
- Migrating a test suite from RSpec to Minitest
- How to write Rails middleware
- Rack: Writing middleware
- Rack: First Principles
- In and out of PostgreSQL using COPY
- Implementing "the lovely" Singleton Pattern
- POV: Startup Weekend Skopje
- How to: YourGem.configure
- RailsConf 2015 talks that you should watch
- How to write RSpec formatters from scratch
- Pattern to pattern: Template Method & Strategy
- Exploring new methods in Ruby 2.2.0
- Using multiple sources in a Gemfile
- Template Method Pattern in Ruby
- AngularJS Services Part 4: Value and Constant
- AngularJS Services Part 3: Service
- AngularJS Services Part 2: Factory
- AngularJS Services Part 1: Provider