41554 blogs · [ { "id": "01a08753-6163-719d-ad56-c03ae24ebb60", "title": "The Confusing Case of Git Signatures on GitHub", "url": "https://blog.scaledcode.com/blog/github-and-git-signatures/", "published_at": "2025-03-07T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae334481d", "title": "When NTP Interactions Go Wrong", "url": "https://blog.scaledcode.com/blog/ntp-gone-wrong/", "published_at": "2024-08-24T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae4147edb", "title": "Microsoft Gets A Firm Reprimand From the Cyber Safety Review Board", "url": "https://blog.scaledcode.com/blog/2023-exchange-online-security-review/", "published_at": "2024-04-15T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae4edfb07", "title": "Modern Methods for Cross Site Request Forgery (CSRF) Protection", "url": "https://blog.scaledcode.com/blog/csrf-protection/", "published_at": "2024-02-16T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae4f67fec", "title": "The Next.js Conf Picture That Blew People's Minds", "url": "https://blog.scaledcode.com/blog/nextjs-conf-image-excitement/", "published_at": "2023-10-28T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae5602ff8", "title": "Building a FIPS-140 Compliant HTTPD Server", "url": "https://blog.scaledcode.com/blog/building-fips-compliant-apache-httpd/", "published_at": "2023-10-21T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae564fd81", "title": "McKinsey Has Solved Developer Productivity Measurement", "url": "https://blog.scaledcode.com/blog/mckinsey-solved-developer-productivity/", "published_at": "2023-08-23T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae5abdbb4", "title": "Mechanical Sympathy in Software Development", "url": "https://blog.scaledcode.com/blog/mechanical-sympathy-in-software-dev/", "published_at": "2023-05-02T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae5b59da3", "title": "When Proof of Concepts Become Production Code", "url": "https://blog.scaledcode.com/blog/poc-to-production/", "published_at": "2023-04-17T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae5b78eb4", "title": "The Transition to a Cloud-Native Developer", "url": "https://blog.scaledcode.com/blog/transition-to-cloud-native-dev/", "published_at": "2023-03-16T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae6aee3fe", "title": "ArchUnit: Testing the Design of Your Library", "url": "https://blog.scaledcode.com/blog/archunit-test-your-architecture/", "published_at": "2023-01-29T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae6e9d9a0", "title": "Coding is Not Enough: The Importance of Investing in Domain Knowledge", "url": "https://blog.scaledcode.com/blog/coding-isnt-enough/", "published_at": "2023-01-17T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae7e6d8ae", "title": "The Different Types of Software Architects", "url": "https://blog.scaledcode.com/blog/different-type-of-architects/", "published_at": "2023-01-12T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae81facb7", "title": "Comparing Different Ways to Build Proxies In Java", "url": "https://blog.scaledcode.com/blog/comparing-java-proxies/", "published_at": "2022-12-13T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae858d4f8", "title": "DynamoDB And Incomplete Result Sets", "url": "https://blog.scaledcode.com/blog/dynamodb-incomplete/", "published_at": "2022-11-10T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae8758744", "title": "Steps to Fast Track Your Growth As a Software Engineer", "url": "https://blog.scaledcode.com/blog/fast-track-growth/", "published_at": "2022-10-25T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03ae95faf91", "title": "Programmer’s Writer Block: Make It Work, Make It Right, Make It Fast", "url": "https://blog.scaledcode.com/blog/programmer-writer-block/", "published_at": "2022-09-25T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03aea4226ad", "title": "Understanding The Dates Through the Julian and Gregorian Calendars", "url": "https://blog.scaledcode.com/blog/julian-vs-gregorian-calendar/", "published_at": "2022-09-12T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03aeb1add9c", "title": "The Story Of The System, Discovering the “Why” Behind The System", "url": "https://blog.scaledcode.com/blog/the-why-of-the-system/", "published_at": "2022-08-30T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03aebe7f6df", "title": "Java Virtual Threads, Millions of Threads Within Grasp", "url": "https://blog.scaledcode.com/blog/java-virtual-threads-intro/", "published_at": "2022-08-23T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03aecb2cd29", "title": "Mitigating SQL Injection in The Non-Standard Ways", "url": "https://blog.scaledcode.com/blog/mitigate-sql-injection-non-standard/", "published_at": "2022-08-10T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03aed43de4f", "title": "Analyzing New Unique Identifier Formats (UUIDv6, UUIDv7, and UUIDv8)", "url": "https://blog.scaledcode.com/blog/analyzing-new-unique-id/", "published_at": "2022-08-03T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03aedd8e633", "title": "Performance Differences of Java Streams", "url": "https://blog.scaledcode.com/blog/java-streams-performance/", "published_at": "2022-07-18T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03aeed5dd9a", "title": "Applying the Composite Design Pattern", "url": "https://blog.scaledcode.com/blog/applying-composite-design-pattern/", "published_at": "2022-07-11T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03aef672fb1", "title": "Modern Software Engineering by Dave Farley Book Review", "url": "https://blog.scaledcode.com/blog/modern-software-engineering-book-review/", "published_at": "2022-06-27T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03aef6d388b", "title": "An Argument For a Four-Year College Computer Science Degree", "url": "https://blog.scaledcode.com/blog/benefit-of-cs-degress/", "published_at": "2022-05-16T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03af042cd54", "title": "Applying Wayfinding to Your Code Structure", "url": "https://blog.scaledcode.com/blog/wayfinding-in-code/", "published_at": "2022-05-02T00:00:00+00:00" }, { "id": "01a08753-6163-719d-ad56-c03af099f47d", "title": "The Opportunity of Designing Within Technical Constraints", "url": "https://blog.scaledcode.com/blog/design-within-technical-constraints/", "published_at": "2022-04-25T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33dc173df3", "title": "Ideas on Performing High Value Code Reviews", "url": "https://blog.scaledcode.com/blog/high-value-code-reviews/", "published_at": "2022-04-18T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33dcd2cefb", "title": "Make the Easy Thing the Right Thing", "url": "https://blog.scaledcode.com/blog/make-easy-right/", "published_at": "2022-04-11T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33dd312c35", "title": "The Case For Trying Completely Different Technologies", "url": "https://blog.scaledcode.com/blog/case-for-trying-new-things/", "published_at": "2022-03-28T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33dd5ce483", "title": "Pitfall When Using Java Okta SDK JWT Verifier", "url": "https://blog.scaledcode.com/blog/java-okta-sdk-pitfall/", "published_at": "2022-03-21T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33de0e029a", "title": "Imposter Syndrome - The Good Parts", "url": "https://blog.scaledcode.com/blog/imposter-syndrome-good-parts/", "published_at": "2022-03-14T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33de2e0850", "title": "Diving Into Kafka Partitioning By Building a Custom Partition Assignor", "url": "https://blog.scaledcode.com/blog/building-custom-kafka-partitioner/", "published_at": "2022-03-07T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33de5cb04d", "title": "Microservices Patterns by Chris Richardson Book Review", "url": "https://blog.scaledcode.com/blog/microservice-patterns-book-review/", "published_at": "2022-02-28T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33df5b775d", "title": "Effective Java! Consider Serialization Proxies Instead of Serialized Instances", "url": "https://blog.scaledcode.com/blog/effective-java/consider_serialization.proxies/", "published_at": "2022-02-21T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e0443352", "title": "Supporting Cross Node Interactive Queries In Kafka Streams", "url": "https://blog.scaledcode.com/blog/cross-node-kafka-streams/", "published_at": "2022-02-21T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e0a4f5cd", "title": "Effective Java! For Instance Control, Prefer Enum types to readResolve", "url": "https://blog.scaledcode.com/blog/effective-java/prefer_enum_type/", "published_at": "2022-02-16T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e0f76f2f", "title": "How the Kafka Avro Serializer Works", "url": "https://blog.scaledcode.com/blog/kafka_avro_serializer_how/", "published_at": "2022-02-14T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e1ea68f8", "title": "Understanding Avro Compatibility", "url": "https://blog.scaledcode.com/blog/understanding-avro-compatibility/", "published_at": "2022-02-07T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e21880f5", "title": "Effective Java! Write readObject Methods Defensively", "url": "https://blog.scaledcode.com/blog/effective-java/write_readobject_defensively/", "published_at": "2022-02-01T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e23ee39b", "title": "Cracking a Password Via a Side Channel", "url": "https://blog.scaledcode.com/blog/cracking-a-password-via-a-side-channel/", "published_at": "2022-01-31T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e339ff33", "title": "Building a Wordle Solver", "url": "https://blog.scaledcode.com/blog/building-a-wordle-solver/", "published_at": "2022-01-23T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e39e4a70", "title": "Effective Java! Consider Using a Custom Serialized Form", "url": "https://blog.scaledcode.com/blog/effective-java/consider_custom_serialized_form/", "published_at": "2022-01-21T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e4972851", "title": "Effective Java! Implement Serializable With Great Caution", "url": "https://blog.scaledcode.com/blog/effective-java/implement_serializable_with_care/", "published_at": "2022-01-18T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e592e588", "title": "Effective Java! Prefer Alternatives To Java Serialization", "url": "https://blog.scaledcode.com/blog/effective-java/avoid_java_serialization/", "published_at": "2022-01-04T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e5c90c87", "title": "Effective Java! Don't Depend on the Thread Scheduler", "url": "https://blog.scaledcode.com/blog/effective-java/dont_trust_thread_scheduler/", "published_at": "2021-12-16T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e6ba0329", "title": "Effective Java! Use Lazy Initialization Judiciously", "url": "https://blog.scaledcode.com/blog/effective-java/lazy_initialization/", "published_at": "2021-12-08T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e72ebed8", "title": "Effective Java! Document Thread Safety", "url": "https://blog.scaledcode.com/blog/effective-java/document_thread_safety/", "published_at": "2021-12-01T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e78e23e9", "title": "Effective Java! Prefer Concurrency Utilities Over wait and notify", "url": "https://blog.scaledcode.com/blog/effective-java/prefer_concurrency_utlities/", "published_at": "2021-11-19T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e7b05681", "title": "Effective Java! Prefer Executors, Tasks, and Streams to Threads", "url": "https://blog.scaledcode.com/blog/effective-java/prefer_built_in_to_threads/", "published_at": "2021-11-12T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e7b0edf7", "title": "Effective Java! Avoid Excessive Synchronization", "url": "https://blog.scaledcode.com/blog/effective-java/avoid_excessive_synchronization/", "published_at": "2021-11-07T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e7c02e91", "title": "Effective Java! Synchronize Access to Shared Mutable Data", "url": "https://blog.scaledcode.com/blog/effective-java/synchronize_access_to_mutable/", "published_at": "2021-11-02T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e83e5a52", "title": "Effective Java! Don't Ignore Exceptions", "url": "https://blog.scaledcode.com/blog/effective-java/dont_ignore_exceptions/", "published_at": "2021-10-26T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e900f7e6", "title": "Effective Java! Strive for Failure Atomicity", "url": "https://blog.scaledcode.com/blog/effective-java/failure_atomicity/", "published_at": "2021-10-10T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33e9d90f91", "title": "Effective Java! Include Failure-Capture Information in Detail Messages", "url": "https://blog.scaledcode.com/blog/effective-java/include_failure_capture_information/", "published_at": "2021-09-28T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33ea4f48fe", "title": "Effective Java! Document All Exceptions Thrown By Each Method", "url": "https://blog.scaledcode.com/blog/effective-java/document_all_exceptions/", "published_at": "2021-09-09T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33ea862c53", "title": "Effective Java! Throw Exceptions Appropriate To The Abstraction", "url": "https://blog.scaledcode.com/blog/effective-java/throw_appropriate_exceptions/", "published_at": "2021-09-08T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33eb4a397b", "title": "Effective Java! Favor The Use of Standard Exceptions", "url": "https://blog.scaledcode.com/blog/effective-java/favor_standard_exceptions/", "published_at": "2021-08-23T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33eb9f5402", "title": "The Wild World of Unique Identifiers (UUID, ULID, etc)", "url": "https://blog.scaledcode.com/blog/wild-world-unique-id/", "published_at": "2021-08-18T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33ec836d1e", "title": "Effective Java! Avoid Unnecessary Use of Checked Exceptions", "url": "https://blog.scaledcode.com/blog/effective-java/avoid_unnecessary_checked_exception/", "published_at": "2021-08-16T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33ed0de70a", "title": "Effective Java! Use Checked Exceptions for Recoverable Conditions", "url": "https://blog.scaledcode.com/blog/effective-java/use_checked_for_recoverable/", "published_at": "2021-08-10T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33edd2f19a", "title": "Effective Java! Use Exceptions for Only Exceptional Circumstances", "url": "https://blog.scaledcode.com/blog/effective-java/use_exceptions_for_exceptions/", "published_at": "2021-07-27T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33eeafb275", "title": "Effective Java! Adhere to Generally Accepted Naming Conventions", "url": "https://blog.scaledcode.com/blog/effective-java/adhere_to_conventions/", "published_at": "2021-07-18T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33efab716a", "title": "Effective Java! Optimize Judiciously", "url": "https://blog.scaledcode.com/blog/effective-java/optimize_judiciously/", "published_at": "2021-07-01T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f0496713", "title": "Effective Java! Use Native Methods Judiciously", "url": "https://blog.scaledcode.com/blog/effective-java/use_native_judiciously/", "published_at": "2021-06-24T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f11a9857", "title": "Effective Java! Prefer Interfaces To Reflection", "url": "https://blog.scaledcode.com/blog/effective-java/prefer_interface_to_reflection/", "published_at": "2021-06-16T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f207cb84", "title": "Effective Java! Refer to Objects By Their Interfaces", "url": "https://blog.scaledcode.com/blog/effective-java/refer_by_interface/", "published_at": "2021-06-02T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f274c4ca", "title": "Effective Java! Beware the Performance of String Concatenation", "url": "https://blog.scaledcode.com/blog/effective-java/string_concat_perf/", "published_at": "2021-05-18T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f35fc81a", "title": "Building an S3 Lowercaser", "url": "https://blog.scaledcode.com/blog/building-s3-lowercaser/", "published_at": "2021-05-18T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f454eb64", "title": "Effective Java! Avoid Strings When Other Types Are More Appropriate", "url": "https://blog.scaledcode.com/blog/effective-java/avoid_string_when_other_types_better/", "published_at": "2021-04-26T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f4e3ab8e", "title": "How I Built an Overengineered Serverless Uptime Checker", "url": "https://blog.scaledcode.com/blog/over-engineered-uptime-checker/", "published_at": "2021-04-24T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f51e8281", "title": "Effective Java! Prefer Primitive Types to Boxed Types", "url": "https://blog.scaledcode.com/blog/effective-java/prefer_primitives_to_boxed/", "published_at": "2021-04-15T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f52a4129", "title": "Effective Java! Avoid Float and Double If Exact Answers Are Required", "url": "https://blog.scaledcode.com/blog/effective-java/avoid_float_if_need_exact/", "published_at": "2021-03-22T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f5d6a423", "title": "Effective Java! Know and Use the Libraries", "url": "https://blog.scaledcode.com/blog/effective-java/know_and_use_libraries/", "published_at": "2021-03-10T00:00:00+00:00" }, { "id": "01a08753-6164-721a-9338-ea33f668d626", "title": "Effective Java! Prefer for-each loops to traditional for loops", "url": "https://blog.scaledcode.com/blog/effective-java/prefer_for_each/", "published_at": "2021-02-24T00:00:00+00:00" }, { "id": "01a08753-6165-7054-827a-61df12e3e911", "title": "Effective Java! Minimize The Scope of Local Variables", "url": "https://blog.scaledcode.com/blog/effective-java/minimize_scope_of_local/", "published_at": "2021-02-10T00:00:00+00:00" }, { "id": "01a08753-6165-7054-827a-61df137fb1a7", "title": "Effective Java! Write Doc Comments For All Exposed APIs", "url": "https://blog.scaledcode.com/blog/effective-java/write_docs_for_all_exposed/", "published_at": "2021-01-18T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6ddfec2f7", "title": "Effective Java! Return Optionals Judiciously", "url": "https://blog.scaledcode.com/blog/effective-java/return_optionals_judiciously/", "published_at": "2020-12-23T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6de3f3334", "title": "Effective Java! Return Empty Collections or Arrays, Not Nulls", "url": "https://blog.scaledcode.com/blog/effective-java/return_empty_not_null/", "published_at": "2020-12-12T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6de9ebde6", "title": "Effective Java! Use Varargs Judiciously", "url": "https://blog.scaledcode.com/blog/effective-java/judicious_varargs/", "published_at": "2020-12-03T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6df0415b3", "title": "Effective Java! Use Overloading Judiciously", "url": "https://blog.scaledcode.com/blog/effective-java/overload_judiciously/", "published_at": "2020-11-23T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6df2ebbdd", "title": "Effective Java! Design Method Signatures Carefully", "url": "https://blog.scaledcode.com/blog/effective-java/design_signature_carefully/", "published_at": "2020-11-16T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6dfff2c86", "title": "Effective Java! Make Defensive Copies When Necessary", "url": "https://blog.scaledcode.com/blog/effective-java/make_defensive_copies/", "published_at": "2020-11-10T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e09ffe1a", "title": "Effective Java! Use Caution When Making Streams Parallel", "url": "https://blog.scaledcode.com/blog/effective-java/caution_parallel_stream/", "published_at": "2020-10-26T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e119f757", "title": "Effective Java! Prefer Collection To Stream as a Return Type", "url": "https://blog.scaledcode.com/blog/effective-java/prefer_collect_to_stream_for_return_type/", "published_at": "2020-10-19T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e19a53d3", "title": "Effective Java! Prefer Side-Effect-Free Functions in Streams", "url": "https://blog.scaledcode.com/blog/effective-java/side_effect_free_streams/", "published_at": "2020-10-12T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e20df25c", "title": "Effective Java! Use Stream Judiciously", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_stream_judiciously/", "published_at": "2020-10-05T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e29d081f", "title": "Effective Java! Favor the Use of Standard Functional Interfaces", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_use_standard_interfaces/", "published_at": "2020-09-29T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e32f6165", "title": "Effective Java! Prefer Method References to Lambdas", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_prefer_method_references/", "published_at": "2020-09-21T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e34d7151", "title": "Effective Java! Prefer Lambdas to Anonymous Classes", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_prefer_lambdas/", "published_at": "2020-09-14T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e3e392b7", "title": "Effective Java! Use Marker Interfaces to Define Types", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_use_marker_interface/", "published_at": "2020-09-08T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e4b01625", "title": "Effective Java! Check Parameters for Validity", "url": "https://blog.scaledcode.com/blog/effective-java/check_params_for_validity/", "published_at": "2020-09-06T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e5aa56f5", "title": "Effective Java! Consistently Use the Override Annotation", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_use_override/", "published_at": "2020-08-31T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e5f09d94", "title": "Effective Java! Prefer Annotations to Naming Patterns", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_prefer_annotations/", "published_at": "2020-08-25T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e63803da", "title": "Effective Java! Emulate Extensible Enums With Interfaces", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_emulate_enum_with_interface/", "published_at": "2020-08-17T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e67a6909", "title": "Effective Java! Use EnumMap instead of Ordinal Indexing", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_use_enummap/", "published_at": "2020-08-10T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e6815696", "title": "Effective Java! Use EnumSet Instead of Bit Fields", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_use_enumset_not_bit_fields/", "published_at": "2020-08-03T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e6d129ce", "title": "Effective Java! Use Instance Fields Instead of Ordinals", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_use_instance_instance_fields_not_ordinals/", "published_at": "2020-07-27T00:00:00+00:00" }, { "id": "01a08753-6166-73d0-9222-6fc6e76803a1", "title": "Effective Java! Use Enums Instead of int Constants", "url": "https://blog.scaledcode.com/blog/effective-java/effective_java_use_enum_instead_of_int/", "published_at": "2020-07-22T00:00:00+00:00" } ] posts Claim your blog
Back to blog.scaledcode.com
Blog · corpus.blog/blogs/blog.scaledcode.com/posts

blog.scaledcode.com

blog.scaledcode.com

2025

2024

2023

2022

2021

2020