Repository: kilimchoi/engineering-blogs
Branch: master
Commit: 50eab27eb283
Files: 9
Total size: 91.9 KB
Directory structure:
gitextract_o0ju_hu0/
├── .github/
│ ├── FUNDING.yml
│ └── workflows/
│ └── engineering_blogs.yml
├── .gitignore
├── .ruby-version
├── Gemfile
├── README.md
├── contributing.md
├── engineering_blogs.opml
└── generate_opml.rb
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: [kilimchoi]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
================================================
FILE: .github/workflows/engineering_blogs.yml
================================================
# WorkFlow Name
name: Generate engineering_blogs.opml file
# Events upon which Github WorkFlow gets triggered
on: [push, pull_request]
# Create jobs
jobs:
generate:
name: Generate engineering_blogs.opml
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v2
- name: Ruby Setup
uses: ruby/setup-ruby@v1
with:
ruby-version: '2.7'
- name: Install pkgs
run: |
bundle install --jobs 4
- name: Generate opml file using ruby
run: |
ruby generate_opml.rb
- name: Auto-Commit engineering_blogs file if updated
uses: stefanzweifel/git-auto-commit-action@v4.1.5
with:
commit_message: Commit by Github WorkFlow
file_pattern: engineering_blogs.opml
================================================
FILE: .gitignore
================================================
.bundle/
================================================
FILE: .ruby-version
================================================
2.7.0
================================================
FILE: Gemfile
================================================
source 'https://rubygems.org'
gem 'builder'
gem 'nokogiri'
gem 'feedbag'
================================================
FILE: README.md
================================================
# Software Engineering Blogs [](https://github.com/sindresorhus/awesome)
### [Companies](#companies-1)
| | | | | | | | | |
|:-: |:-: |:-: |:-: |:-: |:-: |:-: |:-: |:-: |
| [#](#-companies) | [A](#a-companies) | [B](#b-companies) | [C](#c-companies) | [D](#d-companies) | [E](#e-companies) | [F](#f-companies) | [G](#g-companies) | [H](#h-companies) |
| [I](#i-companies) | [J](#j-companies) | [K](#k-companies) | [L](#l-companies) | [M](#m-companies) | [N](#n-companies) | [O](#o-companies) | [P](#p-companies) | [Q](#q-companies) |
| [R](#r-companies) | [S](#s-companies) | [T](#t-companies) | [U](#u-companies) | [V](#v-companies) | [W](#w-companies) | [X](#x-companies) | [Y](#y-companies) | [Z](#z-companies) |
### [Individuals/Group Contributors](#individualsgroup-contributors-1)
| | | | | | | | | |
|:-: |:-: |:-: |:-: |:-: |:-: |:-: |:-: |:-: |
| [#](#-individuals) | [A](#a-individuals) | [B](#b-individuals) | [C](#c-individuals) | [D](#d-individuals) | [E](#e-individuals) | [F](#f-individuals) | [G](#g-individuals) | [H](#h-individuals) |
| [I](#i-individuals) | [J](#j-individuals) | [K](#k-individuals) | [L](#l-individuals) | [M](#m-individuals) | [N](#n-individuals) | [O](#o-individuals) | [P](#p-individuals) | [Q](#q-individuals) |
| [R](#r-individuals) | [S](#s-individuals) | [T](#t-individuals) | [U](#u-individuals) | [V](#v-individuals) | [W](#w-individuals) | [X](#x-individuals) | [Y](#y-individuals) | [Z](#z-individuals) |
### [Products/Technologies](#productstechnologies-1)
| | | | | | | | | |
|:-: |:-: |:-: |:-: |:-: |:-: |:-: |:-: |:-: |
| [#](#-technologies) | [A](#a-technologies) | [B](#b-technologies) | [C](#c-technologies) | [D](#d-technologies) | [E](#e-technologies) | [F](#f-technologies) | [G](#g-technologies) | [H](#h-technologies) |
| [I](#i-technologies) | [J](#j-technologies) | [K](#k-technologies) | [L](#l-technologies) | [M](#m-technologies) | [N](#n-technologies) | [O](#o-technologies) | [P](#p-technologies) | [Q](#q-technologies) |
| [R](#r-technologies) | [S](#s-technologies) | [T](#t-technologies) | [U](#u-technologies) | [V](#v-technologies) | [W](#w-technologies) | [X](#x-technologies) | [Y](#y-technologies) | [Z](#z-technologies) |
### Companies
#### \# companies
* 8th Light https://8thlight.com/blog/
#### A companies
* AdRoll http://tech.adroll.com/blog/
* Advanced Web Machinery https://advancedweb.hu/
* Airbnb https://medium.com/airbnb-engineering
* Algolia https://blog.algolia.com/
* Appnexus https://techblog.appnexus.com/
* Arkency http://blog.arkency.com/
* Artsy http://artsy.github.io/
* Asana https://blog.asana.com/category/eng/
* Atlassian https://developer.atlassian.com/blog/
* Atomic Object https://spin.atomicobject.com/
* Auth0 https://auth0.com/blog/
* Avenue Code http://blog.avenuecode.com/
* AWS https://aws.amazon.com/blogs/aws/
#### B companies
* Babbel https://bytes.babbel.com/en/
* Badoo https://techblog.badoo.com/
* Bandcamp https://bandcamptech.wordpress.com/
* Base Lab https://lab.getbase.com/category/engineering/
* Bazaarvoice https://blog.developer.bazaarvoice.com/
* BBC https://medium.com/bbc-design-engineering/
* Benchling https://benchling.engineering/
* Bigcommerce http://www.bigeng.io/
* Blender https://code.blender.org/
* Booking.com https://blog.booking.com/
* Brandwatch http://engineering.brandwatch.com/
#### C companies
* Canva https://engineering.canva.com
* Capgemini https://capgemini.github.io/
* Cerner http://engineering.cerner.com/
* Clever https://engineering.clever.com/
* Cloudera https://blog.cloudera.com/
* Cloudflare https://blog.cloudflare.com/
* Codelitt https://www.codelitt.com/blog/
* CodeName One http://www.codenameone.com/blog.html
* Codeship https://blog.codeship.com/
* Commercetools https://techblog.commercetools.com/
* Confluent https://www.confluent.io/blog
* Credit Karma https://engineering.creditkarma.com/
* Criteo https://medium.com/criteo-labs
* Crowdfire https://crowdfire.engineering/
* CSC - IT Center For Science - Cloud Team https://cloud.blog.csc.fi/
* Curalate http://engineering.curalate.com/
#### D companies
* Databricks https://databricks.com/blog
* Deezer https://deezer.io/
* Deliveroo https://deliveroo.engineering/
* Discord https://blog.discordapp.com/
* Docker https://blog.docker.com/
* DoorDash https://doordash.engineering/blog/
* Drivy https://drivy.engineering/
* Dropbox https://blogs.dropbox.com/tech/
#### E companies
* Ebay https://www.ebayinc.com/stories/blogs/tech/
* eFounders https://medium.com/unexpected-token
* Engine Yard https://blog.engineyard.com/
* Entelo https://sourcecode.entelo.com/
* Envato https://webuild.envato.com/
* Envoy https://envoy.engineering/
* Erlang Solutions https://www.erlang-solutions.com/blog.html
* Eventbrite https://www.eventbrite.com/engineering/
* Evil Martians https://evilmartians.com/chronicles/
* Expedia https://medium.com/expedia-group-tech
#### F companies
* Facebook https://code.facebook.com/posts/
* Facebook AI Research https://engineering.fb.com/category/ai-research/
* Feedzai https://medium.com/feedzaitech
* Findmypast http://tech.findmypast.com/
* Finn.no http://tech.finn.no/
* Flickr http://code.flickr.net/
* Freeletics https://freeletics.engineering/
* Fynd http://gofynd.io/blog
#### G companies
* Galois https://galois.com/blog/
* GameChanger http://tech.gc.com/
* GIPHY https://engineering.giphy.com/
* GitHub https://githubengineering.com/
* GitHub Old https://github.com/blog/category/engineering
* GoCardless https://gocardless.com/blog/tagged/engineering/
* GoDaddy https://godaddy.github.io/engineering/
* GoSquared https://engineering.gosquared.com/
* Grab http://engineering.grab.com/
* Graphcool https://blog.graph.cool/
* Grofers https://lambda.grofers.com/
* Groupon https://engineering.groupon.com/
* Guardian https://www.theguardian.com/info/developer-blog
* Gusto http://engineering.gusto.com/
#### H companies
* HackerEarth http://engineering.hackerearth.com/
* Haptik https://haptik.ai/tech/
* Harry's http://engineering.harrys.com/
* Hashnode https://engineering.hashnode.com/
* Hashrocket https://hashrocket.com/blog
* Helpshift https://medium.com/helpshift-engineering/
* Heroku https://blog.heroku.com/engineering
* HomeAway https://tech.homeaway.com/
* Honeybadger http://blog.honeybadger.io/
* Hootsuite http://code.hootsuite.com/
* Hostinger https://www.hostinger.com/blog/engineering/
* Housing.com https://medium.com/engineering-housing
* HubSpot http://product.hubspot.com/blog/topic/engineering
#### I companies
* IBM developerWorks https://developer.ibm.com/dwblog/
* IMVU https://engineering.imvu.com/
* Imgur https://blog.imgur.com/category/eng/
* Indeed http://engineering.indeedblog.com/blog/
* Instacart https://tech.instacart.com/
* Instagram https://engineering.instagram.com/
#### J companies
* Jane Street https://blogs.janestreet.com/category/ocaml/
* Jobandtalent https://jobandtalent.engineering/
* JobTeaser https://medium.com/jobteaser-dev-team/
* Just Eat https://tech.just-eat.com/
#### K companies
* Khan Academy http://engineering.khanacademy.org
* Kinvolk https://kinvolk.io/blog/
* Kogan.com https://devblog.kogan.com/
* Kolosek https://kolosek.com/blog/
#### L companies
* LINE https://engineering.linecorp.com/en/blog
* LinkedIn https://engineering.linkedin.com/blog
* LiveRamp https://liveramp.com/engineering/
* Localytics http://eng.localytics.com/
* Lyft https://eng.lyft.com/
#### M companies
* Made Tech https://www.madetech.com/blog
* MapTiler https://www.maptiler.com/blog/
* Medallia http://engineering.medallia.com/blog/
* Medium https://medium.com/medium-eng
* Mesosphere https://mesosphere.com/blog/
* Microsoft Python Engineering https://blogs.msdn.microsoft.com/pythonengineering/
* Moove-it https://blog.moove-it.com/
* Mozilla Automation Team https://planet.mozilla.org/ateam/
* Mozilla Hacks https://hacks.mozilla.org/
* Mozilla Release Engineering https://planet.mozilla.org/releng/
#### N companies
* Netflix https://medium.com/netflix-techblog
* New York Times https://open.blogs.nytimes.com
* Nextdoor https://engblog.nextdoor.com/
* Nordic APIs https://nordicapis.com/blog/
* Novoda https://www.novoda.com/blog/
* NPR Apps http://blog.apps.npr.org/
* Nvidia https://blogs.nvidia.com/
#### O companies
* OCTO Technology https://blog.octo.com/en/
* Okta https://developer.okta.com/blog/
* OLX https://tech.olx.com/
* OmniTI https://omniti.com/seeds/stop-collaborate-and-listen-notify
* OpenDNS https://engineering.opendns.com/
* Oursky https://code.oursky.com/
#### P companies
* Palantir https://blog.palantir.com/
* Panorama Education http://engineering.panoramaed.com/
* Paperless Post https://www.paperlesspost.com/blog/teams/tech/
* Paypal https://www.paypal-engineering.com/
* PicCollage https://tech.pic-collage.com/
* Pinterest https://medium.com/@Pinterest_Engineering
* Pluralsight https://www.pluralsight.com/guides
* Postman https://medium.com/better-practices
* Postmark https://postmarkapp.com/blog
* Prezi https://medium.com/prezi-engineering
* Prolific Interactive http://blog.prolificinteractive.com/category/development/
* PubNub: https://www.pubnub.com/blog/
* PullReview http://blog.8thcolor.com/
#### Q companies
* Quora https://engineering.quora.com/
#### R companies
* REA Group https://www.rea-group.com/category/tech/
* Remind http://engineering.remind.com/
* RetailMeNot https://medium.com/retailmenot-engineering/
* Riot Games https://engineering.riotgames.com/
* RisingStack https://blog.risingstack.com/
* Robert Elder Software http://blog.robertelder.org/
* RoseHosting https://www.rosehosting.com/blog/
#### S companies
* Schibsted Tech Polska http://www.schibsted.pl/blog/
* Segment https://segment.com/blog/categories/engineering/
* Sensible http://blog.sensible.io/
* Serverless https://serverless.com/blog/
* Sharethis https://www.sharethis.com/category/engineering/
* Shopify https://shopify.engineering/
* Simple https://www.simple.com/engineering
* SitePoint https://sitepoint.com
* Sky Betting & Gaming http://engineering.skybettingandgaming.com/
* Skyscanner http://codevoyagers.com/
* Slack https://slack.engineering/
* SlideShare https://engineering.linkedin.com/blog/topic/slideshare
* Small Improvements https://tech.small-improvements.com/
* Soshace https://blog.soshace.com/en/
* Soundcloud https://developers.soundcloud.com/blog/
* SourceClear https://blog.sourceclear.com/
* Speedledger http://engineering.speedledger.com/
* Spotify https://labs.spotify.com/
* Sqreen https://blog.sqreen.io/
* Square https://corner.squareup.com/
* Squarespace https://engineering.squarespace.com/
* Stack Overflow https://stackoverflow.blog/engineering/
* Stackshare https://stackshare.io/feed
* Stitch Fix http://multithreaded.stitchfix.com/blog/
* Strava https://medium.com/strava-engineering/
* Stripe https://stripe.com/blog
* SurveyMonkey https://engineering.surveymonkey.com/
* Swiggy https://bytes.swiggy.com/
#### T companies
* Takipi http://blog.takipi.com/
* Target https://target.github.io/
* Teamwork https://engineroom.teamwork.com/
* theScore http://techblog.thescore.com/
* Thoughtbot https://robots.thoughtbot.com/
* Thumbtack https://www.thumbtack.com/engineering/
* Timescale https://blog.timescale.com/
* Tinder https://tech.gotinder.com/
* Toptal https://www.toptal.com/blog/
* Transferwise http://tech.transferwise.com/
* Trivago http://tech.trivago.com/
* TrueCar https://www.drivenbycode.com/
* Tumblr https://engineering.tumblr.com/
* Twilio https://www.twilio.com/blog/
#### U companies
* Universe https://engineering.universe.com
* UpGrad https://engineering.upgrad.com
#### V companies
* Vena Solutions https://engineering.vena.io/
* VersionEye https://blog.versioneye.com/
* Viget https://www.viget.com/articles/category/code#articles
* Vinted http://engineering.vinted.com/
* VNGRS http://blog.vngrs.com/
* VTS https://buildingvts.com/
#### W companies
* Wayfair http://engineering.wayfair.com/
* Wealthfront http://eng.wealthfront.com/
* Wemake.services https://medium.com/wemake-services
* Wingify http://engineering.wingify.com/
* WyeWorks https://wyeworks.com/blog/
#### X companies
* XING https://tech.xing.com/
#### Y companies
* Yahoo https://yahooeng.tumblr.com/
* Yammer https://medium.com/yammer-engineering
#### Z companies
* Zalando https://tech.zalando.com/blog/
* Zapier https://zapier.com/engineering/
* Zendesk https://medium.com/zendesk-engineering
* Zendesk(old) https://developer.zendesk.com/blog
### Individuals/Group Contributors
#### \# individuals
* 0xADADA https://0xadada.pub/
#### A individuals
* Aaron Patterson http://tenderlovemaking.com/
* Abu Ashraf Masnun http://masnun.com/
* Addy Osmani https://addyosmani.com/blog/
* Alan Storm http://alanstorm.com/
* Alex Russell https://infrequently.org/
* Amit Merchant https://www.amitmerchant.com/
* Anders Aarvik http://aarvik.dk/
* Andrew Bancroft http://www.andrewcbancroft.com/
* Antirez http://antirez.com/latest/0
* Ariejan de Vroom https://ariejan.net/
* Ariya Hidayat https://ariya.io/
* Armin Ronacher http://lucumr.pocoo.org/
* Axel Rauschmayer http://www.2ality.com/
#### B individuals
* Bad Concurrency http://bad-concurrency.blogspot.com/
* Bartlomiej Filipek http://www.bfilipek.com/
* Bill the Lizard http://www.billthelizard.com/
* Bjørn Johansen https://bjornjohansen.no/
* Blake Erickson https://blog.blakeerickson.com/
* Blundell's Android Tutorials http://blog.blundellapps.co.uk
* Bohops https://bohops.com/
* Brendan Eich https://brendaneich.com/
* Brendan Gregg http://www.brendangregg.com/blog/
* Brujo Benavides https://medium.com/@elbrujohalcon
* Bryan Cantrill http://dtrace.org/blogs/bmc/
#### C individuals
* Carlos Becker https://carlosbecker.com
* Chen Hui Jing https://www.chenhuijing.com/blog/
* Chien Tran http://thelazylog.com/
* Chris Wellons http://nullprogram.com/
* Code with style! https://codewithstyle.info/
* Codrops https://tympanus.net/codrops/
#### D individuals
* Daily JS https://medium.com/dailyjs
* Daily Tech Video http://dailytechvideo.com/
* Dan Luu https://danluu.com/
* Daniel Doubrovkine (dB.) http://code.dblock.org/
* Daniel Schmidt https://medium.com/@dschmidt1992
* Dave Beazley http://www.dabeaz.com/blog.html
* Dave Cheney https://dave.cheney.net/
* David Walsh https://davidwalsh.name/
* Dean Hume http://deanhume.com/
* Dennis Felsing https://hookrace.net/
* Dereuromark http://www.dereuromark.de/
* Domenico Luciani https://domenicoluciani.com
* Dot Dev (.dev) https://dotdev.co
* Dragan Djuric http://dragan.rocks
* Dragan Gaic http://www.gajotres.net/
* Drew DeVault https://drewdevault.com/
#### E individuals
* Edan Kwan http://blog.edankwan.com/
* Eddie Smith http://www.practicallyefficient.com/
* Edgar Aroutiounian https://hyegar.com/
* Edward Faulkner https://eaf4.com/
* Elegant Code http://elegantcode.com/
* Eli Bendersky http://eli.thegreenplace.net/
* Eric Elliot https://medium.com/javascript-scene/
* Eric Lippert https://ericlippert.com/
* Erik Runyon https://erikrunyon.com/
* Evan Hahn http://evanhahn.com/
* Evan Jones http://www.evanjones.ca/chronological.html
* Evan Miller http://www.evanmiller.org/
#### F individuals
* Federico Cargnelutti https://blog.fedecarg.com/
* Federico Tomassetti https://tomassetti.me/
* Filippo Valsorda https://blog.filippo.io/
* Freek Van der Herten https://murze.be/
#### G individuals
* Gleb Bahmutov https://glebbahmutov.com/blog/
* Graham King https://www.darkcoding.net/
* Grzegorz Gajos http://ggajos.com/
* Guido van Rossum http://neopythonic.blogspot.com/
* Guilherme Rodrigues https://firstdoit.com/
#### H individuals
* Hayden James https://haydenjames.io/
* Henrik Lau Eriksson https://conductofcode.io/
* Henrik Warne https://henrikwarne.com/
* High Scalability http://highscalability.com/
* Huon Wilson http://huonw.github.io/
* Hypriot http://blog.hypriot.com/
#### I individuals
* Ian Hummel https://themodernlife.github.io/
* Idontgetoutmuch's Weblog https://idontgetoutmuch.wordpress.com/
* Ievgen Kuzminov http://stdout.in/
* Ilija Eftimov http://ieftimov.com/
* Ilya Grigorik https://www.igvita.com/
* Itamar Turner-Trauring https://codewithoutrules.com
#### J individuals
* Jacopo Tarantino https://jack.ofspades.com/
* Jake Trent https://jaketrent.com
* Jake Wharton http://jakewharton.com/blog
* Jake Yesbeck http://jakeyesbeck.com/
* James Hague http://prog21.dadgum.com/
* James Long http://jlongster.com/archive
* Jamis Buck http://weblog.jamisbuck.org/
* Jan Lelis https://idiosyncratic-ruby.com/
* Jay Fields http://blog.jayfields.com
* Jeff Atwood https://blog.codinghorror.com/
* Jeff Preshing http://preshing.com/
* Jeremy Kun https://jeremykun.com/
* Jerry Gamblin https://jerrygamblin.com/
* Jesal Gadhia https://jes.al/
* Jessie Frazelle https://blog.jessfraz.com/
* Joe Armstrong https://joearms.github.io/
* Joe Nelson https://begriffs.com/
* Joel Spolsky https://www.joelonsoftware.com/
* Johannes Brodwall http://johannesbrodwall.com/
* John Resig https://johnresig.com/category/blog/
* John Wittenauer http://www.johnwittenauer.net/
* Jon Skeet https://codeblog.jonskeet.uk/
* Jonathan Dekhtiar http://www.born2data.com/
* Jonathan Snook https://snook.ca/
* Josh Haberman http://blog.reverberate.org/
* Josh Sherman https://joshtronic.com/
* Juan Treminio https://jtreminio.com
* Julia Evans https://jvns.ca/
* Junior Grossi https://blog.jgrossi.com/
* Justin Weiss https://www.justinweiss.com/articles/archives/
#### K individuals
* K. Harrison https://useyourloaf.com/
* Kai Hendry https://hendry.iki.fi/
* Kevin Burke https://kev.inburke.com/
* Kirill Shevchenko https://medium.com/@kirill_shevch
* Kyle Kingsbury https://aphyr.com/
#### L individuals
* Lambda the Ultimate http://lambda-the-ultimate.org/
* Larry Land https://lg.io/
* Lazarus Lazaridis https://iridakos.com
* Lea Verou http://lea.verou.me/
* Lerner Consulting Blog http://blog.lerner.co.il/
* Life Plus Linux http://lifepluslinux.blogspot.in/
* LiveOverflow https://liveoverflow.com/blog/index.html
* Luciano Mammino https://loige.co/
#### M individuals
* Marc Plano-Lesay https://enoent.fr
* Marcelo Rinesi https://blog.rinesi.com/
* Marco Pivetta http://ocramius.github.io/
* Marek Majkowski https://idea.popcount.org/
* Mark Seaborn http://lackingrhoticity.blogspot.de/
* Martin Fowler https://martinfowler.com/
* Mary Rose Cook https://maryrosecook.com/blog/
* Matt Aimonetti https://matt.aimonetti.net/
* Matt Cutts https://www.mattcutts.com/blog/
* Matt Might http://matt.might.net/articles/
* Matt Warren http://mattwarren.org/
* Matthew Green https://blog.cryptographyengineering.com/
* Michael Crump https://michaelcrump.net/
* Michael Herman http://mherman.org/
* Miguel Quinones https://www.miqu.me/
* Mike Ash https://www.mikeash.com/pyblog/
* Mike Fogus http://blog.fogus.me/
* Miro Cupak https://mirocupak.com/
* Monica Dinculescu https://meowni.ca/
* Monstermuffin https://blog.monstermuffin.org/
* Mykhailo Kozik http://mishadoff.com/
#### N individuals
* Nelson Elhage https://blog.nelhage.com/
* Nic Raboy https://www.thepolyglotdeveloper.com/blog/
* Nick Craver https://nickcraver.com/blog/
* Nick Desaulniers https://nickdesaulniers.github.io/
* Nicolas Liochon http://blog.thislongrun.com/
* Nicolai Parlog (CodeFX) http://codefx.org
* Nikola Brežnjak http://www.nikola-breznjak.com/blog/
* NSHipster http://nshipster.com/
* Nate Berkopec http://www.nateberkopec.com/
#### O individuals
* Ofer Zelig https://fullstack.info
* Ole Begemann https://oleb.net/blog/
* Oona Räisänen http://www.windytan.com/
#### P individuals
* Pamela Fox http://blog.pamelafox.org/
* Pat Shaughnessy http://patshaughnessy.net/
* Paul Irish https://www.paulirish.com/
* Paul Lewis https://aerotwist.com/blog/
* Paweł Chudzik https://blog.pchudzik.com/
* Peter Norvig http://norvig.com/
* Peter Steinberger http://petersteinberger.com/
* Peteris Krumins http://www.catonmat.net/blog/
* Petr Mitrichev http://petr-mitrichev.blogspot.com/
* Philip Walton https://philipwalton.com/
* Philipp Oppermann https://os.phil-opp.com/
* Pony Foo https://ponyfoo.com/
* Piotr Pasich http://piotrpasich.com/
#### R individuals
* Rachel Kroll https://rachelbythebay.com/w/
* Radek Pazdera http://radek.io
* Radim Řehůřek https://radimrehurek.com/blog/
* Ramon Fried https://nativeguru.wordpress.com/
* Ray Wenderlich https://www.raywenderlich.com/
* Raymond Chen https://blogs.msdn.microsoft.com/oldnewthing/
* Raymond Hettinger https://rhettinger.wordpress.com/
* ReactJS News https://reactjsnews.com
* Real Python https://realpython.com/blog/
* Reginald Braithwaite http://raganwald.com/#essays
* Regular Geek http://regulargeek.com/
* Rob Allen https://akrabat.com/
* Robert C. Martin http://blog.cleancoder.com/
* Robin Ward https://eviltrout.com/
* Robin Wilson http://blog.rtwilson.com/
* Ruslan Spivak https://ruslanspivak.com/
#### S individuals
* Sam Saffron https://samsaffron.com/
* Schakko https://schakko.de
* Scott Hanselman http://www.hanselman.com/blog/
* Scott Johnson http://www.fuzzyblog.io/blog/
* Srinivas Tamada https://www.9lessons.info/
* Stack Abuse http://www.stackabuse.com/
* Stanko Tadić https://muffinman.io
* Stefan Parker http://codebeforethehorse.tumblr.com/
* Stephen Colebourne http://blog.joda.org/
* Steve Bellovin https://www.cs.columbia.edu/~smb/blog/control/
* Steve Yegge https://steve-yegge.blogspot.com/
* Swizec Teller https://swizec.com/blog/
#### T individuals
* Tania Rascia https://tania.dev/
* The Coded Self http://www.thecodedself.com
* The Daily WTF http://thedailywtf.com/
* Thomas Young http://upcoder.com
* Tikhon Jelvis http://jelv.is/blog/
* T.J. Maher http://adventuresinautomation.blogspot.com/
#### U individuals
* Una Kravets https://una.im/
* Undocumented Matlab http://undocumentedmatlab.com/
#### V individuals
* Vanilla Java http://vanillajava.blogspot.com/
* Vlad Mihalcea https://vladmihalcea.com/
#### W individuals
* Wilfred Hughes http://www.wilfred.me.uk/
* William Kennedy https://www.goinggo.net/
* Wojtek Gawroński http://www.afronski.pl/
#### Y individuals
* Yegor Bugayenko http://www.yegor256.com/
* Yifan Lu http://yifan.lu/
#### Z individuals
* Zach Holman https://zachholman.com/
* Zolmeister https://zolmeister.com/
### Products/Technologies
#### A technologies
* Android https://android-developers.blogspot.com/
#### B technologies
* Bootstrap.com https://blog.getbootstrap.com/
#### C technologies
* Crystal https://crystal-lang.org/
#### G technologies
* Go https://blog.golang.org/
#### I technologies
* IPFS https://ipfs.io/blog/
#### J technologies
* jOOQ https://blog.jooq.org/
#### K technologies
* Kotlin https://blog.jetbrains.com/kotlin/
#### L technologies
* Laravel https://laravel-news.com/blog/
#### M technologies
* Microsoft Edge https://blogs.windows.com/msedgedev/
#### N technologies
* .NET https://blogs.msdn.microsoft.com/dotnet/
#### R technologies
* React Native http://facebook.github.io/react-native/blog/
* Red http://www.red-lang.org
* RocksDB http://rocksdb.org/blog
* Rust https://blog.rust-lang.org/
#### S technologies
* Sketch https://blog.sketchapp.com/
* Swift https://developer.apple.com/swift/blog/
----
# RSS feeds
You can find an opml file to import rss feeds here: [engineering_blogs.opml](./engineering_blogs.opml)
# Contributing
Contributions welcome! Read the [contribution guidelines](contributing.md) first.
# License
Licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
================================================
FILE: contributing.md
================================================
# Contribution Guidelines
Please ensure your pull request adheres to the following guidelines:
- One pull request per add.
- The pull request and commit message should include what was added/removed. It should also include one sentence summary of why you think this blog deserves recognition.
- Please squash related commits for each pull request you submit.
- Use the following format: `Name link summary` e.g. Airbnb http://nerds.airbnb.com/
- For company blogs, make sure that 80% of content is technical (posts about interesting technical challenges, lessons they've learned, etc). No PR, self-promoting posts.
- For individual blogs, as long as posts are mostly technical (80% technical as well), and has a decent number of followers, I'm happy to add them.
- After making changes to the README, run `bundle install` to install the dependencies and then the opml generation script (`./generate_opml.rb`) to update the opml file.
## Running the OPML Generation Script with Docker
If you do not have Ruby readily available the following steps can be used to run the OPML generation script with Docker:
```
docker run -it -e LANG=C.UTF-8 --name=blogs ruby:2.5 /bin/bash
git clone https://github.com//engineering-blogs.git
cd engineering-blogs
gem install bundler
bundle install
ruby generate_opml.rb
docker cp blogs:/engineering-blogs/engineering_blogs.opml .
```
================================================
FILE: engineering_blogs.opml
================================================
Engineering Blogs
================================================
FILE: generate_opml.rb
================================================
#!/usr/bin/env ruby
require 'builder'
require 'feedbag'
require 'json'
require 'nokogiri'
OUTPUT_FILENAME = 'engineering_blogs.opml'
TITLE = 'Engineering Blogs'
# grab name/url pairings from README.md
readme = File.open('README.md', 'r')
contents = readme.read
matches = contents.scan(/\* (.*) (http.*)/)
# skip over blogs that aren't found
unavailable = []
fast_forwards = [
'Baidu Research',
'Booking.com',
'Fynd',
'Graphcool',
'LinkedIn',
'Medallia',
'OmniTI',
'Paperless Post',
'Pluralsight',
'Prolific Interactive',
'Quora',
'Robert Elder Software',
'Simple',
'SlideShare',
'SourceClear',
'Viget',
'Zalando',
'Zapier',
'Zynga',
'Dave Beazley',
'Edan Kwan',
'Grzegorz Gajos',
'Joe Armstrong',
'Kai Hendry',
'LiveOverflow'
]
Struct.new('Blog', :name, :web_url, :rss_url)
blogs = []
# for each blog URL, check if rss URL exists
matches.each do |match|
name = match[0]
web_url = match[1]
if fast_forwards.include?(name)
puts "#{name}: TEMP IGNORE"
unavailable.push(Struct::Blog.new(name, web_url, nil))
next
end
# if rss_url already in existing opml file, use that; otherwise, do a lookup
rss_url = nil
if File.exist?(OUTPUT_FILENAME)
xml = Nokogiri::XML(File.open(OUTPUT_FILENAME))
existing_blog = xml.xpath("//outline[@htmlUrl='#{web_url}']").first
if existing_blog
rss_url = existing_blog.attr('xmlUrl')
puts "#{name}: ALREADY HAVE"
end
end
if rss_url.nil?
puts "#{name}: GETTING"
rss_check_url = "https://cloud.feedly.com/v3/search/feeds/?query=#{web_url}"
next if !rss_check_url
uri = URI.parse(rss_check_url)
response = JSON.parse(Net::HTTP.get(uri))
rss_url = response['responseData']['url'] if response['responseData'] && response['responseData'].has_key?('url')
# use Feedbag as a backup to Feedly Api
if rss_url.nil?
rss_url = Feedbag.find(web_url).first
if rss_url.nil?
suggested_paths = ['/rss', '/feed', '/feeds', '/atom.xml', '/feed.xml', '/rss.xml', '.atom', '/.rss']
suggested_paths.each do |suggested_path|
rss_url = Feedbag.find("#{web_url.chomp('/')}#{suggested_path}").first
break if rss_url
end
end
end
end
if rss_url && rss_url.length > 0
blogs.push(Struct::Blog.new(name, web_url, rss_url))
else
unavailable.push(Struct::Blog.new(name, web_url, rss_url))
end
end
blogs.sort_by { |b| b.name.capitalize }
unavailable.sort_by { |b| b.name.capitalize }
# create and write to opml file
xml = Builder::XmlMarkup.new(indent: 2)
xml.instruct! :xml, version: '1.0', encoding: 'UTF-8'
xml.tag!('opml', version: '1.0') do
# head
xml.tag!('head') do
xml.title TITLE
end
# body
xml.tag!('body') do
xml.tag!('outline', text: TITLE, title: TITLE) do
blogs.each do |blog|
xml.tag!('outline', type: 'rss', text: blog.name, title: blog.name,
xmlUrl: blog.rss_url, htmlUrl: blog.web_url)
end
end
end
end
output = File.new(OUTPUT_FILENAME, 'wb')
output.write(xml.target!)
output.close
puts "DONE: #{blogs.count} written to #{OUTPUT_FILENAME}"
puts "\nUnable to find an RSS feed for the following blogs:"
puts "==================================================="
unavailable.each do |b|
puts "#{b.name} | #{b.web_url}"
end
puts "==================================================="