corpus.blog
Most cited
Talked about
Blogs
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
The Confusing Case of Git Signatures on GitHub
original ↗
7 Mar 2025
2024
When NTP Interactions Go Wrong
original ↗
24 Aug 2024
Microsoft Gets A Firm Reprimand From the Cyber Safety Review Board
original ↗
15 Apr 2024
Modern Methods for Cross Site Request Forgery (CSRF) Protection
original ↗
16 Feb 2024
2023
The Next.js Conf Picture That Blew People's Minds
original ↗
28 Oct 2023
Building a FIPS-140 Compliant HTTPD Server
original ↗
21 Oct 2023
McKinsey Has Solved Developer Productivity Measurement
original ↗
23 Aug 2023
Mechanical Sympathy in Software Development
original ↗
2 May 2023
When Proof of Concepts Become Production Code
original ↗
17 Apr 2023
The Transition to a Cloud-Native Developer
original ↗
16 Mar 2023
ArchUnit: Testing the Design of Your Library
original ↗
29 Jan 2023
Coding is Not Enough: The Importance of Investing in Domain Knowledge
original ↗
17 Jan 2023
The Different Types of Software Architects
original ↗
12 Jan 2023
2022
Comparing Different Ways to Build Proxies In Java
original ↗
13 Dec 2022
DynamoDB And Incomplete Result Sets
original ↗
10 Nov 2022
Steps to Fast Track Your Growth As a Software Engineer
original ↗
25 Oct 2022
Programmer’s Writer Block: Make It Work, Make It Right, Make It Fast
original ↗
25 Sept 2022
Understanding The Dates Through the Julian and Gregorian Calendars
original ↗
12 Sept 2022
The Story Of The System, Discovering the “Why” Behind The System
original ↗
30 Aug 2022
Java Virtual Threads, Millions of Threads Within Grasp
original ↗
23 Aug 2022
Mitigating SQL Injection in The Non-Standard Ways
original ↗
10 Aug 2022
Analyzing New Unique Identifier Formats (UUIDv6, UUIDv7, and UUIDv8)
original ↗
3 Aug 2022
Performance Differences of Java Streams
original ↗
18 Jul 2022
Applying the Composite Design Pattern
original ↗
11 Jul 2022
Modern Software Engineering by Dave Farley Book Review
original ↗
27 Jun 2022
An Argument For a Four-Year College Computer Science Degree
original ↗
16 May 2022
Applying Wayfinding to Your Code Structure
original ↗
2 May 2022
The Opportunity of Designing Within Technical Constraints
original ↗
25 Apr 2022
Ideas on Performing High Value Code Reviews
original ↗
18 Apr 2022
Make the Easy Thing the Right Thing
original ↗
11 Apr 2022
The Case For Trying Completely Different Technologies
original ↗
28 Mar 2022
Pitfall When Using Java Okta SDK JWT Verifier
original ↗
21 Mar 2022
Imposter Syndrome - The Good Parts
original ↗
14 Mar 2022
Diving Into Kafka Partitioning By Building a Custom Partition Assignor
original ↗
7 Mar 2022
Microservices Patterns by Chris Richardson Book Review
original ↗
28 Feb 2022
Effective Java! Consider Serialization Proxies Instead of Serialized Instances
original ↗
21 Feb 2022
Supporting Cross Node Interactive Queries In Kafka Streams
original ↗
21 Feb 2022
Effective Java! For Instance Control, Prefer Enum types to readResolve
original ↗
16 Feb 2022
How the Kafka Avro Serializer Works
original ↗
14 Feb 2022
Understanding Avro Compatibility
original ↗
7 Feb 2022
Effective Java! Write readObject Methods Defensively
original ↗
1 Feb 2022
Cracking a Password Via a Side Channel
original ↗
31 Jan 2022
Building a Wordle Solver
original ↗
23 Jan 2022
Effective Java! Consider Using a Custom Serialized Form
original ↗
21 Jan 2022
Effective Java! Implement Serializable With Great Caution
original ↗
18 Jan 2022
Effective Java! Prefer Alternatives To Java Serialization
original ↗
4 Jan 2022
2021
Effective Java! Don't Depend on the Thread Scheduler
original ↗
16 Dec 2021
Effective Java! Use Lazy Initialization Judiciously
original ↗
8 Dec 2021
Effective Java! Document Thread Safety
original ↗
1 Dec 2021
Effective Java! Prefer Concurrency Utilities Over wait and notify
original ↗
19 Nov 2021
Effective Java! Prefer Executors, Tasks, and Streams to Threads
original ↗
12 Nov 2021
Effective Java! Avoid Excessive Synchronization
original ↗
7 Nov 2021
Effective Java! Synchronize Access to Shared Mutable Data
original ↗
2 Nov 2021
Effective Java! Don't Ignore Exceptions
original ↗
26 Oct 2021
Effective Java! Strive for Failure Atomicity
original ↗
10 Oct 2021
Effective Java! Include Failure-Capture Information in Detail Messages
original ↗
28 Sept 2021
Effective Java! Document All Exceptions Thrown By Each Method
original ↗
9 Sept 2021
Effective Java! Throw Exceptions Appropriate To The Abstraction
original ↗
8 Sept 2021
Effective Java! Favor The Use of Standard Exceptions
original ↗
23 Aug 2021
The Wild World of Unique Identifiers (UUID, ULID, etc)
original ↗
18 Aug 2021
Effective Java! Avoid Unnecessary Use of Checked Exceptions
original ↗
16 Aug 2021
Effective Java! Use Checked Exceptions for Recoverable Conditions
original ↗
10 Aug 2021
Effective Java! Use Exceptions for Only Exceptional Circumstances
original ↗
27 Jul 2021
Effective Java! Adhere to Generally Accepted Naming Conventions
original ↗
18 Jul 2021
Effective Java! Optimize Judiciously
original ↗
1 Jul 2021
Effective Java! Use Native Methods Judiciously
original ↗
24 Jun 2021
Effective Java! Prefer Interfaces To Reflection
original ↗
16 Jun 2021
Effective Java! Refer to Objects By Their Interfaces
original ↗
2 Jun 2021
Effective Java! Beware the Performance of String Concatenation
original ↗
18 May 2021
Building an S3 Lowercaser
original ↗
18 May 2021
Effective Java! Avoid Strings When Other Types Are More Appropriate
original ↗
26 Apr 2021
How I Built an Overengineered Serverless Uptime Checker
original ↗
24 Apr 2021
Effective Java! Prefer Primitive Types to Boxed Types
original ↗
15 Apr 2021
Effective Java! Avoid Float and Double If Exact Answers Are Required
original ↗
22 Mar 2021
Effective Java! Know and Use the Libraries
original ↗
10 Mar 2021
Effective Java! Prefer for-each loops to traditional for loops
original ↗
24 Feb 2021
Effective Java! Minimize The Scope of Local Variables
original ↗
10 Feb 2021
Effective Java! Write Doc Comments For All Exposed APIs
original ↗
18 Jan 2021
2020
Effective Java! Return Optionals Judiciously
original ↗
23 Dec 2020
Effective Java! Return Empty Collections or Arrays, Not Nulls
original ↗
12 Dec 2020
Effective Java! Use Varargs Judiciously
original ↗
3 Dec 2020
Effective Java! Use Overloading Judiciously
original ↗
23 Nov 2020
Effective Java! Design Method Signatures Carefully
original ↗
16 Nov 2020
Effective Java! Make Defensive Copies When Necessary
original ↗
10 Nov 2020
Effective Java! Use Caution When Making Streams Parallel
original ↗
26 Oct 2020
Effective Java! Prefer Collection To Stream as a Return Type
original ↗
19 Oct 2020
Effective Java! Prefer Side-Effect-Free Functions in Streams
original ↗
12 Oct 2020
Effective Java! Use Stream Judiciously
original ↗
5 Oct 2020
Effective Java! Favor the Use of Standard Functional Interfaces
original ↗
29 Sept 2020
Effective Java! Prefer Method References to Lambdas
original ↗
21 Sept 2020
Effective Java! Prefer Lambdas to Anonymous Classes
original ↗
14 Sept 2020
Effective Java! Use Marker Interfaces to Define Types
original ↗
8 Sept 2020
Effective Java! Check Parameters for Validity
original ↗
6 Sept 2020
Effective Java! Consistently Use the Override Annotation
original ↗
31 Aug 2020
Effective Java! Prefer Annotations to Naming Patterns
original ↗
25 Aug 2020
Effective Java! Emulate Extensible Enums With Interfaces
original ↗
17 Aug 2020
Effective Java! Use EnumMap instead of Ordinal Indexing
original ↗
10 Aug 2020
Effective Java! Use EnumSet Instead of Bit Fields
original ↗
3 Aug 2020
Effective Java! Use Instance Fields Instead of Ordinals
original ↗
27 Jul 2020
Effective Java! Use Enums Instead of int Constants
original ↗
22 Jul 2020
Next