├── .github ├── FUNDING.yml └── stale.yml ├── .gitignore ├── .gitmodules ├── README.md ├── archetypes └── default.md ├── config.toml ├── content ├── about.md ├── channels.md ├── coc.md ├── freelancers.html └── netiquette.md ├── data ├── channels.json └── freelancers.json ├── layouts ├── _default │ └── _markup │ │ └── render-link.html ├── channels │ └── single.html ├── freelancers │ └── single.html ├── index.html └── partials │ ├── channels_list.html │ ├── footer.html │ ├── freelancers_list.html │ └── header.html ├── netlify.toml ├── public └── index.html └── static ├── css ├── channels.css ├── custom.css └── freelancers.css └── images ├── bcneng_400x400.png ├── bcneng_outline.svg ├── homepage-image.jpg ├── project-logos └── step4ward-logo.webp ├── sponsor-logos ├── digital-ocean.svg ├── donut.png ├── opensay.png ├── slack.webp └── truffle.png └── team ├── cande.jpeg ├── cristina.png ├── gon.jpeg ├── mavi.jpeg ├── ronny.jpeg └── smoya.jpeg /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: bcneng 2 | open_collective: bcneng 3 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 60 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 12 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - pinned 8 | - keep-open 9 | - security 10 | # Label to use when marking an issue as stale 11 | staleLabel: stale 12 | # Comment to post when marking an issue as stale. Set to `false` to disable 13 | markComment: > 14 | This issue has been automatically marked as stale because it has not had 15 | recent activity. It will be closed if no further activity occurs. Thank you 16 | for your contributions. 17 | # Comment to post when closing a stale issue. Set to `false` to disable 18 | closeComment: false 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | resources/_gen 2 | .hugo_build.lock 3 | .DS_Store 4 | .vscode -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "themes/chunky-poster"] 2 | path = themes/chunky-poster 3 | url = https://github.com/bcneng/hugo-theme-chunky-poster.git 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BcnEng 2 | [![Netlify Status](https://api.netlify.com/api/v1/badges/f31a7adf-da08-42fa-a419-053fe7765e0d/deploy-status)](https://app.netlify.com/sites/bcneng/deploys) 3 | 4 | [BcnEng](http://bcneng.org) is a slack community built around the software engineering community from Barcelona. 5 | 6 | You can get an invitation to join it [here](http://slack.bcneng.org). 7 | 8 | ## Developers 9 | 10 | This repository hosts the code to build the static website using [Hugo](https://gohugo.io/). 11 | 12 | To get started and contribute to its growth, you only need to clone the repository, including its submodules, and fire a `docker run` command. 13 | 14 | More precisely, the instructions to start the server locally are: 15 | 16 | git clone --recursive git@github.com:bcneng/bcneng.github.io.git 17 | cd bcneng.github.io 18 | 19 | Make sure the folder `themes/chunky-poster` is populated. Otherwise do a: 20 | 21 | git submodule init 22 | git submodule update 23 | 24 | Then you can start the server: 25 | 26 | docker run --rm -it -v "$PWD:/site" -p "1313:1313" alombarte/hugo hugo server -D --bind 0.0.0.0 27 | 28 | If you prefer having Hugo [installed locally](https://gohugo.io/getting-started/installing/), you can simply do: 29 | 30 | hugo server -D 31 | 32 | The service will be available on [localhost:1313](http://localhost:1313) in both cases unless the port is already in use. 33 | 34 | Thanks for contributing! 35 | -------------------------------------------------------------------------------- /archetypes/default.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "{{ replace .Name "-" " " | title }}" 3 | date: {{ .Date }} 4 | draft: true 5 | --- 6 | 7 | -------------------------------------------------------------------------------- /config.toml: -------------------------------------------------------------------------------- 1 | baseURL = "https://bcneng.org/" 2 | languageCode = "en-us" 3 | title = "BCN Engineering" 4 | description = "By engineers, for engineers." 5 | theme = "chunky-poster" 6 | pagination.pagerSize = 2 7 | enableInlineShortcodes = true 8 | footnoteReturnLinkContents = "^" 9 | googleAnalytics = "UA-161944690-1" 10 | DisqusShortname = "" 11 | 12 | [menu] 13 | [[menu.main]] 14 | identifier = "channels" 15 | name = "Channels" 16 | url = "/channels/" 17 | weight = 10 18 | [[menu.main]] 19 | identifier = "freelancers" 20 | name = "Freelancers" 21 | url = "/freelancers/" 22 | weight = 10 23 | [[menu.main]] 24 | identifier = "netiquette" 25 | name = "Netiquette" 26 | url = "/netiquette/" 27 | weight = 20 28 | [[menu.main]] 29 | identifier = "coc" 30 | name = "Code of Conduct" 31 | url = "/coc/" 32 | weight = 20 33 | [[menu.main]] 34 | identifier = "about" 35 | name = "About" 36 | url = "/about/" 37 | weight = 0 38 | 39 | [taxonomies] 40 | category = "categories" 41 | tag = "tags" 42 | series = "series" 43 | author = "authors" 44 | 45 | [params] 46 | author = "BcnEng" 47 | description = "Slack Community" 48 | homepageImage = "/images/bcneng_outline.svg" 49 | share = true 50 | showLanguageSwitcher = false 51 | 52 | # Custom CSS and JS. Relative to /static/css and /static/js respectively. 53 | customCSS = ["custom.css"] 54 | customJS = [] 55 | 56 | [params.social] 57 | rss = true 58 | twitter = "https://twitter.com/bcn_eng" 59 | linkedin = "https://www.linkedin.com/company/bcneng/" 60 | github = "https://github.com/bcneng" 61 | email = "contact@bcneng.org" 62 | 63 | [params.prismJS] 64 | enable = true 65 | theme = "" 66 | 67 | [params.commento] 68 | enable = false 69 | url = "https://commento.io" 70 | 71 | [markup] 72 | [markup.highlight] 73 | codeFences = false 74 | 75 | [services] 76 | [services.instagram] 77 | disableInlineCSS = false 78 | 79 | [services.x] 80 | disableInlineCSS = true 81 | -------------------------------------------------------------------------------- /content/about.md: -------------------------------------------------------------------------------- 1 | ## The Mission 2 | 3 | BcnEng is a non-profit organization whose mission is to let Barcelona's tech hub become one of the best tech communities around the globe. 4 | 5 | How? 6 | 7 | - Promoting and spreading technical knowledge 8 | - Enhancing personal and professional relationships in a frame of diversity 9 | - Foment training among the community 10 | 11 | We will do that keeping our values: 12 | 13 | - Transparency 14 | - Community-driven 15 | - Diversity 16 | - Open-source 17 | 18 | ## The History 19 | 20 | BcnEng's Slack started as a solution for a communication problem between two 21 | ex-colleagues ([Sergio Moya](https://www.linkedin.com/in/smoya) and [Gonzalo 22 | Serrano](https://gon.cat)) that worked in the same team in a Barcelona startup for 23 | years but parted ways for new jobs in November 2016. They wanted to keep 24 | being in touch as a group and found Slack was the solution. 25 | 26 | Months passed, and the community kept growing slowly but steadily, till today, with 27 | more than 11K registered users and around 1.5K weekly active users. 28 | 29 | ## The team 30 | 31 | #### The staff 32 | 33 | Luckily, more people organically joined the community to help organize and 34 | ensure everything ran smoothly. Here is the staff team: 35 | 36 | [{{< figure src="/images/team/gon.jpeg" title="@gonzaloserrano" class="avatar" >}}](https://bcneng.slack.com/team/U2Y6QQHST) 37 | [{{< figure src="/images/team/mavi.jpeg" title="@mavi" class="avatar" >}}](https://bcneng.slack.com/team/U3256HZH9) 38 | [{{< figure src="/images/team/cande.jpeg" title="@sdecandelario" class="avatar" >}}](https://bcneng.slack.com/team/U36H6F3CN) 39 | [{{< figure src="/images/team/smoya.jpeg" title="@smoya" class="avatar" >}}](https://bcneng.slack.com/team/U2WPLA0KA) 40 | [{{< figure src="/images/team/ronny.jpeg" title="@ronnylt" class="avatar" >}}](https://bcneng.slack.com/team/U2XDM2L0G) 41 | 42 | - [Gonzalo Serrano](https://gon.cat) ([@gonzaloserrano](https://bcneng.slack.com/team/U2Y6QQHST)), Software Engineer at Tetrate 43 | - [Mavi Jiménez Fernández](https://www.linkedin.com/in/mavijimenez/) ([@mavi](https://bcneng.slack.com/team/U3256HZH9)), Software Developer and Team Lead at Seat:Code 44 | - [Sergio de Candelario Delgado](https://www.linkedin.com/in/sdecandelario/) ([@sdecandelario](https://bcneng.slack.com/team/U36H6F3CN)), Senior Backend Engineer at Socialpoint 45 | - [Sergio Moya](https://www.linkedin.com/in/smoya/) ([@smoya](https://bcneng.slack.com/team/U2WPLA0KA)), doing AI at Timescale 46 | - [Ronny López](https://www.linkedin.com/in/ronnylt/) ([@ronnylt](https://bcneng.slack.com/team/U2XDM2L0G)), Technology Advisor and Software Engineer 47 | 48 | #### Distinguished members 49 | 50 | Lots of people have and are helping too. A special shout-out to (alphabetically ordered): 51 | 52 | - [Rubén Aguilar](https://www.linkedin.com/in/ruben-aguilar-becerra/) ([@Rubén](https://bcneng.slack.com/team/U8QMJ1DUH)) 53 | - [Jorge Arco](https://www.linkedin.com/in/jorgearco/) ([@iyoque](https://bcneng.slack.com/team/U30B8KQVB)) 54 | - [Ilia Berlana](https://www.linkedin.com/in/iliaberlana) ([@ilia](https://bcneng.slack.com/team/U88TVKT7V)) 55 | - [Roger Clotet](https://www.linkedin.com/in/rogerclotet/) ([@rogerclotet](https://bcneng.slack.com/team/U2YEY1745)) 56 | - [Marc De Mena Tomé](https://www.linkedin.com/in/mdemena/) ([@marc.mena](https://bcneng.slack.com/team/U314KFBT6)) 57 | - [Genís Díaz Fernández](https://www.linkedin.com/in/genisdiazfernandez/) ([@genisdiaz](https://bcneng.slack.com/team/U486R9SNP)) 58 | - [Javier Ferrer González](https://www.linkedin.com/in/javiercane/) ([@JavierCane](https://bcneng.slack.com/team/U2YSZNUHL)) 59 | - [Victor Fondevilla](https://www.linkedin.com/in/vfondevilla/) ([@Victor Fondevilla](https://bcneng.slack.com/team/UN6S9CCGH)) 60 | - [Rafa Gómez Casas](https://www.linkedin.com/in/rgomezcasas/) ([@rafa](https://bcneng.slack.com/team/U2X8UK9UH)) 61 | - [Carmen Laura Delgado Pérez](https://www.linkedin.com/in/carmenldelgadop/) ([@CarmenDelgado](https://bcneng.slack.com/team/UEDFE7J07)) 62 | - [Albert Lombarte](https://www.linkedin.com/in/alombarte/) ([@alombarte](https://bcneng.slack.com/team/U366C72FK)) 63 | - [Ignasi Marimon-Clos](https://www.linkedin.com/in/ignasimarimonclossunyol/) ([@imarimon](https://bcneng.slack.com/team/U2XVDDP0Q)) 64 | - [Pau Martínez Calvet](https://www.linkedin.com/in/pau-martinez-calvet/) ([@pau](https://bcneng.slack.com/team/U2YEH6F88)) 65 | - [Carles Núñez Tomeo](https://www.linkedin.com/in/carles-nunez-tomeo/) ([@Carles Nuñez Tomeo](https://bcneng.slack.com/team/UGPRV963X)) 66 | - [Manuel Obregozo](https://www.manuelobregozo.com/) ([@Manu Obre](https://bcneng.slack.com/team/UUPUNRWKZ)) 67 | - [José Luis Peña de San Victor](https://www.linkedin.com/in/joseluispenadesanvictor/) ([@koe](https://bcneng.slack.com/team/U7PQZMZ4L)) 68 | - [Uriel Salischicker](https://www.linkedin.com/in/urielsalis/) ([@Uriel Salischiker](https://bcneng.slack.com/team/UFW0A1GV8)) 69 | - [Álvaro Salvá](https://www.linkedin.com/in/asalva/) ([@redbaron](https://bcneng.slack.com/team/U40KDVDQF)) 70 | - [Antonio Santiago](https://www.linkedin.com/in/acanimal/) ([@acanimal](https://bcneng.slack.com/team/UB82Y3A3W)) 71 | - [Cristina Verdi](https://www.linkedin.com/in/cristina-verdi/) ([@cristina_verdi](https://bcneng.slack.com/team/UNNPZ40BG)) 72 | - [Iván Villalba](https://www.linkedin.com/in/ivanvillalba/) ([@Ivan Vihe](https://bcneng.slack.com/team/UAG4H8GMD)) 73 | -------------------------------------------------------------------------------- /content/channels.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Channels" 3 | type: channels 4 | --- 5 | -------------------------------------------------------------------------------- /content/coc.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | ## Introduction 4 | 5 | Welcome to BcnEng's Code of Conduct. 6 | 7 | This document can change over time. The administrators will publish its updates 8 | on the #general channel. To join this community you agree to it's contents. If 9 | you don't, you must logout and delete your account. 10 | 11 | You can propose improvements to this document by communicating them in the 12 | `#ask-staff` channel or [opening a pull request](https://github.com/bcneng/website/blob/master/content/coc.md). 13 | 14 | ## Our Pledge 15 | 16 | We as members, contributors, and admins pledge to make participation in our 17 | community a harassment-free experience for everyone, regardless of age, body 18 | size, visible or invisible disability, ethnicity, sex characteristics, gender 19 | identity and expression, level of experience, education, socio-economic status, 20 | nationality, personal appearance, race, religion, or sexual identity 21 | and orientation. 22 | 23 | We pledge to act and interact in ways that contribute to an open, welcoming, 24 | diverse, inclusive, and healthy community. 25 | 26 | The following statements apply to all means of communication and shapes, i.e. text messages, reactions, calls, video calls... 27 | 28 | ## Expected Behaviour 29 | 30 | * Using welcoming and inclusive language 31 | * Demonstrating empathy and kindness toward other people 32 | * Being respectful of differing opinions, viewpoints, and experiences 33 | * Giving and gracefully accepting constructive feedback 34 | * Accepting responsibility and apologizing to those affected by our mistakes, 35 | and learning from the experience 36 | * Focusing on what is best not just for us as individuals, but for the 37 | overall community 38 | * Showing empathy towards other community members 39 | 40 | ## Unacceptable Behavior 41 | 42 | * Conduct or speech which might be considered sexist, racist, homophobic, 43 | transphobic, ableist or otherwise discriminatory or offensive in nature. 44 | - Do not use unwelcome, suggestive, derogatory or inappropriate nicknames or terms. 45 | - Do not show disrespect towards others (jokes, innuendo, dismissive attitudes). 46 | * Trolling, insulting/derogatory comments, and personal or political attacks. 47 | * Public or private harassment. Please read the [Citizen Code of Conduct][citizen-coc] 48 | for how we interpret harassment. 49 | * Publishing others' private information, such as a physical or electronic 50 | address, without explicit permission. 51 | * Publishing content or comments that promote illegal activities. 52 | * Violence, threats of violence or violent language. 53 | * Other conduct which could reasonably be considered inappropriate in a professional setting. 54 | 55 | ## Enforcement Responsibilities 56 | 57 | Community admins are responsible for clarifying and enforcing our standards of 58 | acceptable behavior and will take appropriate and fair corrective action in 59 | response to any behavior that they deem inappropriate, threatening, offensive, 60 | or harmful. 61 | 62 | Community admins have the right and responsibility to remove, edit, or reject comments and 63 | other contributions that are not aligned to this Code of Conduct, or to ban 64 | temporarily or permanently any member for other behaviors that they deem 65 | inappropriate, threatening, offensive, or harmful. 66 | 67 | ## Enforcement 68 | 69 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 70 | reported to the community admins responsible for enforcement at contact@bcneng.org and we will help you. 71 | 72 | All complaints will be reviewed and investigated promptly and fairly. 73 | 74 | All community admins are obligated to respect the privacy and security of the 75 | reporter of any incident. 76 | 77 | ## Enforcement Guidelines 78 | 79 | Community admins will follow these Community Impact Guidelines in determining 80 | the consequences for any action they deem in violation of this Code of Conduct: 81 | 82 | ### 1. Correction 83 | 84 | **Community Impact**: Use of inappropriate language or other behavior deemed 85 | unprofessional or unwelcome in the community. 86 | 87 | **Consequence**: A private, written warning from community admins, providing 88 | clarity around the nature of the violation and an explanation of why the 89 | behavior was inappropriate. A public apology may be requested. 90 | 91 | ### 2. Warning 92 | 93 | **Community Impact**: A violation through a single incident or series 94 | of actions. 95 | 96 | **Consequence**: A warning with consequences for continued behavior. No 97 | interaction with the people involved, including unsolicited interaction with 98 | those enforcing the Code of Conduct, for a specified period of time. This 99 | includes avoiding interactions in community spaces as well as external channels 100 | like social media. Violating these terms may lead to a temporary or 101 | permanent ban. 102 | 103 | ### 3. Temporary Ban 104 | 105 | **Community Impact**: A serious violation of community standards, including 106 | sustained inappropriate behavior. 107 | 108 | **Consequence**: A temporary ban from any sort of interaction or public 109 | communication with the community for a specified period of time. No public or 110 | private interaction with the people involved, including unsolicited interaction 111 | with those enforcing the Code of Conduct, is allowed during this period. 112 | Violating these terms may lead to a permanent ban. 113 | 114 | ### 4. Permanent Ban 115 | 116 | **Community Impact**: Demonstrating a pattern of violation of community 117 | standards, including sustained inappropriate behavior, harassment of an 118 | individual, or aggression toward or disparagement of classes of individuals. 119 | 120 | **Consequence**: A permanent ban from any sort of public interaction within 121 | the community. 122 | 123 | ## Language 124 | 125 | BcnEng doesn't have a default language. Everyone is free to use any language they prefer, as long as it is done with respect and following this code. 126 | We know it would be ideal to use a language that everyone understands, but we know that's impossible to achieve as most of our members speak Catalan and Spanish. 127 | We also know that a lot of members use English as a way to communicate, as it's considered a universal language, but we cannot and will not force anyone to study a foreign language and abandon their native language. 128 | 129 | ## Attribution 130 | 131 | This Code of Conduct is adapted from the [Contributor Covenant][contributor-covenant], 132 | version 2.0, available at 133 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html and portions of [Slack Developer Community Code of Conduct][slack-coc] 134 | 135 | Community Impact Guidelines were inspired by [Mozilla’s code of conduct 136 | enforcement ladder](https://github.com/mozilla/diversity). 137 | 138 | [contributor-covenant]: https://www.contributor-covenant.org 139 | [citizen-coc]: http://citizencodeofconduct.org 140 | [slack-coc]: https://api.slack.com/docs/community-code-of-conduct 141 | -------------------------------------------------------------------------------- /content/freelancers.html: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Freelancers" 3 | type: freelancers 4 | --- 5 | -------------------------------------------------------------------------------- /content/netiquette.md: -------------------------------------------------------------------------------- 1 | # BCN Engineering Netiquette 2 | 3 | Welcome to BcnEng's netiquette. 4 | 5 | This document can change over time. The administrators will publish its updates 6 | on the #general channel. To join this community you agree to it's contents. If 7 | you don't, you must logout and delete your account. 8 | 9 | You can propose improvements to this document by communicating them in the 10 | `#ask-staff` channel or [opening a pull request](https://github.com/bcneng/website/edit/master/content/netiquette.md). 11 | 12 | ## Definition 13 | 14 | From [wikipedia](https://en.wikipedia.org/wiki/Etiquette_in_technology#Netiquette): 15 | 16 | > Netiquette [...] is a set of social conventions that facilitate interaction over networks [...] 17 | 18 | ## Conventions 19 | 20 | Here you will find a set of basic conventions that we find useful. They are part of the set of behaviours that the community users expect from each other. Please make sure you understand all of them. Remember that you can write any question or ask for advice in our specific Slack channel #coc-netiquette 21 | 22 | ### Behaviour 23 | 24 | Be respectful with your colleagues and follow the [Code of Conduct](/coc/) rules. 25 | 26 | ### Accounts 27 | 28 | As a people-first slack organization, company accounts are not allowed. 29 | 30 | ### Content 31 | 32 | #### Best practices 33 | 34 | - Be specific when selecting in which channel to post, following our [channel guidelines](/channels) 35 | - Use threads when possible to keep the conversations organized. Don't send your replies to the channel unless there is a change of topic in the thread. 36 | - Pasting a random link sometimes does not add much value. Consider explaining why you did it. 37 | - Consider removing the link previews. 38 | - Use [reactions](https://slack.com/intl/en-es/help/articles/202931348-Use-emoji-and-reactions) to give a quick feedback. Writing _haha_, _jaja_, _XDDD_ or _lol_ does not contribute much. 39 | - Avoid sending the same message to multiple channels, also known as [crossposting](https://en.wikipedia.org/wiki/Crossposting). We like keeping things tidy. 40 | 41 | #### Bad practices 42 | 43 | Spam is not allowed in any channel. That includes: 44 | 45 | - Affiliates links 46 | - Job offers outside #hiring-job-board 47 | - Posting lots of messages (for our own definition of "lots") 48 | - Company advertising -- only fully open source initiatives are allowed, we don't want to be a platform for private companies to make money 49 | - Any service offering, including consultancy and others, except on the #contractors-freelancers channel. 50 | 51 | The administrators reserve the rights to: 52 | - Remove abusive and/or spam comments 53 | - Remove link previews for readability's sake 54 | 55 | The publisher will be contacted in any case. 56 | 57 | #### Hiring inquiries and other service offerings 58 | 59 | If you are providing services, including consultancy, recruiting or any other, you are not allowed to contact any member of this community, 60 | unless: 61 | 62 | - They have contacted you first, or 63 | - They have posted in some channel that they are explicitly looking for that kind of service 64 | 65 | If you provide recruiting services, the best way to get leads is to post a job offer at the #hiring-job-board channel and wait for people to contact you. 66 | If you provide recruiting services, you are not allowed to contact any member of this community that has posted a job offer, unless: 67 | 68 | - They have contacted you first, or 69 | - They have posted in some channel that they are explicitly looking for recruiting services 70 | 71 | In any other case, we will consider it spam and you will be banned. 72 | -------------------------------------------------------------------------------- /data/channels.json: -------------------------------------------------------------------------------- 1 | [{ 2 | "name": "general", 3 | "id": "C2Y6L58TX", 4 | "description": "BcnEng news from @team-staff.", 5 | "notes": "", 6 | "category": "core", 7 | "tags": ["default", "read-only"] 8 | }, 9 | { 10 | "name": "offtopic-random", 11 | "id": "C2Y6L596H", 12 | "description": "A place for non-work-related flimflam, faffing, hodge-podge or jibber-jabber you'd prefer to keep out of more focused work-related channels.", 13 | "notes": "Please don't use this channel to crosspost or write to reach more audience, since this is one of the larger channels.", 14 | "category": "core", 15 | "tags": ["default", "anonymous-enabled"] 16 | }, 17 | { 18 | "name": "ask-staff", 19 | "id": "C2YUDTUDD", 20 | "description": "Share your concerns and suggestions, ask the staff team and suggest changes to the community, channels or whatever topic you wish.", 21 | "notes": "For suggestions and discussions around job specs published at #hiring-job-board, please use https://github.com/bcneng/candebot/discussions/54", 22 | "category": "core", 23 | "tags": ["anonymous-enabled"] 24 | }, 25 | { 26 | "name": "welcome", 27 | "id": "C01DWLXFT45", 28 | "description": "Present yourself and what you do.", 29 | "notes": "Do not promote your company or that you are hiring, use #hiring-job-board instead.", 30 | "category": "core", 31 | "tags": ["default"] 32 | }, 33 | { 34 | "name": "show-and-tell", 35 | "id": "C36AD549X", 36 | "description": "Tell us about your side projects, new blog posts, podcasts, etc.", 37 | "notes": "Project updates should only come from fully open-source initiatives. Company contributions are allowed if they are completely open-source.", 38 | "category": "core", 39 | "tags": ["default"] 40 | }, 41 | { 42 | "name": "hiring-job-board", 43 | "id": "C30CUFT2B", 44 | "description": "Regular posting on this channel is not allowed. HOWTO post: https://bit.ly/how-to-submit-job-at-bcneng-slack. Offers must allow people to work from Barcelona or around. For deletion requests, #ask-staff", 45 | "notes": "", 46 | "category": "hr", 47 | "tags": ["default", "candebot-only", "anonymous-enabled"] 48 | }, 49 | { 50 | "name": "hiring-discussions", 51 | "id": "C46K8J00L", 52 | "description": "Conversations around hiring, companies, compensations, etc.", 53 | "notes": "Don't use it to post offers, use `#hiring-job-board` instead.", 54 | "category": "hr", 55 | "tags": ["default", "anonymous-enabled"] 56 | }, 57 | { 58 | "name": "contractors-freelancers", 59 | "id": "C6JH3Q69F", 60 | "description": "For freelancers and contractors to share experiences, tips, and advice.", 61 | "notes": "", 62 | "category": "hr", 63 | "tags": [] 64 | }, 65 | { 66 | "name": "offtopic-women", 67 | "id": "C31920P0U", 68 | "description": "Discusión para mujeres y gente no-binaria.", 69 | "notes": "", 70 | "category": "social", 71 | "tags": ["anonymous-enabled"] 72 | }, 73 | { 74 | "name": "offtopic-feeling-good", 75 | "id": "CLX4U7CTT", 76 | "description": "Share with non-tech that thing that makes you happy.", 77 | "notes": "The good brother of #offtopic-cryparty.", 78 | "category": "social", 79 | "tags": ["default", "anonymous-enabled"] 80 | }, 81 | { 82 | "name": "offtopic-cryparty", 83 | "id": "CBNPT2N13", 84 | "description": "Safe place to cry, you will never cry alone anymore.", 85 | "notes": "The evil brother of #offtopic-feeling-good.", 86 | "category": "social", 87 | "tags": ["default", "anonymous-enabled"] 88 | }, 89 | { 90 | "name": "offtopic-parenting", 91 | "id": "C365HB7JP", 92 | "description": "How to raise a child from the geek perspective.", 93 | "notes": "", 94 | "category": "social", 95 | "tags": ["anonymous-enabled"] 96 | }, 97 | { 98 | "name": "health-disability", 99 | "id": "C04KZ1AQDUM", 100 | "description": "Place for people who suffer any kind of disability or any disabling disease (autoimmune diseases, chronic fatigue, endometriosis, etc) to share doubts related to work (legal, HR, etc) but also share experiences, and empower each other.", 101 | "notes": "", 102 | "category": "social", 103 | "tags": ["anonymous-enabled"] 104 | }, 105 | { 106 | "name": "health-mental", 107 | "id": "C058RSSMVDZ", 108 | "description": "Share resources, experiences, and insights related to maintaining good mental health, managing stress, and finding balance in your personal and professional life.", 109 | "notes": "While this channel is a safe space, it is not a substitute for professional medical advice or therapy. If you are in need of immediate support, please reach out to a licensed mental health professional or a crisis helpline", 110 | "category": "social", 111 | "tags": ["anonymous-enabled"] 112 | }, 113 | { 114 | "name": "offtopic-foodies", 115 | "id": "C01NSSRQKA6", 116 | "description": "For those who enjoy food and drinks. Share your recipes!", 117 | "notes": "", 118 | "category": "social", 119 | "tags": [] 120 | }, 121 | { 122 | "name": "allyship", 123 | "id": "C47GSPZP0", 124 | "description": "For allies to discuss how to support underrepresented groups.", 125 | "notes": "", 126 | "category": "social", 127 | "tags": [] 128 | }, 129 | { 130 | "name": "candelario-fans", 131 | "id": "C5T322H6Z", 132 | "description": "Fans de @sdecandelario", 133 | "notes": "", 134 | "category": "social", 135 | "tags": [] 136 | }, 137 | { 138 | "name": "remote-workers", 139 | "id": "C42GY1WN5", 140 | "description": "For remote workers to share experiences, tips, and advice.", 141 | "notes": "", 142 | "category": "social", 143 | "tags": [] 144 | }, 145 | { 146 | "name": "remote-office-trips", 147 | "id": "C03PAJ8PT3N", 148 | "description": "#remote-workers spin-off. Sync with other remote workers to work from the same place.", 149 | "notes": "", 150 | "category": "social", 151 | "tags": [] 152 | }, 153 | { 154 | "name": "offtopic-virtual-coffee", 155 | "id": "C04HMBWN8SK", 156 | "description": "Meet via videocall other members of this community, automated by Donut.", 157 | "notes": "automated by https://www.donut.com", 158 | "category": "social", 159 | "tags": [] 160 | }, 161 | { 162 | "name": "offtopic-argentinxs-y-uruguayxs", 163 | "id": "CQEL7DTU4", 164 | "description": "Para los argentinos y uruguayos de la comunidad.", 165 | "notes": "", 166 | "category": "social", 167 | "tags": [] 168 | }, 169 | { 170 | "name": "systems-devops", 171 | "id": "C2WTP1ZMW", 172 | "description": "Everything related to systems and devops.", 173 | "notes": "", 174 | "category": "systems", 175 | "tags": [] 176 | }, 177 | { 178 | "name": "kubernetes", 179 | "id": "C4765QVQV", 180 | "description": "Talk about kubernetes container orchestration.", 181 | "notes": "", 182 | "category": "systems", 183 | "tags": [] 184 | }, 185 | { 186 | "name": "cloud-providers", 187 | "id": "C2YAEDL12", 188 | "description": "AWS, GCP, Azure, etc.", 189 | "notes": "", 190 | "category": "systems", 191 | "tags": [] 192 | }, 193 | { 194 | "name": "continuous-int-deploy", 195 | "id": "C30NMMVGV", 196 | "description": "CI/CD such as GHA, Jenkins, Travis, CircleCI", 197 | "notes": "", 198 | "category": "systems", 199 | "tags": [] 200 | }, 201 | { 202 | "name": "docker", 203 | "id": "C30K66ZJQ", 204 | "description": "Everything related to docker.", 205 | "notes": "", 206 | "category": "systems", 207 | "tags": [] 208 | }, 209 | { 210 | "name": "linux", 211 | "id": "C30LMS8AV", 212 | "description": "Topics such as distros, tools, etc.", 213 | "notes": "", 214 | "category": "systems", 215 | "tags": [] 216 | }, 217 | { 218 | "name": "learning-dev", 219 | "id": "CUV9CGPV4", 220 | "description": "Share resources, experiences, and insights related to learning and development. We encourage everyone to be respectful and supportive of one another as we navigate these important issues together.", 221 | "notes": "", 222 | "category": "soft-skills", 223 | "tags": [] 224 | }, 225 | { 226 | "name": "leadership", 227 | "id": "CJFA6LK7H", 228 | "description": "People and team management, leadership, etc.", 229 | "notes": "", 230 | "category": "soft-skills", 231 | "tags": [] 232 | }, 233 | { 234 | "name": "agile", 235 | "id": "C2XG59RPA", 236 | "description": "Share and promote best practises and experiences.", 237 | "notes": "", 238 | "category": "soft-skills", 239 | "tags": [] 240 | }, 241 | { 242 | "name": "documentation", 243 | "id": "C03B5DWEYNA", 244 | "description": "Let's talk about technical documentation, technical writing, and related topics.", 245 | "notes": "", 246 | "category": "soft-skills", 247 | "tags": [] 248 | }, 249 | { 250 | "name": "mentoring", 251 | "id": "CK583UPB5", 252 | "description": "All about mentoring, coaching, etc. You also can ask for mentorships.", 253 | "notes": "", 254 | "category": "soft-skills", 255 | "tags": [] 256 | }, 257 | { 258 | "name": "frontend-web", 259 | "id": "C2Y405X5X", 260 | "description": "Everything related to web development.", 261 | "notes": "", 262 | "category": "frontend", 263 | "tags": [] 264 | }, 265 | { 266 | "name": "ux-ui-design", 267 | "id": "C341M5N0N", 268 | "description": "Channel to talk about UX and UI Design.", 269 | "notes": "", 270 | "category": "frontend", 271 | "tags": [] 272 | }, 273 | { 274 | "name": "mobile", 275 | "id": "C3S8R077Z", 276 | "description": "Discussions around dev in iOS, android, phonegap/cordova, react-native...", 277 | "notes": "", 278 | "category": "frontend", 279 | "tags": [] 280 | }, 281 | { 282 | "name": "reactjs", 283 | "id": "C68BZFGLW", 284 | "description": "ReactJS, Redux, etc.", 285 | "notes": "", 286 | "category": "frontend", 287 | "tags": [] 288 | }, 289 | { 290 | "name": "vuejs", 291 | "id": "C7TB1LRHU", 292 | "description": "Vuejs Barcelona community", 293 | "notes": "", 294 | "category": "frontend", 295 | "tags": [] 296 | }, 297 | { 298 | "name": "flutter", 299 | "id": "CEV8ADZEW", 300 | "description": "All about Flutter and Dart", 301 | "notes": "", 302 | "category": "frontend", 303 | "tags": [] 304 | }, 305 | { 306 | "name": "gaming-dev", 307 | "id": "C326N62A1", 308 | "description": "Game development, game engines, game design, etc.", 309 | "notes": "", 310 | "category": "frontend", 311 | "tags": [] 312 | }, 313 | { 314 | "name": "lang-php-and-fws", 315 | "id": "C2WR8MND7", 316 | "description": "PHP, Laravel, Symfony, Zend, etc.", 317 | "notes": "", 318 | "category": "languages", 319 | "tags": [] 320 | }, 321 | { 322 | "name": "lang-python", 323 | "id": "C2YK3TKS9", 324 | "description": "Python community.", 325 | "notes": "", 326 | "category": "languages", 327 | "tags": [] 328 | }, 329 | { 330 | "name": "lang-jvm-based", 331 | "id": "C2X90Q96V", 332 | "description": "Talk about java, kotlin, scala, groovy, clojure, etc.", 333 | "notes": "", 334 | "category": "languages", 335 | "tags": [] 336 | }, 337 | { 338 | "name": "lang-rust", 339 | "id": "C2Y51T35H", 340 | "description": "Talk about the Rust programming language.", 341 | "notes": "", 342 | "category": "languages", 343 | "tags": [] 344 | }, 345 | { 346 | "name": "lang-ruby", 347 | "id": "C44DVPQ75", 348 | "description": "To talk about the Ruby programming language and related frameworks", 349 | "notes": "", 350 | "category": "languages", 351 | "tags": [] 352 | }, 353 | { 354 | "name": "lang-erlang-elixir", 355 | "id": "C2YFL3VQE", 356 | "description": "A good place to squeeze your poor brain.", 357 | "notes": "", 358 | "category": "languages", 359 | "tags": [] 360 | }, 361 | { 362 | "name": "lang-scala", 363 | "id": "C4FRBGNFJ", 364 | "description": "All about Scala", 365 | "notes": "", 366 | "category": "languages", 367 | "tags": [] 368 | }, 369 | { 370 | "name": "lang-dotnet", 371 | "id": "C3F6772RF", 372 | "description": "C#, F# and other dotnet based technologies.", 373 | "notes": "", 374 | "category": "languages", 375 | "tags": [] 376 | }, 377 | { 378 | "name": "lang-go", 379 | "id": "C2WR8BJ49", 380 | "description": ":gopherdance:", 381 | "notes": "", 382 | "category": "languages", 383 | "tags": [] 384 | }, 385 | { 386 | "name": "lang-js", 387 | "id": "C30TGE9E1", 388 | "description": "Javascript, Typescript, NodeJS, etc.", 389 | "notes": "", 390 | "category": "languages", 391 | "tags": [] 392 | }, 393 | { 394 | "name": "data-engineering", 395 | "id": "C5MG9PF0C", 396 | "description": "Data engineering, data pipelines, data lakes, data warehouses, etc.", 397 | "notes": "", 398 | "category": "others", 399 | "tags": [] 400 | }, 401 | { 402 | "name": "software-architecture", 403 | "id": "C2YL8GMAS", 404 | "description": "Discussions around software architecture and design. Distributed systems, Event-driven architecture, Event Sourcing. Design patterns, SOLID, Hexagonal architecture, DDD, CQRS, CQS, Event Sourcing, etc.", 405 | "notes": "", 406 | "category": "others", 407 | "tags": [] 408 | }, 409 | { 410 | "name": "product-management", 411 | "id": "C011UM61D4L", 412 | "description": "Product management, product ownership, product design, etc.", 413 | "notes": "", 414 | "category": "others", 415 | "tags": [] 416 | }, 417 | { 418 | "name": "ai-machine-learning", 419 | "id": "C2YN2J6P5", 420 | "description": "Everything related to AI and machine learning.", 421 | "notes": "", 422 | "category": "others", 423 | "tags": [] 424 | }, 425 | { 426 | "name": "unit-testing-tdd-bdd", 427 | "id": "C31GB13MM", 428 | "description": "Talk about unit testing, TDD, BDD, first test approach, baby steps...", 429 | "notes": "", 430 | "category": "others", 431 | "tags": [] 432 | }, 433 | { 434 | "name": "apis", 435 | "id": "CA2NZCUNS", 436 | "description": "Talk and share about APIs: REST, GraphQL, Event-Driven APIs, etc.", 437 | "notes": "", 438 | "category": "others", 439 | "tags": [] 440 | }, 441 | { 442 | "name": "blockchain", 443 | "id": "C4P3NBFKJ", 444 | "description": "Blockchain, bitcoin, ethereum, hyperledger and related stuff from a tech PoV.", 445 | "notes": "", 446 | "category": "others", 447 | "tags": [] 448 | }, 449 | { 450 | "name": "security-cryptography", 451 | "id": "C30JKJNA1", 452 | "description": "Channel to talk about security and cryptography (algos, hacks...)", 453 | "notes": "", 454 | "category": "others", 455 | "tags": [] 456 | }, 457 | { 458 | "name": "hardware", 459 | "id": "C393JKE01", 460 | "description": "All around computers, peripherals, etc. For home projects, you might want to check #offtopic-diy", 461 | "notes": "", 462 | "category": "others", 463 | "tags": [] 464 | }, 465 | { 466 | "name": "git", 467 | "id": "CDHS0G0QL", 468 | "description": "Git, GitHub, GitLab, Bitbucket, etc.", 469 | "notes": "", 470 | "category": "others", 471 | "tags": [] 472 | }, 473 | { 474 | "name": "cli-lovers", 475 | "id": "C2YEHT3TK", 476 | "description": "Rants and/or love about all kinds of shells (zsh, fish, bash, ash, sh)", 477 | "notes": "", 478 | "category": "others", 479 | "tags": [] 480 | }, 481 | { 482 | "name": "code-editors", 483 | "id": "C9XEGTR9T", 484 | "description": "Flame wars about code editors xD", 485 | "notes": "", 486 | "category": "others", 487 | "tags": [] 488 | }, 489 | { 490 | "name": "vim-editor", 491 | "id": "CTPF0SV71", 492 | "description": "a Channel to talk about emacs ;-), how to use vim as an IDE, minimize keystrokes, and many many more things :wq.", 493 | "notes": "", 494 | "category": "others", 495 | "tags": [] 496 | }, 497 | { 498 | "name": "qa-engineers", 499 | "id": "C60QGT4PL", 500 | "description": "QA's, Assemble!", 501 | "notes": "", 502 | "category": "others", 503 | "tags": [] 504 | }, 505 | { 506 | "name": "seo-marketing-online", 507 | "id": "C48GWJE94", 508 | "description": "Marketing Online: SEO, Linkbuilding, BlackHat SEO and WhiteHat SEO, WPO, AdSense, AdWords, CPA, Afiliación, Domains...", 509 | "notes": "", 510 | "category": "others", 511 | "tags": [] 512 | }, 513 | { 514 | "name": "advent-of-code", 515 | "id": "C02MSHJADQW", 516 | "description": "Discussion of everything related to https://adventofcode.com. Join the leaderboard at https://adventofcode.com/2021/leaderboard/private, code 1511301-4157a05d. You can also check the subreddit https://www.reddit.com/r/adventofcode/", 517 | "notes": "", 518 | "category": "others", 519 | "tags": [] 520 | }, 521 | { 522 | "name": "offtopic-housing", 523 | "id": "C06HVJT3MRV", 524 | "description": "Conversations about utility bills, home appliances, renovations, renting or buying houses", 525 | "notes": "", 526 | "category": "others", 527 | "tags": ["anonymous-enabled"] 528 | }, 529 | { 530 | "name": "events-meetups-confs", 531 | "id": "C2XEKMCC8", 532 | "description": "Share and promote events, meetups, conferences, etc.", 533 | "notes": "", 534 | "category": "events", 535 | "tags": ["default"] 536 | }, 537 | { 538 | "name": "offtopic-quedadas", 539 | "id": "C3Y63V7HS", 540 | "description": "Go to lunch, dinner or whatever, it's time to be social!. FYI, we use !here for notifications.", 541 | "notes": "", 542 | "category": "events", 543 | "tags": [] 544 | }, 545 | { 546 | "name": "event-scbcn", 547 | "id": "C04643X5129", 548 | "description": "https://softwarecrafters.barcelona", 549 | "notes": "", 550 | "category": "events", 551 | "tags": [] 552 | }, 553 | { 554 | "name": "offtopic-gaming", 555 | "id": "C4497F9CM", 556 | "description": "Gaming on any format. Videogames, Boardgames, etc.", 557 | "notes": "", 558 | "category": "non-tech", 559 | "tags": [] 560 | }, 561 | { 562 | "name": "offtopic-books", 563 | "id": "CU76P1KEU", 564 | "description": "Book recommendations. Tech or non-tech topic related. Enjoy reading. https://www.rtve.es/alacarta/videos/la-bola-de-cristal/bola-cristal-si-no-quieres-ser-como-estos-lee/646035", 565 | "notes": "", 566 | "category": "non-tech", 567 | "tags": [] 568 | }, 569 | { 570 | "name": "offtopic-mercadillo", 571 | "id": "CNF3UG589", 572 | "description": "Looking for something? Something to sell? Any referral/promo codes? Deal!", 573 | "notes": "", 574 | "category": "non-tech", 575 | "tags": [] 576 | }, 577 | { 578 | "name": "offtopic-economy-finance", 579 | "id": "C3FTGCVHA", 580 | "description": "Discuss about economy, finance, etc.", 581 | "notes": "", 582 | "category": "non-tech", 583 | "tags": [] 584 | }, 585 | { 586 | "name": "offtopic-travel", 587 | "id": "C03LJE17V3N", 588 | "description": "Talk about travels, ask questions, and give feedback or ideas for the next trip!", 589 | "notes": "", 590 | "category": "non-tech", 591 | "tags": [] 592 | }, 593 | { 594 | "name": "offtopic-diy", 595 | "id": "C03MBJL5JHJ", 596 | "description": "Do It Yourself: the things you do on your own, usually at home, without paying someone else to do it.", 597 | "notes": "", 598 | "category": "non-tech", 599 | "tags": [] 600 | }, 601 | { 602 | "name": "offtopic-music", 603 | "id": "C2YRZM7L6", 604 | "description": "Share your music taste: songs, clips, concerts, etc.", 605 | "notes": "", 606 | "category": "non-tech", 607 | "tags": [] 608 | }, 609 | { 610 | "name": "offtopic-science", 611 | "id": "CGCDC3117", 612 | "description": "", 613 | "notes": "", 614 | "category": "non-tech", 615 | "tags": [] 616 | }, 617 | { 618 | "name": "offtopic-pets", 619 | "id": "C015MD8V9RU", 620 | "description": "Share your pet's photos, videos, etc.", 621 | "notes": "", 622 | "category": "non-tech", 623 | "tags": [] 624 | }, 625 | { 626 | "name": "offtopic-movies-tv-shows", 627 | "id": "C63QQ84NB", 628 | "description": "Talk about movies and TV shows without spoilers!", 629 | "notes": "", 630 | "category": "non-tech", 631 | "tags": [] 632 | }, 633 | { 634 | "name": "offtopic-sports", 635 | "id": "CHY7U0PV2", 636 | "description": "Get out of the office! Let's do sport!", 637 | "notes": "", 638 | "category": "non-tech", 639 | "tags": [] 640 | }, 641 | { 642 | "name": "offtopic-plant-lovers", 643 | "id": "C010Q6694BV", 644 | "description": ":seedling: :sunflower: :deciduous_tree:", 645 | "notes": "", 646 | "category": "non-tech", 647 | "tags": [] 648 | }, 649 | { 650 | "name": "offtopic-photography", 651 | "id": "C437E7T38", 652 | "description": "Photography, cameras, lenses, techniques, etc.", 653 | "notes": "", 654 | "category": "non-tech", 655 | "tags": [] 656 | }, 657 | { 658 | "name": "offtopic-motorbikes", 659 | "id": "C01UEADU3LK", 660 | "description": "Binary Motor Club - Join us if you :heart: motorbikes", 661 | "notes": "", 662 | "category": "non-tech", 663 | "tags": [] 664 | }, 665 | { 666 | "name": "offtopic-cars", 667 | "id": "C063CQEDG8K", 668 | "description": "A place for petrolheads, to share all about our passion, :car: :dash:", 669 | "notes": "", 670 | "category": "non-tech", 671 | "tags": [] 672 | }, 673 | { 674 | "name": "offtopic-games-toys-lego", 675 | "id": "C055Y7XT2E4", 676 | "description": "Talk about games, board games, toys, figures, lego, and more", 677 | "notes": "", 678 | "category": "non-tech", 679 | "tags": [] 680 | }, 681 | { 682 | "name": "startups", 683 | "id": "C058FJ5FRFH", 684 | "description": "Conversations about startups, entrepreneurship, tech product development, fundraising, tech investors, sales, marketing, etc... Everything related to the tech startup ecosystem.", 685 | "notes": "Note this is not a channel to promote your company in any way. Any spam will be removed according to the CoC.", 686 | "category": "business", 687 | "tags": [] 688 | }, 689 | { 690 | "name": "krakend", 691 | "id": "C4EQ5M01Y", 692 | "description": "KrakenD is a high-performance API Gateway that provides a middle layer between the client apps and the backend services.", 693 | "notes": "", 694 | "category": "business", 695 | "tags": [] 696 | }, 697 | { 698 | "name": "is-it-down", 699 | "id": "C036V7VNPB3", 700 | "description": "Check or tell when a cloud service, website, or app is down. Requests for adding/removing feeds to #ask-staff. Sponsored by EagleStatus.io", 701 | "notes": "", 702 | "category": "automation", 703 | "tags": [] 704 | } 705 | ] 706 | -------------------------------------------------------------------------------- /data/freelancers.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "slack_name": "@iagolast", 4 | "slack_member_id": "UD10JMGUD", 5 | "full_name": "Iago Lastra", 6 | "web": "iagolast.github.io", 7 | "linkedin_handler": "iagolast", 8 | "services": "Consulting and training and development.", 9 | "skills": ["Frontend", "Testing", "Architecture", "TypeScript", "React"], 10 | "availability_hours_week": {"min": 1, "max": 4}, 11 | "pricing_model": "120€/h" 12 | }, 13 | { 14 | "slack_name": "@CarmenDelgado", 15 | "slack_member_id": "UEDFE7J07", 16 | "full_name": "Carmen Delgado", 17 | "web": "", 18 | "linkedin_handler": "carmenldelgadop", 19 | "services": "Consultancy for digital projects for startups, SME or non-profit.", 20 | "skills": ["Project Management", "Process optimization", "Finance"], 21 | "availability_hours_week": {"min": 2, "max": 8}, 22 | "pricing_model": "Depending on the project" 23 | }, 24 | { 25 | "slack_name": "@genisdiaz", 26 | "slack_member_id": "U486R9SNP", 27 | "full_name": "Genís Díaz", 28 | "web": "https://genisdiaz.com/", 29 | "linkedin_handler": "genisdiazfernandez", 30 | "services": "I help companies in their problems with websites giving support on the frontend side.", 31 | "skills": ["Reactjs", "Angularjs or Angular4+", "Nextjs", "GatsbyJS"], 32 | "availability_hours_week": {"min": 2, "max": 10}, 33 | "pricing_model": "Depending on the project" 34 | }, 35 | { 36 | "slack_name": "@David Levai", 37 | "slack_member_id": "U04Q711NPCK", 38 | "full_name": "David Levai", 39 | "web": "https://davidlevai.com/", 40 | "linkedin_handler": "iamdavidlevai", 41 | "services": "Mentoring developers to become freelancers, indie makers, and build better products.", 42 | "skills": ["Javascript", "Entrepreneurship", "Typescript", "Software Architecture", "UX", "SaaS"], 43 | "availability_hours_week": {"min": 2, "max": 6}, 44 | "pricing_model": "Short-term mentoring: 190€/h, long-term: unique" 45 | }, 46 | { 47 | "slack_name": "@Davide Barbato", 48 | "slack_member_id": "UD0CY34SG", 49 | "full_name": "Davide Barbato", 50 | "web": "https://dab.solutions/", 51 | "linkedin_handler": "davbarbato", 52 | "services": "I make your business innovate faster by performing real risk analysis, by deploying transparent security through automation, by fostering a culture where people feel empowered in keeping the company secure thanks to their direct contribution.", 53 | "skills": ["ISO27001", "Risk Management", "Penetration testing/Vulnerability Assessment", "SOC", "Vulnerability Management", "Incident Response", "DevSecOps"], 54 | "availability_hours_week": {"min": 2, "max": 8}, 55 | "pricing_model": "Depending on the service requested" 56 | }, 57 | { 58 | "slack_name": "@Xavi Ametller", 59 | "slack_member_id": "U01ND0NJAN9", 60 | "full_name": "Xavi Ametller", 61 | "web": "https://www.myowncommonsense.com/", 62 | "linkedin_handler": "xaviametller", 63 | "services": "Trainings and consultancy on multiple areas of Software development in general, expert in nothing but knowledgeable in many areas", 64 | "skills": ["Agile", "Testing", "Cloud", "Continuous Delivery", ".Net"], 65 | "availability_hours_week": {"min": 2, "max": 8}, 66 | "pricing_model": "Close rate" 67 | }, 68 | { 69 | "slack_name": "@Mikel Díez Buil ", 70 | "slack_member_id": "UR1V53P2T", 71 | "full_name": "Mikel Díez Buil ", 72 | "web": "https://www.mikeldiez.com/", 73 | "linkedin_handler": "mikeldiezb", 74 | "services": "Full-stack developer", 75 | "skills": ["Python", "React", "TypeScript", "Testing library", "Symfony"], 76 | "availability_hours_week": {"min": 2, "max": 8}, 77 | "pricing_model": "Hourly" 78 | }, 79 | { 80 | "slack_name": "@oriolsr", 81 | "slack_member_id": "UG0UZ9QH4", 82 | "full_name": "Oriol Saludes", 83 | "web": "", 84 | "linkedin_handler": "oriol-sr", 85 | "services": "Full-stack developer. Support to the frontend and the backend side. Help with the testing and refactoring of the code.", 86 | "skills": ["React", "Angular", "TypeScript", "PHP", "Symfony", "kotlin", "Spring boot"], 87 | "availability_hours_week": {"min": 2, "max": 20}, 88 | "pricing_model": "Depending on the service requested" 89 | }, 90 | { 91 | "slack_name": "@perezmarc", 92 | "slack_member_id": "U3H18MJF6", 93 | "full_name": "Marc Pérez Martí", 94 | "web": "", 95 | "linkedin_handler": "marcperezmarti", 96 | "services": "Product. Frontend developer. Backend developer. Full-stack developer. ", 97 | "skills": ["Jobs to be done", "Rodmapping", "Agile", "Vue", "Angular", "React", "Typescript", "Javascript", "Python", "Django", "Node", "SQL", "MongoDB"], 98 | "availability_hours_week": {"min": 2, "max": 10}, 99 | "pricing_model": "Depending on the service requested" 100 | }, 101 | { 102 | "slack_name": "@Sergio Campos", 103 | "slack_member_id": "U01U6401XMX", 104 | "full_name": "Sergio Campos", 105 | "web": "http://campossrg.com", 106 | "linkedin_handler": "campossrg", 107 | "services": "Java backend developer. Web developer.", 108 | "skills": ["Java", "Spring framework", "Oracle", "SQL Server", "Javascript", "CI/CD", "Docker"], 109 | "availability_hours_week": {"min": 2, "max": 30}, 110 | "pricing_model": "Hourly" 111 | }, 112 | { 113 | "slack_name": "@ppardalj", 114 | "slack_member_id": "U4RR870C8", 115 | "full_name": "Pedro Pardal", 116 | "web": "http://ppardalj.com/", 117 | "linkedin_handler": "ppardalj", 118 | "services": "Technical Agile Coach. I can help coaching good development practices and upskilling an entire team. Legacy project rescue.", 119 | "skills": ["Test Driven Development", "Clean Code", "Refactoring", "Legacy Code", ".NET", "ASP MVC", "Java", "Spring boot", "PHP", "Symfony", "CI/CD", "Mob programming"], 120 | "availability_hours_week": {"min": 2, "max": 20}, 121 | "pricing_model": "Hourly" 122 | }, 123 | { 124 | "slack_name": "@vicent", 125 | "slack_member_id": "U2YKVTT5L", 126 | "full_name": "Vicent Soria Durá", 127 | "web": "https://vicentsoria.com/", 128 | "linkedin_handler": "vicentsoria", 129 | "services": "Hybrid profile: Agile [ Developer | SysAdmin | CTO ]. I can help you with cloud migrations, infrastructure as code, scalability, observability, CI/CD pipelines, systems architecture, etc. Just ping me and let's talk.", 130 | "skills": ["IaC: Terraform, Cloudformation, Ansible, Packer, ...", "AWS", "Docker", "Go", "Python", "PHP", "Symfony", "Test Driven Development", "CI/CD: Jenkins, Travis, Github Actions, ..."], 131 | "availability_hours_week": {"min": 5, "max": 20}, 132 | "pricing_model": "Hourly / Depending on the service requested" 133 | }, 134 | { 135 | "slack_name": "@joan.albert ", 136 | "slack_member_id": "U015F98QXDW", 137 | "full_name": "Joan Albert Segura Rueda", 138 | "web": "https://joanalbert.me/", 139 | "linkedin_handler": "jalbertsr", 140 | "services": "Full-stack developer. I do trainings, and help building MVPs for pre-seed startups or small projects, from low-code solutions to building and setting up infrastructure and API integrations.", 141 | "skills": ["Javascript/Typescript", "React", "Node", "Python", "Elixir", "Docker", "Kubernetes", "AWS"], 142 | "availability_hours_week": {"min": 5, "max": 25}, 143 | "pricing_model": "Hourly" 144 | }, 145 | { 146 | "slack_name": "@vfondevilla", 147 | "slack_member_id": "UN6S9CCGH", 148 | "full_name": "Victor Fondevilla", 149 | "web": "https://fondevilla.io/", 150 | "linkedin_handler": "vfondevilla", 151 | "services": "Cloud Architect, AWS, OpenStack. I can help your team to implement DevOps practices.", 152 | "skills": ["Python", "Terraform", "Cloudformation", "Ansible", "AWS", "Docker", "Kubernetes", "Jenkins", "Gitlab"], 153 | "availability_hours_week": {"min": 2, "max": 25}, 154 | "pricing_model": "Hourly" 155 | }, 156 | { 157 | "slack_name": "@stefanmajiros", 158 | "slack_member_id": "U02379YCS92", 159 | "full_name": "Stefan Majiros", 160 | "web": "https://stefan-majiros.com/", 161 | "linkedin_handler": "stefan-majiros", 162 | "services": "Mobile developer: React Native and serverless. I develop mobile apps for Android and iOS with React Native that rely on native modules and that use serverless backend (AWS Amplify or Google Firebase). Looking for startups owners, CTOs or teamleads.", 163 | "skills": ["MVP", "Javascript/Typescript", "React Native", "NodeJS", "AWS", "Firebase", "Amplify", "Android", "serverless", "iOS", "Swift", "Kotlin", "Appstore", "GooglePlay"], 164 | "availability_hours_week": {"min": 8, "max": 60}, 165 | "pricing_model": "Hourly" 166 | }, 167 | { 168 | "slack_name": "@Jose Gomez", 169 | "slack_member_id": "UV3FZN8DT", 170 | "full_name": "Jose Gomez", 171 | "web": "", 172 | "linkedin_handler": "jmgomezg", 173 | "services": "Software engineering. Technical direction. Project management. AWS system architect.", 174 | "skills": ["AWS", "serverless", "iOS", "Android", "Node.js", "PHP", "MySQL", "NoSQL", "Angular", "Redux", "Jira", "Scrum", "Kanban"], 175 | "availability_hours_week": {"min": 5, "max": 20}, 176 | "pricing_model": "Hourly" 177 | }, 178 | { 179 | "slack_name": "@ronnylt", 180 | "slack_member_id": "U2XDM2L0G", 181 | "full_name": "Ronny López", 182 | "web": "", 183 | "linkedin_handler": "ronnylt", 184 | "services": "Software engineering. Technical direction. Technical leadership. Cloud architect. Technology advisor. Interim CTO. Technical co-founder.", 185 | "skills": ["AWS", "GCP", "Kubernetes", "Golang", "Typescript", "Architecture", "Software design", "Scalability" ], 186 | "availability_hours_week": {"min": 5, "max": 20}, 187 | "pricing_model": "Hourly" 188 | }, 189 | { 190 | "slack_name": "@Javier Molpeceres", 191 | "slack_member_id": "U027AAP0VV4", 192 | "full_name": "Javier Molpeceres", 193 | "web": "", 194 | "linkedin_handler": "javier-molpeceres-gómez", 195 | "services": "Full-stack development, Architecture definition, Cloud, Software engineering", 196 | "skills": ["Node","Typescript", "React", "AWS", "Golang", "Business requirements","Python", "CI/CD", "SQL-NOSQL", "Architecture", "Microservices" ], 197 | "availability_hours_week": {"min": 5, "max": 20}, 198 | "pricing_model": "Hourly" 199 | }, 200 | { 201 | "slack_name": "@Guillermo de la Puente", 202 | "slack_member_id": "U03FJ960U12", 203 | "full_name": "Guillermo de la Puente", 204 | "web": "https://guillermodlpa.com", 205 | "linkedin_handler": "guillermodlpa", 206 | "services": "Frontend developer, full-stack developer, MVPs for startups, maintenance and bug fixing on web apps, performance improvements, design system implementations, team and project management.", 207 | "skills": ["TypeScript / JavaScript", "React", "Node", "Next.js", "Node frameworks (Express, Koa)", "State management (React Query, Redux, etc.)", "AWS", "Serverless platforms (Firebase, Supabase, Vercel, etc.)", "Databases (MySQL, PostgreSQL, MongoDB, Firestore, etc.)", "Automated testing (Jest, TDD)", "CI/CD" ], 208 | "availability_hours_week": {"min": 3, "max": 30}, 209 | "pricing_model": "Hourly / Depending on the service requested" 210 | }, 211 | { 212 | "slack_name": "@JordiPallares", 213 | "slack_member_id": "U4NSD5Z5F", 214 | "full_name": "Jordi Pallarés", 215 | "web": "", 216 | "linkedin_handler": "jordi-pallares", 217 | "services": "Software engineering. MVPs for startups. Technical leadership. Performance improvements. Cloud architect. Technology advisor.", 218 | "skills": ["Architecture", "AWS (EC2, RDS, CloudFront, Lambda, S3, Cloudformation...)", "CI/CD: Github Actions", "Databases (MySQL, PostgreSQL, MongoDB and InfluxDB)", "Docker", "Flutter (iOS and Android)", "Golang", "Javascript/Typescript", "Microservices", "MVP", "PHP (Laravel and Symfony)", "Scalability", "Software design"], 219 | "availability_hours_week": {"min": 2, "max": 15}, 220 | "pricing_model": "Hourly / Depending on the service requested" 221 | }, 222 | { 223 | "slack_name": "@mmanzano", 224 | "slack_member_id": "U6A845RPY", 225 | "full_name": "Miguel Manzano García", 226 | "web": "https://mmanzano.com/en", 227 | "linkedin_handler": "miguelmanzano", 228 | "services": "Backend Development. Software crafter. Testing. Continuous Learning. Love Frontend.", 229 | "skills": ["Laravel", "Laravel Vapor (AWS Lambda)", "Github Actions for testing and deploy", "Databases (MySQL)", "Docker", "Javascript/Typescript", "MVP", "PHP (Laravel)", "Performance with SQL or PHP itself"], 230 | "availability_hours_week": {"min": 15, "max": 30}, 231 | "pricing_model": "Depending on the service requested" 232 | }, 233 | { 234 | "slack_name": "@JuanPabloVazquez", 235 | "slack_member_id": "U04EGDXUD5K", 236 | "full_name": "Juan Pablo Vazquez", 237 | "web": "", 238 | "linkedin_handler": "juan-pablo-vazquez-sampere", 239 | "services": "Experienced hands-on software developer. +10 years of expertise in development operations. From concept definition to implementation in production. Focused on creating intelligent solutions that consumers are willing to pay for", 240 | "skills": ["Blockchain", "Python", "Solidity", "Django", "JavaScript", "React", "TypeScript", "Node", "Nextjs"], 241 | "availability_hours_week": {"min": 5, "max": 40}, 242 | "pricing_model": "Can be per hour, per day or per project" 243 | }, 244 | { 245 | "slack_name": "@Rubén Rubio", 246 | "slack_member_id": "U01RXMMNKD3", 247 | "full_name": "Rubén Rubio", 248 | "web": "https://rubenrubiob.github.io/", 249 | "linkedin_handler": "rubenrubiob", 250 | "services": "PHP consultancy: legacy decoupling, best practices, performance and optimization, event-driven architectures, testing", 251 | "skills": ["PHP", "hexagonal architecture", "Event-Driven", "Testing", "DDD", "scalability", "trainings"], 252 | "availability_hours_week": {"min": 10, "max": 30}, 253 | "pricing_model": "Hourly / Depending on the service requested" 254 | }, 255 | { 256 | "slack_name": "@Aleix Morgadas", 257 | "slack_member_id": "U36SJR3FC", 258 | "full_name": "Aleix Morgadas", 259 | "web": "https://aleixmorgadas.dev", 260 | "linkedin_handler": "aleixmorgadas", 261 | "services": "I’m a independent software consultant with more than 10 years of experience in the software industry.", 262 | "skills": ["DDD", "TeamTopologies", "Wardley Maps", "Architecture"], 263 | "availability_hours_week": {"min": 10, "max": 30}, 264 | "pricing_model": "Hourly / Depending on the service requested" 265 | }, 266 | { 267 | "slack_name": "@Asiel", 268 | "slack_member_id": "U06AYS0A4F7", 269 | "full_name": "Asiel Leal Celdeiro", 270 | "web": "https://github.com/lealceldeiro", 271 | "linkedin_handler": "lealceldeiro", 272 | "services": "Software/Backend Development", 273 | "skills": ["Java", "SQL", "Spring Boot", "JUnit", "Mockito", "Hibernate", "Maven", "Gradle", "Git", "TDD", "OOP", "Design Patterns", "REST", "BDD"], 274 | "availability_hours_week": {"min": 10, "max": 30}, 275 | "pricing_model": "Hourly | Milestones | Fixed price" 276 | }, 277 | { 278 | "slack_name": "@Andreu Correa Casablanca", 279 | "slack_member_id": "U05CMHUDLVD", 280 | "full_name": "Andres Correa Casablanca", 281 | "web": "https://blog.coderspirit.xyz/about/", 282 | "linkedin_handler": "castarco", 283 | "services": "Software Development (Web Fullstack, specialised on Backend); Architecture definition; Performance; Security Hardening; Code Review; Refactoring.", 284 | "skills": ["JavaScript", "TypeScript", "PHP", "Python", "Rust", "Node", "PostgreSQL", "MySQL", "gRPC", "GraphQL", "Docker", "Kubernetes", "GCP", "AWS", "Microservices", "CI/CD", "TDD", "DDD", "Architecture"], 285 | "availability_hours_week": {"min": 1, "max": 16}, 286 | "pricing_model": "Hourly (from 70€ to 120€/h, better rates for bigger projects)" 287 | }, 288 | { 289 | "slack_name": "@Jose Valderrama", 290 | "slack_member_id": "U06K4LTR1NV", 291 | "full_name": "José Valderrama", 292 | "web": "https://github.com/JValderramaN", 293 | "linkedin_handler": "josevalderrama92", 294 | "services": "10+ years SwiftUI | iOS iPadOS macOS watchOS tvOS visionOS", 295 | "skills": ["Swift", "Objective-C", "UIKit", "SwiftUI", "Async/Await", "Combine", "RxSwift", "CI/CD", "TDD", "Architecture"], 296 | "availability_hours_week": {"min": 1, "max": 40}, 297 | "pricing_model": "Hourly | Milestones | Fixed price" 298 | }, 299 | { 300 | "slack_name": "@Carlos López", 301 | "slack_member_id": "U06RYMRARPH", 302 | "full_name": "Carlos López Gil", 303 | "web": "https://jcarloslopez.com", 304 | "linkedin_handler": "jcarloslopezgil", 305 | "services": "Full-stack development, Software engineering. MVPs for startups", 306 | "skills": ["Node", "React", "Ruby on Rails", "AWS", "Docker", "MongoDB", "PostgreSQL", "Terraform", "Microservices", "JavaScript", "Typescript", "Tailwind"], 307 | "availability_hours_week": {"min": 2, "max": 40}, 308 | "pricing_model": "Depending on the service requested" 309 | }, 310 | { 311 | "slack_name": "@Aleksander Wennersteen", 312 | "slack_member_id": "U072GGB66NR", 313 | "full_name": "Aleksander Wennersteen", 314 | "web": "http://awennersteen.com", 315 | "linkedin_handler": "awennersteen", 316 | "services": "Software engineering, prototyping, tech lead. AI/machine learning in production. Startup and scaleup experience.", 317 | "skills": ["Python", "FastAPI", "PyTorch", "JAX", "GPU", "AWS", "Terraform", "K8s"], 318 | "availability_hours_week": {"min": 1, "max": 16}, 319 | "pricing_model": "Hourly, depending on the service requested. Exceptionally fixed price." 320 | }, 321 | { 322 | "slack_name": "@Sara", 323 | "slack_member_id": "U06C305TTBR", 324 | "full_name": "Sara Víctor", 325 | "web": "", 326 | "linkedin_handler": "saravictorfernandez", 327 | "services": "Mobile Application and React development services", 328 | "skills": ["Frontend", "Testing", "Architecture", "TypeScript", "React", "Android", "iOS", "Java", "Kotlin", "Mobile Apps"], 329 | "availability_hours_week": {"min": 1, "max": 8}, 330 | "pricing_model": "Hourly | Milestones | Fixed price" 331 | }, 332 | { 333 | "slack_name": "@mrgnw", 334 | "slack_member_id": "U060PKAGW4S", 335 | "full_name": "Morgan Williams", 336 | "web": "https://morganwill.com", 337 | "linkedin_handler": "mrgnw", 338 | "services": "Full-stack data & software engineering: data architectures, API's, web sites", 339 | "skills": ["Data", "Backend", "Python", "PostgreSQL", "ETL", "Docker", "Dagster", "FastAPI", "Svelte"], 340 | "availability_hours_week": {"min": 1, "max": 30}, 341 | "pricing_model": "Hourly | Weekly | Milestones" 342 | }, 343 | { 344 | "slack_name": "@Sergi Olives", 345 | "slack_member_id": "U0574E8P339", 346 | "full_name": "Sergi Olives", 347 | "web": "https://www.linkedin.com/in/sergiolives/", 348 | "linkedin_handler": "sergiolives", 349 | "services": "Consulting, Software Engineering, Agile Coaching and Training.", 350 | "skills": ["Fullstack", "Testing", "Java", "Spring", "React"], 351 | "availability_hours_week": {"min": 1, "max": 20}, 352 | "pricing_model": "50€/h | Variable depending on project length" 353 | }, 354 | { 355 | "slack_name": "@ber2", 356 | "slack_member_id": "U01AJL86W84", 357 | "full_name": "Alberto Camara", 358 | "web": "https://ber2.github.io/", 359 | "linkedin_handler": "alberto-camara", 360 | "services": "Data Science, ML Engineering, Data Visualization & Storytelling, NLP, Deep Learning, Bayesian Inference", 361 | "skills": ["Data", "Python", "Scikit-learn", "Tensorflow", "Torch", "Pandas", "Polars", "Scala", "Apache Spark", "SQL"], 362 | "availability_hours_week": {"min": 1, "max": 20}, 363 | "pricing_model": "Hourly | Weekly | Milestones" 364 | } 365 | ] 366 | -------------------------------------------------------------------------------- /layouts/_default/_markup/render-link.html: -------------------------------------------------------------------------------- 1 | {{ .Text }} -------------------------------------------------------------------------------- /layouts/channels/single.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ partial "head.html" . }} 5 | 6 | 7 | 8 | {{ partial "header.html" . }} 9 |
10 |

Channels

11 | 12 |
13 |
14 |

15 | With around 10.000 members, channels are essential for structuring content. 16 |

17 | 18 |

19 | We expect from the members of the community to write their messages in the 20 | appropiate channel, and the staff team and other community champions will help 21 | in that regard. 22 |

23 | 24 |

25 | Read our netiquette to learn which content is not allowed. 26 |

27 | 28 |

29 | As a rule of thumb, the more specific the channel the better. So please, 30 | before posting in #offtopic-random, look twice for another channel. 31 |

32 | 33 |

34 | Note: you can propose improvements to this document by communicating them in the 35 | #ask-staff channel or opening a pull request 36 |

37 |
38 |
39 | 40 |

Index by category

41 |

In the channel index you can find the one that best suits your 42 | needs.

43 | 44 |

Some of them are tagged with the following tags: 45 |

51 |

52 | 53 |

Clicking on a channel will open it in the Slack app.

54 | 55 | {{ partial "channels_list.html" . }} 56 |
57 | 58 | {{ partial "footer.html" . }} 59 | {{ partial "foot.html" . }} 60 | 61 | {{ template "_internal/google_analytics.html" . }} 62 | 63 | 64 | -------------------------------------------------------------------------------- /layouts/freelancers/single.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {{ partial "head.html" . }} 5 | 6 | 7 | 8 | {{ partial "header.html" . }} 9 |
10 |

Find contractors or freelancers from our community

11 |
12 |
13 |

Looking for someone else? Join the #contractors-freelancers channel.
14 | Looking for gigs? Learn #how to add yourself to the table. 15 |

16 |
17 |
18 |
19 |
20 | {{ partial "freelancers_list.html" . }} 21 |
22 |
23 |
24 |
25 |
How to
26 |
    27 |
  • Locate your Slack member ID.
  • 28 |
  • Edit and fill your data at the data source file at GitHub. Create a pull request.
  • 29 |
  • Your PR will be validated by the staff team. Once merged, your data will appear in the list.
  • 30 |
  • For any Q&A, join #ask-staff.
  • 31 |
32 |
33 |
34 |
35 | 36 | {{ partial "footer.html" . }} 37 | {{ partial "foot.html" . }} 38 | 39 | {{ template "_internal/google_analytics.html" . }} 40 | 41 | 42 | -------------------------------------------------------------------------------- /layouts/index.html: -------------------------------------------------------------------------------- 1 | {{ define "main" }} 2 |
3 | 4 |
5 |
6 | {{- with .Site.Params.homepageImage -}} 7 |
8 | 9 | 10 |
11 | 12 |
13 | 14 | {{- end -}} 15 | 16 |

{{ .Site.Title }}

17 |

We are an online community established by and for the software engineering professionals in Barcelona and surronding areas.

18 |

Our mission is to elevate Barcelona into a leading global hub for technology and innovation.

19 |

20 | 21 | 22 | 23 |

24 |

Please make sure to read:

25 | 30 | 31 |

Freelancers

32 | If you are seeking IT services, please consult our freelancers database where you will 34 | find skilled individuals from our community capable of supporting your project requirements. 35 | 36 |

Sponsorship

37 |

As a non-profit organization, we welcome financial support through Open Collective. 38 |

39 | 40 | 41 | 42 |

43 |

Thanks to the following individuals for contributing to BcnEng:

44 | 45 | 46 | 47 |

Community Projects

48 |
49 | 50 | Step4ward logo 51 | 52 |
53 | Step4ward is an initiative by experienced tech sector mentors in Spain, focused on assisting women in commencing or advancing their technology careers. Founded by women, for women, this program has been operational since May 2021.

54 |

Thanks to the following individuals for contributing to Step4ward:

55 | 56 | 57 |

Exterprise Sponsors

58 |

We extend our gratitude to these organizations for their support.

59 | 76 |
77 |
78 | 79 | 80 | {{- range first 1 (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) -}} 81 | {{ $page := . }} 82 |
83 |
84 | {{- with $page.Params.images -}} 85 | {{- $images := . -}} 86 | {{- with $page.Site.GetPage "section" "images" -}} 87 | {{- with .Resources.GetMatch (strings.TrimPrefix "/images/" (index $images 0)) -}} 88 | {{- $image := .Fill "700x450" -}} 89 | 90 | {{ $page.Title }} 91 | 92 | {{- end -}} 93 | {{- end -}} 94 | {{- end -}} 95 |
96 |
97 |
{{ $page.Date.Format "January 2, 2006" }}
98 |

{{ $page.Title }}

99 | 100 |
101 | {{ $page.Summary }} 102 |
103 |
104 |
105 | {{- end -}} 106 | 107 | 108 |
109 | {{ range after 1 (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }} 110 |
111 | {{ .Render "card" }} 112 |
113 | {{ end }} 114 |
115 |
116 | {{ end }} 117 | -------------------------------------------------------------------------------- /layouts/partials/channels_list.html: -------------------------------------------------------------------------------- 1 | {{ $latestCategory := "" }} 2 | {{ range $.Site.Data.channels }} 3 | {{ if ne .category $latestCategory }} 4 | {{ if $latestCategory }} 5 | 6 | 7 | 8 | {{ end }} 9 |
{{ .category | title }}
10 |
11 |
12 |
13 | {{ end }} 14 |
15 |
# {{ .name }}
16 |
{{ .description }}
17 |
{{ .notes }}
18 |
19 | {{ range .tags }} 20 | {{ . }}
21 | {{ end }} 22 |
23 |
24 | {{ $latestCategory = .category }} 25 | {{ end }} 26 | -------------------------------------------------------------------------------- /layouts/partials/footer.html: -------------------------------------------------------------------------------- 1 |
2 |
3 |
4 |
5 |
    6 | {{ if .Site.Params.social.rss -}} 7 |
  • 8 | {{- with .Site.GetPage "" -}} 9 | {{- with .OutputFormats.Get "RSS" -}} 10 | 11 | 12 | 13 | 14 | 15 | 16 | {{- end -}} 17 | {{- end -}} 18 |
  • 19 | {{- end -}} 20 | {{- if .Site.Params.social.email -}} 21 |
  • 22 | 23 | 24 | 25 | 26 | 27 | 28 |
  • 29 | {{- end -}} 30 | {{- range $name, $path := .Site.Params.social -}} 31 | {{- if and $path (not (in (slice "rss" "email") $name)) -}} 32 |
  • 33 | 34 | 35 | 36 | 37 | 38 | 39 |
  • 40 | {{- end -}} 41 | {{- end }} 42 |
43 | 44 |

45 | {{ if .Site.Copyright }} 46 | {{ .Site.Copyright | safeHTML }} 47 | {{ else }} 48 | Copyright © {{ .Site.Title }} {{ now.Year }} 49 | {{ end }} 50 |

51 | 52 |

53 | Powered by Hugo with Chunky Poster. 54 |

55 |
56 |
57 |
58 |
59 | 94 | -------------------------------------------------------------------------------- /layouts/partials/freelancers_list.html: -------------------------------------------------------------------------------- 1 |
2 | {{ range $.Site.Data.freelancers }} 3 |
4 |
{{ .full_name }} — {{ .slack_name }} 5 |
6 |
{{ .services }}
7 |
8 | {{ range .skills }} 9 | {{ . }} 10 | {{ end }} 11 |
12 |
13 | ⏲ 14 | Min:{{ .availability_hours_week.min }}h/week — 15 | Max:{{ .availability_hours_week.max }}h/week 16 |
17 |
€ Pricing: {{ .pricing_model }}
18 | 40 |
41 | {{ end }} 42 |
43 | -------------------------------------------------------------------------------- /layouts/partials/header.html: -------------------------------------------------------------------------------- 1 | {{ $current := . }} 2 | 22 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "public" 3 | command = "hugo" 4 | [context.deploy-preview.environment] 5 | HUGO_VERSION = "0.147.6" 6 | [context.production.environment] 7 | HUGO_VERSION = "0.147.6" 8 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | BCN Engineering 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 76 | 77 | 78 | 79 |
80 | 81 |
82 |
83 | 84 | 85 |
86 | 87 |

BCN Engineering

88 |

We are an online community established by and for the software engineering professionals in Barcelona and surronding areas.

89 |

Our mission is to elevate Barcelona into a leading global hub for technology and innovation.

90 |

91 | 92 | 93 | 94 |

95 |

Please make sure to read:

96 | 101 | 102 |

Freelancers

103 | If you are seeking IT services, please consult our freelancers database where you will 105 | find skilled individuals from our community capable of supporting your project requirements. 106 | 107 |

Sponsorship

108 |

As a non-profit organization, we welcome financial support through Open Collective.

109 |

The following individuals have contributed to BcnEng:

110 | 111 | 112 |

Community Projects

113 |
114 | 115 | Step4ward logo 116 | 117 |
118 | Step4ward is an initiative by experienced tech sector mentors in Spain, focused on assisting women in commencing or advancing their technology careers. Founded by women, for women, this program has been operational since May 2021.

119 |

The following individuals have contributed to Step4ward:

120 | 121 | 122 |

Exterprise Sponsors

123 |

We extend our gratitude to these organizations for their support.

124 | 141 |
142 |
143 | 144 | 145 |
146 | 147 |
148 |
149 | 150 | 151 | 205 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | -------------------------------------------------------------------------------- /static/css/channels.css: -------------------------------------------------------------------------------- 1 | .channel_name { 2 | font-family: "Teko", sans-serif; 3 | text-transform: uppercase; 4 | letter-spacing: 0.02em; 5 | color: #444; 6 | } 7 | 8 | .tablewrapper { 9 | display: flex; 10 | flex-wrap: wrap; 11 | } 12 | 13 | .card { 14 | cursor: pointer; 15 | width: 345px; 16 | background-color: #fafafa; 17 | margin: 0 1em 1em 0; 18 | padding: 1em; 19 | } 20 | 21 | .card:hover { 22 | box-shadow: 0 0 11px rgba(33,33,33,.2); 23 | } 24 | 25 | @media (min-width: 768px) and (max-width: 1024px) { 26 | .card { 27 | width: 327px; 28 | } 29 | } 30 | @media (max-width: 575px) { 31 | .tablewrapper { 32 | justify-content: center; 33 | } 34 | .card { 35 | margin: 0 0 1em 0; 36 | } 37 | } 38 | 39 | .card__name { 40 | font-family: "Teko", sans-serif; 41 | text-transform: uppercase; 42 | letter-spacing: 0.02em; 43 | color: #444; 44 | } 45 | 46 | .card__description { 47 | margin: 0.33em 0; 48 | font-size: 0.9em; 49 | } 50 | 51 | .card__notes { 52 | margin: 0.33em 0; 53 | font-size: 0.9em; 54 | font-style: italic; 55 | } 56 | 57 | .card__tags { 58 | margin-bottom: 0.33em; 59 | } 60 | 61 | .card__core { 62 | border: 1px solid #3c979a; 63 | border-left: 12px solid #3c979a; 64 | } 65 | .card__hr { 66 | border: 1px solid #a3e6c1; 67 | border-left: 12px solid #a3e6c1; 68 | } 69 | .card__social { 70 | border: 1px solid #bad99a; 71 | border-left: 12px solid #bad99a; 72 | } 73 | .card__tech { 74 | border: 1px solid #ebcb73; 75 | border-left: 12px solid #ebcb73; 76 | } 77 | .card__events { 78 | border: 1px solid #FFDCB6; 79 | border-left: 12px solid #FFDCB6; 80 | } 81 | .card__languages { 82 | border: 1px solid #f5b840; 83 | border-left: 12px solid #f5b840; 84 | } 85 | .card__business { 86 | border: 1px solid #e68d2d; 87 | border-left: 12px solid #e68d2d; 88 | } 89 | .card__non-tech { 90 | border: 1px solid #5f7847; 91 | border-left: 12px solid #5f7847; 92 | } 93 | .card__automation { 94 | border: 1px solid #3c979a; 95 | border-left: 12px solid #3c979a; 96 | } 97 | .card__frontend { 98 | border: 1px solid #19A7CE; 99 | border-left: 12px solid #19A7CE; 100 | } 101 | .card__systems { 102 | border: 1px solid #643A6B; 103 | border-left: 12px solid #643A6B; 104 | } 105 | .card__soft-skills { 106 | border: 1px solid #146C94; 107 | border-left: 12px solid #146C94; 108 | } 109 | .card__others { 110 | border: 1px solid #E49393; 111 | border-left: 12px solid #E49393; 112 | } 113 | 114 | .tag { 115 | font-size: 0.8em; 116 | border: 1px solid #666; 117 | border-radius: 5px; 118 | padding: 0.2em 0.4em; 119 | background-color: #f1f1f1; 120 | } 121 | -------------------------------------------------------------------------------- /static/css/custom.css: -------------------------------------------------------------------------------- 1 | html { 2 | background: linear-gradient(to bottom, #333333 50%, #ffffff 50%); 3 | } 4 | 5 | .homepage-image { 6 | position: relative; 7 | overflow: hidden; 8 | } 9 | 10 | .homepage-image img { 11 | -webkit-box-reflect: below -70px linear-gradient(transparent, transparent, rgba(0, 0, 0, 0.1)); 12 | } 13 | .homepage h1, 14 | .homepage h2, 15 | .homepage h3 { 16 | margin-bottom: 0.75rem; 17 | } 18 | .homepage h3 { 19 | margin-top: 2.5rem; 20 | } 21 | .link-list { 22 | margin-top: -1rem; 23 | } 24 | p, 25 | li { 26 | line-height: 1.7em; 27 | } 28 | 29 | @media (min-width: 992px) { 30 | .homepage h1 { 31 | display: inline-block; 32 | background-color: #333; 33 | color: white; 34 | padding: 0.2em 0.4em 0 0.3em; 35 | margin-bottom: 0.5em; 36 | } 37 | 38 | .homepage-image { 39 | position: relative; 40 | float: right; 41 | right: 0; 42 | width: 400px; 43 | } 44 | .homepage-image img { 45 | -webkit-box-reflect: below -39px linear-gradient(transparent, transparent, rgba(0, 0, 0, 0.1)); 46 | } 47 | } 48 | @media (max-width: 991px) { 49 | .homepage-image { 50 | max-width: 55%; 51 | margin: 0 auto; 52 | padding-bottom: 20px; 53 | } 54 | .homepage-image img { 55 | -webkit-box-reflect: below -39px linear-gradient(transparent, transparent, rgba(0, 0, 0, 0.1)); 56 | } 57 | } 58 | @media (max-width: 575px) { 59 | body { 60 | font-size: 1.05rem; 61 | } 62 | p { 63 | line-height: 1.6em; 64 | } 65 | .homepage h1 { 66 | text-align: center; 67 | } 68 | .homepage-image img { 69 | -webkit-box-reflect: below -15px linear-gradient(transparent, transparent, rgba(0, 0, 0, 0.1)); 70 | } 71 | .button-wrapper { 72 | display: flex; 73 | justify-content: center; 74 | } 75 | } 76 | 77 | .homepage h1, 78 | .homepage h2, 79 | .homepage h3 { 80 | font-family: "Teko", sans-serif; 81 | text-transform: uppercase; 82 | letter-spacing: -0.03em; 83 | } 84 | 85 | .avatar { 86 | width: 180px; 87 | margin: 5px 10px; 88 | } 89 | .avatar a img { 90 | border-radius: 50%; 91 | border: 6px solid #dedede; 92 | } 93 | 94 | .open-collective, 95 | .open-collective::before { 96 | display: inline-block; 97 | box-sizing: border-box; 98 | border-radius: 22px; 99 | } 100 | .open-collective { 101 | position: relative; 102 | transform: scale(var(--ggs, 1)) translate(3px, 2.5px); 103 | width: 18px; 104 | height: 18px; 105 | border: 3px solid; 106 | border-right-color: transparent; 107 | } 108 | .open-collective::before { 109 | content: ""; 110 | position: absolute; 111 | width: 14px; 112 | height: 14px; 113 | border: 3px solid transparent; 114 | border-right: 3px solid; 115 | top: -1px; 116 | right: -3px; 117 | opacity: 0.5; 118 | } 119 | 120 | .opencollective-banner { 121 | display: flex; 122 | justify-content: left; 123 | margin: 0px 0 -50px 0; 124 | } 125 | .opencollective-banner iframe { 126 | width: 100%; 127 | } 128 | @media (max-width: 575px) { 129 | .opencollective-banner { 130 | display: block; 131 | margin: 0 0 -50px 0; 132 | } 133 | .opencollective-banner iframe { 134 | width: 100%; 135 | } 136 | } 137 | 138 | .sponsor-logos { 139 | display: flex; 140 | flex-wrap: wrap; 141 | } 142 | .sponsor-logos a { 143 | display: flex; 144 | align-items: center; 145 | justify-content: center; 146 | } 147 | 148 | .sponsor-logo-image { 149 | width: 200px; 150 | margin: 0 75px 25px 0; 151 | } 152 | 153 | @media (max-width: 575px) { 154 | .sponsor-logos { 155 | justify-content: center; 156 | } 157 | .sponsor-logo-image { 158 | margin: 0 0 25px 0; 159 | } 160 | } 161 | 162 | 163 | .project-logos { 164 | display: flex; 165 | flex-wrap: wrap; 166 | } 167 | .project-logos a { 168 | display: flex; 169 | align-items: center; 170 | justify-content: center; 171 | } 172 | 173 | .project-logo-image { 174 | width: 200px; 175 | margin: 0 75px 25px 0; 176 | } 177 | 178 | @media (max-width: 575px) { 179 | .project-logos { 180 | justify-content: center; 181 | } 182 | .project-logo-image { 183 | margin: 0 0 25px 0; 184 | } 185 | } 186 | 187 | #home, 188 | .navbar-dark .navbar-nav .nav-link { 189 | color: hsla(0, 0%, 100%, 0.8); 190 | } 191 | 192 | .mask-image { 193 | display: block; 194 | } 195 | 196 | .shine-effect { 197 | position: absolute; 198 | top: 0; 199 | left: 0; 200 | width: 100%; 201 | height: 100%; 202 | background-image: linear-gradient(to right, rgba(255, 255, 255, 0) 25%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0) 75%); 203 | transform: rotate(30deg); 204 | animation: shine 5s 1.5s infinite; 205 | mix-blend-mode: overlay; 206 | } 207 | 208 | @keyframes shine { 209 | 0% { 210 | transform: translateX(-50%) rotate(30deg); 211 | } 212 | 100% { 213 | transform: translateX(150%) rotate(30deg); 214 | } 215 | } 216 | 217 | .zoomInDown { 218 | -webkit-animation-name: zoomInDown; 219 | animation: zoomInDown 2s; 220 | } 221 | 222 | @-webkit-keyframes zoomInDown { 223 | from { 224 | opacity: 0; 225 | -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); 226 | transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); 227 | -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); 228 | animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); 229 | } 230 | 231 | 60% { 232 | opacity: 1; 233 | -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); 234 | transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); 235 | -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); 236 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); 237 | } 238 | } 239 | 240 | @keyframes zoomInDown { 241 | from { 242 | opacity: 0; 243 | -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); 244 | transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); 245 | -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); 246 | animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); 247 | } 248 | 249 | 60% { 250 | opacity: 1; 251 | -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); 252 | transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); 253 | -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); 254 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); 255 | } 256 | } 257 | 258 | -------------------------------------------------------------------------------- /static/css/freelancers.css: -------------------------------------------------------------------------------- 1 | .tablewrapper { 2 | display: flex; 3 | flex-wrap: wrap; 4 | } 5 | 6 | .card { 7 | width: 345px; 8 | background-color: #fafafa; 9 | margin: 0 1em 1em 0; 10 | padding: 1em; 11 | } 12 | 13 | @media (min-width: 768px) and (max-width: 1024px) { 14 | .card { 15 | width: 327px; 16 | } 17 | } 18 | @media (max-width: 575px) { 19 | .tablewrapper { 20 | justify-content: center; 21 | } 22 | .card { 23 | margin: 0 0 1em 0; 24 | } 25 | } 26 | 27 | .card__name { 28 | font-family: "Teko", sans-serif; 29 | text-transform: uppercase; 30 | letter-spacing: 0.02em; 31 | } 32 | 33 | .card__services { 34 | margin: 0.33em 0; 35 | font-size: 0.9em; 36 | font-style: italic; 37 | } 38 | 39 | .card__skills { 40 | margin-bottom: 0.33em; 41 | } 42 | 43 | .skill { 44 | font-size: 0.8em; 45 | border: 1px solid; 46 | border-radius: 5px; 47 | padding: 0.2em 0.4em; 48 | } 49 | 50 | .card__availability { 51 | margin-bottom: 0.33em; 52 | } 53 | 54 | .time { 55 | font-size: 0.8em; 56 | padding: 0.2em 0.4em; 57 | } 58 | 59 | .card__pricing { 60 | margin-bottom: 0.66em; 61 | } 62 | 63 | .pricing_model { 64 | font-style: italic; 65 | } 66 | 67 | .card__social { 68 | font-size: 0.7em; 69 | } 70 | 71 | .card__social .list-inline { 72 | display: flex; 73 | color: #c3c3c3; 74 | margin-bottom: 0; 75 | } 76 | 77 | .card__social li { 78 | line-height: 1em; 79 | } 80 | 81 | -------------------------------------------------------------------------------- /static/images/bcneng_400x400.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/bcneng_400x400.png -------------------------------------------------------------------------------- /static/images/bcneng_outline.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 15 | 16 | 17 | 18 | 19 | 20 | 23 | 27 | 28 | 29 | 31 | 34 | 35 | 36 | 39 | 42 | 45 | 48 | 51 | 55 | 57 | 60 | 63 | 66 | 69 | 71 | 74 | 78 | 79 | 80 | 84 | 91 | 92 | 93 | 94 | 95 | 96 | 103 | 105 | 106 | 107 | 108 | 113 | 114 | 153 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | -------------------------------------------------------------------------------- /static/images/homepage-image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/homepage-image.jpg -------------------------------------------------------------------------------- /static/images/project-logos/step4ward-logo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/project-logos/step4ward-logo.webp -------------------------------------------------------------------------------- /static/images/sponsor-logos/digital-ocean.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 30 | 32 | 33 | 38 | 39 | 41 | 43 | 44 | 47 | 52 | 57 | 60 | 66 | 69 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /static/images/sponsor-logos/donut.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/sponsor-logos/donut.png -------------------------------------------------------------------------------- /static/images/sponsor-logos/opensay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/sponsor-logos/opensay.png -------------------------------------------------------------------------------- /static/images/sponsor-logos/slack.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/sponsor-logos/slack.webp -------------------------------------------------------------------------------- /static/images/sponsor-logos/truffle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/sponsor-logos/truffle.png -------------------------------------------------------------------------------- /static/images/team/cande.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/team/cande.jpeg -------------------------------------------------------------------------------- /static/images/team/cristina.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/team/cristina.png -------------------------------------------------------------------------------- /static/images/team/gon.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/team/gon.jpeg -------------------------------------------------------------------------------- /static/images/team/mavi.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/team/mavi.jpeg -------------------------------------------------------------------------------- /static/images/team/ronny.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/team/ronny.jpeg -------------------------------------------------------------------------------- /static/images/team/smoya.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bcneng/website/45e2ed729f62f6cbfe4560286833dc97470b4d13/static/images/team/smoya.jpeg --------------------------------------------------------------------------------