Coding Challenges

Coding Challenges

软件开发

Westbury,Wiltshire 25,088 位关注者

Helping you become a better software engineer through coding challenges that build real applications.

关于我们

Helping you become a better software engineer through coding challenges that build real applications.

网站
https://codingchallenges.fyi
所属行业
软件开发
规模
2-10 人
总部
Westbury,Wiltshire
类型
私人持股
创立
2023

地点

Coding Challenges员工

动态

  • Coding Challenges转发了

    查看John Crickett的档案,图片

    Helping you become a better software engineer by building real-world applications.

    The best way to learn to build software, is to build real software. But often it’s hard to know what to build, so we end up spending time looking for ideas instead of building and learning. To help with that, I’ve been sharing a list of project ideas complete with steps to work through in my Coding Challenges newsletter. Tomorrow I'll be publishing the next issue, which looks back at the build your own uniq coding challenge: https://lnkd.in/eHCJ_DEt And shares the lessons to be learned from the solutions to it that people have shared publicly or privately with me.

  • Coding Challenges转发了

    查看Ronald Suwandi的档案,图片

    I build scalable systems that save millions and drive growth | 15+ years in Java, Go, Kafka | Open to Principal/Staff Engineer/EM roles | ex-ShopBack, ex-Indeed, ex-Confluent

    Another John Crickett's Coding Challenges tackled: building a Duplicate File Finder in Rust! ???? What seemed like a simple file comparison project quickly turned into a fascinating exploration of performance, resource constraints, and Rust's quirks. Here's what made this challenge so interesting: ?? Streaming Comparisons (Why No MD5?) Instead of traditional MD5 hashing, I implemented a chunk-by-chunk streaming comparison. This avoids loading entire files into memory and doubles as a more efficient solution for large datasets ?? Concurrency: Not Always a Silver Bullet Refactoring to use tokio for concurrent processing taught me a lot. But it turns out that parallelizing I/O-bound operations like chunk reads doesn’t always yield performance gains. Rust’s async + ownership model made this lesson particularly memorable (and tricky) ?? File Descriptor Limits Just when I thought I finished, I realized that opening all files simultaneously could easily hit system file descriptor limits (ulimit) on larger datasets. To address this preemptively, I refactored the tool to open files on demand and manage concurrent access using tokio::Semaphore. It added complexity but ensured the tool could handle directories of any size without breaking Benchmark results tell an interesting story: the tool performed impressively against fdupes, especially for large files with many duplicates (4.45s vs. 17s on a mixed dataset). For smaller files with few duplicates, fdupes wins hands down, but the streaming approach offers a great trade-off for scalability This project was another reminder that even "simple" problems can hide plenty of complexity. Every refactor, challenge, and surprise made it more rewarding. Rust continues to push me to think deeper and iterate better ?? Have you tackled similar challenges? I’d love to hear about your approach and learn from your experiences! ?? https://lnkd.in/gnU9GAd4 #rust

    GitHub - ronaldsuwandi/challenge_duplicate_file_finder

    GitHub - ronaldsuwandi/challenge_duplicate_file_finder

    github.com

  • Coding Challenges转发了

    查看John Crickett的档案,图片

    Helping you become a better software engineer by building real-world applications.

    What is systems programming? As programmers there are two types of programming we could be doing: ???Applications programming - we are building software that provides services directly to the user. This is your mobile app, your word processor or your web app. ???Systems programming - we are building software that provides services to other software. By that definition the backend developer is doing systems programming. Yet many would argue that backend development isn’t systems programming. Perhaps we could be more nuanced: ?????Applications programming builds applications that allow a user to do something useful. It is targeted at providing features to a user. ????System programming is building software to make application programming possible. It delivers features to the application programmer rather than to the user. This would make building the backend application programming and building things like Docker, Kafka, Redis, Postgres and Linux systems programming. Which is what I understand by the term and the type of programming I find particularly interesting. It’s the type of work that requires you to dig into and understand the operating system, network programming, writing parsers and building reliable server software. Which is why so many of the Coding Challenges I write focus on systems software and why I’m now running a cohort based intensive one week long systems programming course during which you’ll implement from scratch a clone of the original Redis server. This course touches on a wide variety of topics that are applicable to general programming, for example: ?? Parsing skills. These can be applied to a variety of problems including data munging, scraping, protocol implementation and more. ?? Network programming. This can be applied to making more robust, secure and scalable distributed systems. ?? Concurrency and Parallelism in software. Giving you the core skills to build scalable distributed systems. This course is entirely project focused. The goal of the course is not just to learn how to write a server, but also how to approach the problem of server software. Part of the course involves group discussion about problem decomposition, coding techniques, design tradeoffs, testing, and other related topics. The rest of the time is spent working on individual coding. Code examples are written in Go and Python. However, the project involves no third-party libraries, esoteric language-specific features, or language-dependent tooling. As such, you're free to implement the project in any programming language that you wish. Writing a server is a great way to learn a new programming language too. You can find out more / sign up on Maven here: https://lnkd.in/e4s6Ppyg P.S. You can get 20% off until Dec 2nd use the code: BLACKFRIDAY24

    • Image: Computer chips
Text: What is systems programming?
  • Coding Challenges转发了

    查看John Crickett的档案,图片

    Helping you become a better software engineer by building real-world applications.

    Last chance for 25% off! Maven’s Fast 25 sales ends today! Would you like to build a network server from scratch. Learning about network programming, concurrency, testing, and systems software development? If so check out my course: Build A Redis Server Clone: Master Systems Programming Through Practice. It is designed to be intense! It’s 30 hours over 5 days with the goal of having you build a clone of the original Redis server by the end of it. If you’re ready to put in the work, or you’d like to learn find out more, details are on Maven here: https://lnkd.in/e4s6Ppyg

    • 该图片无替代文字
  • Coding Challenges转发了

    查看John Crickett的档案,图片

    Helping you become a better software engineer by building real-world applications.

    The best way to level up your coding skills is to build fully functioning applications. That’s why I post weekly Coding Challenges that help software developers level up by practicing building real-world applications. Yesterday’s challenge was to build your own uptime monitor. This coding challenge is one that you can do very simply, or you can extend into a full blown SaaS. The choice is yours. If you are interested, you can find the challenge here: https://lnkd.in/eQR3_y-R If you would like to get future challenges sent directly to you, subscribe to the Coding Challenges newsletter here: https://lnkd.in/e4S487pP

    • 该图片无替代文字
  • Coding Challenges转发了

    查看John Crickett的档案,图片

    Helping you become a better software engineer by building real-world applications.

    The best way to level up your coding skills is to build fully functioning applications. That’s why I post weekly Coding Challenges that helps software developers level up by practicing building real-world applications. Today's challenge is to build your own uptime monitoring system. If you fancy a challenge, give it a go! If not you might like to try one of the previous challenges: ? Build your own Redis server. ? Build your own QR Code Generator ? Build your own Lisp interpreter ? Build your own application load balancer. ? Build your own API Rate Limiter. ? Build your own Git Client. ? Build your own DNS Resolver. ? Build your own Spotify client. ? Build your own IRC client. ? Build your own shell. ? Build your own diff. ? Build your own URL Shortener. ? Build your own basic web server. ? Build your own Discord Bot. ? Build your own compression tool using Huffman encoding. ? Build your own grep. ? Build your own traceroute. ? Build your own Unix command line tool: wc. ? Build your own JSON parser. ? Build your own Unix command line tool: cut. ? Build your own stack based calculator. ? Build your own Unix command line tool: sort. ? Build your own Unix command line tool: uniq. If you'd like to keep up-to-date with future challenges you can subscribe via the links in the article or on my profile.

    Coding Challenge #78 - Uptime Monitoring Service

    Coding Challenge #78 - Uptime Monitoring Service

    John Crickett,发布于领英

  • Coding Challenges转发了

    查看John Crickett的档案,图片

    Helping you become a better software engineer by building real-world applications.

    The best way to learn to build software, is to build real software. But often it’s hard to know what to build, so we end up spending time looking for ideas instead of building and learning. To help with that, I’ve been sharing a list of project ideas complete with steps to work through in my Coding Challenges newsletter. Here are some of the past challenges: ? Build your own Port Scanner ? Build your own Web Server ? Build your own Application Load Balancer ? Build your own Rate Limiter ? Build your own Redis server ? Build your own QR Code Generator ? Build your own crontab tool ? Build your own Lisp interpreter ? Build your own URL shortener ? Build your own DNS Resolver ? Build your own Git Client ? Build your own IRC client ? Build your own Discord Bot ? Build your own compression tool using Huffman encoding ? Build your own Spotify client ? Build your own JSON parser People are solving the challenges in JavaScript/TypeScript, Rust, Clojure, Ruby, Python, C, C#, C++, Java, Go and Dart. If you fancy giving them a go, you can click on any of the links above or to get future challenges sent directly to you, you can subscribe to the Coding Challenges newsletter here: https://lnkd.in/e4S487pP Tomorrow I'll be publishing the next challenge, Build an Uptime Monitoring system.

    • 该图片无替代文字
  • Coding Challenges转发了

    查看Rohan Singh的档案,图片

    Associate Software Engineer at Boeing | RV College of Engineering

    ??????????????? & ?????????????????????? ?? ???????????? ???? ?????????? ???? ???? ?? ???????????????? ?????????????????? ?? 1.?Alex Xu Provides informative insights from all around the web. His Newsletter: ByteByteGo https://lnkd.in/gwnVFhGG 2.?Neo Kim Specializes in System Design, explains the in and out of process in a very simple manner. His Newsletter: System Design Newsletter https://lnkd.in/gGUX8E7p 3.?Kushal Vijay Provides insights, tips, opportunities and guidance for Software Developers. 4.?Revanth Murigipudi He has conducted 200+ interviews and helps students from Tier-3 like colleges to crack Top Product Based Companies. 5.?Ashish Pratap Singh Another one of my go-to persons for System Design newsletter. He helps build strong foundation in System Design His Newsletter: AlgoMaster Newsletter https://lnkd.in/gXjdKmig 6.?John Crickett A person I try to learn a lot from. I have interacted with him and found him to be highly technically proficient. Every weekend he brings out a new edition of Coding Challenges to solve real world scenarios. 7.?Arpit Bhayani Explains Software Development concepts in a very easy to understand manner. 8.?Nelson Djalo Founder of Amigoscode community. His visual representation of concepts is unmatched. 9.?Brij kishore Pandey Great guidance in the Gen AI domain and Data Engineering. 10.?Dr Milan Milanovi? Provides great insights in Full Stack Development His Newsletter : Tech World With Milan https://lnkd.in/gbF3PJtK 11. Hungry Minds Newsletter Provides trends, deep dives and top content from the Software Development and AI World. https://lnkd.in/gATQME35 12.?Level Up Coding Great content to skill up Software Development & System Design. If I am missing out on anyone, add more in comments! If you liked this post: ?? Repost it to share with others. ?? Save it for future reference. #technology #systemdesign #softwaredevelopment #newsletters

  • Coding Challenges转发了

    查看John Crickett的档案,图片

    Helping you become a better software engineer by building real-world applications.

    Would you like to build a network server from scratch. Learning about network programming, concurrency, testing, and systems software development? If so check out Coding Challenges live! It is a cohort based, intensive course that runs for one week from December the 9th to the 13th. During the course you’ll implement from scratch a clone of the original Redis server and extend it to support the RESP2 protocol and some additional commands. ?? And as it’s part of their Fast Track courses for ambitious professionals, Maven are offering 25% OFF until Sunday! ?? The course covers topics that are applicable to general programming, for example: ??Parsing skills. These can be applied to a variety of problems including data munging, scraping, protocol implementation and more. ??Understanding network programming. This can be applied to making more robust, secure and scalable distributed systems. ??Experience handling concurrency and parallelism in software. Giving you the core skills to build scalable distributed systems. ??Testing. Network servers are complex system software with components that can interact in non-trivial ways. Figuring out how to test them is a challenge. You’ll explore unit and integration testing. ??An introduction to Test Driven Development. TDD is a great way to develop core components of system software, you’ll learn how it can help. The goal of the course is not just to learn how to write a server, but also how to approach the problem of server software. Part of the course involves group discussion about problem decomposition, coding techniques, design tradeoffs, testing, and other related topics. The rest of the time is spent working on individual coding. Coding examples are written in Python and Go. However, the project involves no third-party libraries, esoteric language-specific features, or language-dependent tooling. As such, you're free to implement the project in any programming language that you wish. Writing a server is a great way to learn a new programming language too. You might not think that you're ready to write a server, but if you've been coding for a while and know the basics of data structures, it's something that you can tackle. No prior background in network servers is required although awareness of common programming language concepts (e.g., types, functions, classes, scoping rules, etc.) is strongly advised. You can sign up on Maven here: https://lnkd.in/e4s6Ppyg

    • 该图片无替代文字
  • Coding Challenges转发了

    ?? Building My Custom JSON Parser & Upcoming npm Release ?? I recently completed an exciting project to build a custom JSON parser from scratch! Here's what makes it unique compared to the traditional JSON.parse: How It’s Different: ? Validation: Ensures JSON keys are strings and values meet valid types (strings, numbers, booleans, null, arrays, objects). ? Error Handling: Provides user-friendly error messages for invalid data, unlike JSON.parse which throws generic SyntaxError. ? Asynchronous Parsing: Non-blocking operations, making it ideal for modern applications. ? Plain Object Support: Can also validate plain JavaScript objects in addition to JSON strings. Real-World Use Cases ?? API Response Validation: In scenarios where you fetch data from external APIs, this parser ensures the data adheres to expected standards before processing. ?? Configuration Management: Parse and validate JSON configuration files to ensure the integrity of application settings. ?? Data Pipelines: Use it in pipelines where JSON files are read, validated, and processed for analytics or reporting. ?? Custom Validation for Complex Systems: Add your own validation rules for keys and values in domains like e-commerce, finance, or IoT. ?? Error-Resilient Logging: Safeguard against invalid JSON in logs by pre-validating before storage or analysis. ?? Next Step: Publishing my reusable useJsonParser hook as an npm package, empowering developers with a robust alternative to JSON.parse. ??? Contribute & Explore: Check out my GitHub repo for contributions and discussions: https://lnkd.in/gKk3DuHp Follow along for updates on the npm release! ?? Thanks to John Crickett, Coding Challenges #OpenSource #JSONParsing #WebDevelopment #NpmPackage #GitHubContributions #SoftwareEngineering

    charanpulivendula - Overview

    charanpulivendula - Overview

    github.com

相似主页