TLDR Web Dev 2024-01-24

Serverfree architecture 💻, why ML is hard 🤔, managing up is an essential skill 📈

🧑‍💻
Articles & Tutorials

ServerFree Architecture (10 minute read)

A web application has server-free architecture when it doesn’t have any backend servers, containers, or virtual machines. This can be implemented using SQLite compiled to WebAssembly for database operations, running backend code in a Web Worker, and using a Service Worker to intercept requests and communicate with the Web Worker. A server-free architecture offloads work from the backend and allows for offline access to web applications.

From slow to SIMD: A Go optimization story (10 minute read)

A function within Sourcegraph's Code AI tool, Cody, was recently optimized to significantly increase its throughput and reduce memory usage. The function calculates the dot product of two vectors. The optimization journey involved various techniques like loop unrolling, bounds-checking elimination, quantization, and SIMD (Single Instruction Multiple Data) instructions.

4 Strategies for Migrating Monolithic Apps to Microservices (6 minute read)

Best practices for migrating monolithic applications to microservices in containerized Kubernetes environments include understanding the monolith's dependencies, taking an incremental approach, loosely coupling microservices, and implementing end-to-end observability. DevOps teams are commonly under pressure to make this migration to optimize the software delivery life cycle, reduce fragility, and create shorter release cycles.
🧠
Opinions & Advice

The skill that gets you fired or promoted: managing up (9 minute read)

Managing up is the skill of influencing people who are more senior to you, such as your direct manager. Failing to deliver on promises and deadlines can lead to a lack of trust from your manager and potentially getting fired. To manage up effectively, it’s important to set realistic expectations, prioritize important promises, and communicate openly with peers.

Hiring ONLY seniors is the worst policy in the software industry (6 minute read)

Companies should hire more junior engineers as they bring fresh energy, motivation, and openness to new technologies to a team. Juniors are necessary for long-term excellence in software engineering. They should be paid fairly based on their skills and not just years of experience, or else companies may lose their best engineers over time.
🚀
Launches & Tools

TypeSpec (GitHub Repo)

TypeSpec is a language designed for describing cloud service APIs and generating various assets, such as API description languages, client and service code, and documentation. It offers extensible core language features that can describe API structures commonly found in REST, OpenAPI, GraphQL, gRPC, and other protocols. TypeSpec enables the creation of reusable patterns for API design and allows for the detection of known anti-patterns, helping API designers adhere to best practices.

Atlas (Website)

Atlas is a browser-based tool that allows users to work with geospatial data and share their results. It enables users to build interactive maps, analyze data in the context of location, visualize trends, facilitate teamwork and information sharing among GIS professionals, and present plans and proposals in an easily understandable format.
🎁
Miscellaneous

Why is machine learning 'hard'? (9 minute read)

Difficulty in machine learning (ML) is not primarily due to mathematics, but rather the need to build an intuition for selecting the right tools and debugging. Debugging in ML is exponentially harder than in standard software engineering due to multiple dimensions of potential issues involving algorithms, implementation, data, and model correctness. The long debugging cycles in ML, which can be days or even weeks, make parallel experimentation necessary.

Bottleneck of Scaleups #06: Onboarding (9 minute read)

A well-structured onboarding process not only grants access to new hires, but also integrates new employees socially and culturally. A bottleneck in the onboarding process can be identified by delays in accessing tools and systems, the inability of new developers to make production deployments quickly, newcomers feeling orphaned, excessive focus on individual work, resistance to change, slow completion of seemingly simple tasks, high turnover of newcomers, and documentation that can't answer new hires' questions. An optimized onboarding process maximizes the productivity of new employees.

Unbloating the buffers (5 minute read)

Bufferbloat in computer networks can cause delays and glitches in internet traffic, particularly during activities like video calls. Bufferbloat occurs when network buffers fill up with data packets, causing increased latency. Active Queue Management (AQM) techniques like CAKE can be used to dynamically adjust and manage network queues, resulting in more stable and responsive network performance.
⚡️
Quick Links

The Building Blocks of Offline Support (4 minute read)

Full offline support can be supported through architectural decisions, including multi-storage loading for speed and local caching, grouped updates through an operations queue to optimize real-time interactions, and a UI status system to inform users about offline functionality.

The Tremendous Yet Troubled State of Gaming in 2024 (56 minute read)

The gaming market had great public releases in 2023, but it also had lots of layoffs and scrapped projects behind the scenes.

Mastering Cryptography Fundamentals with Node’s crypto module (17 minute read)

An introduction to core concepts in cryptography using code examples with Node’s crypto module.
Get our free, 5-minute newsletter read by 350,000 frontend, backend, and full stack developers
Join 300,000 readers for