# Student Developer Opportunities

SBCotton is a small software firm in Lubbock, Texas specializing in providing industry-specific solutions. Many of their products are data-centric web applications using relational SQL databases, while others use emerging cloud technologies to innovate in new areas.

We have been offering opportunities for students for many years. Our original 6-month **Fall internship** program focused on high school graduates seeking to learn whether programming or entrepreneurship might be right for them.

Our current[ Summer Internship](/2019-summer-internships) program is a classic 3-month summer internship available in the summer months between semesters, focusing on more advanced candidates who already have some programming experience or training.

Our new [Spring Hackathon](/2019-spring-hackathon) is a designed to be a resume builder for all participants, and a "get to know you" event for potential Summer Internship participants.


# 2019 Summer Internships

Now in its third year, SBCotton's Summer Internship program is designed to give students a chance to do meaningful work while still preparing for their careers. Using microservices and other highly composable patterns, projects are made up of small, manageable pieces. This allows interns to work as part of a team while each works on one piece at a time, moving at their own speed.

SBCotton is seeking advanced students who would like to hone existing skills doing real work on real-world applications. They should be energetic self-starters who communicate well and like to learn. While the specific mix of internships to be offered will depend upon the projects and applicants available, they will likely be a mix of full-time (40 hours per week) paid internships and half-time (20 hours--morning or afternoon for 5 days per week) unpaid internships. Paid interns should expect several thousand dollars for the summer.

### Areas of Activity&#x20;

SBCotton has a number of projects and partnerships that will provide interesting work for interns. They may include:

* **Cloud-based Technologies**: significant and varied projects working with Amazon Web Services and Microsoft Azure, with a focus on “serverless” architecture
* **Front-end Web Development**: HTML/CSS/Javascript development using popular technologies such as Bootstrap and Angular
* **Back-end Web Development**: Server tier for database-driven web applications is built using C# and MSSQL. Javascript and TypeScript for server-side mini-apps that perform various data-processing tasks
* **Cutting-edge patterns and paradigms**: A focus on microservices, composable systems, and various services and tools aiming to enable small teams and beginning developers to amplify their efforts
* **Open Source**: Open source software is used extensively. Open source contributions are encouraged, not only to give back to the community but also to help beginning developers grow their skills and gain stature in the software community. See gulpetl.com, an early-stage SBCotton open source project
* **Mobile Development**: Native development with Xamarin, responsive web apps using HTML, and mobile apps exploring Progressive Web Application technologies
* **Hardware Communications**: Communications between PC and industrial or consumer devices; applications including optical scans, scale systems, RFID, GPS
* **Other technologies**: IoT (Internet of Things) messaging, composable systems for automated management of flat files and of semi-structured data


# How to Apply

Please email or call for further information; resumes/CVs may be sent via email to <internships@sbcotton.com>. Be sure to note which particular areas in which you may be interested, and any details about your interest or experience which may be relevant.


# 2019 Spring Hackathon

SBCotton is pleased to announce its 2019 Hackathon. There are spots available for student developers over the weekend of April 12-14 to work together to create an interesting, multi-faceted web app backed by serverless cloud tools. Participants will be exposed to lots of interesting modern and emerging technologies in a highly participatory and cooperative learning environment, sponsored and led by SBCotton staff at their Lubbock offices. The resulting project will be made available online both as a working application and as a full code repository, making it a great resume builder for all participants.


# What You Need to Know

### Core Skills/Tools - basic familiarity is required

* git + GitHub: basic source control skills are pivotal for working with teams
* TypeScript: a javascript superset that adds powerful typing and other functionality; if you know javascript, you can write TypeScript
* nodejs: server/cloud javascript (we use 8.x for AWS Lambda compatibility)

### Recommended Tools - use these, or bring and know your own

* Laptop: bring your own, or let us know if you need to reserve a workstation
* VSCode: open source code editor with live debugging for front-end and back-end environments, extensive plugin ecosystem
* TortoiseGit (Windows Shell UI for git)
* Markdown editors/viewers: Markdown Preview Plus (view in Chrome), edit/preview in VSCode, Typora (win/mac/linux)

### What you need: tl;dr

You need a laptop and a code editor, plus a basic understanding of git, javascript and Markdown.&#x20;

### Get up to Speed: Tutorials

* [Learn Markdown](https://www.markdowntutorial.com) in 30 minutes
* Git
  * [Git resources--handbook, cheat sheets, etc.](https://try.github.io/)
  * [Github + git from command line (shell)](https://medium.freecodecamp.org/how-you-can-learn-git-and-github-while-youre-learning-to-code-7a592ea287ba)
  * [Git + TortoiseGit (installs in Windows Explorer)](http://robertgreiner.com/2010/02/getting-started-with-git-and-tortoisegit-on-windows/)


# What You Can Learn

If you're already familiar with some of these tools we can use your existing skills. If you'd like to learn something here, we can pick it up as we go.

### Potential Tools - we may learn/use some or all of these, as needed:

* AWS Lambda (compute), S3 (storage), IAM (identity), CloudWatch (logs), SNS (texting), SES (email), EC2 (virtual servers), Athena (query)
* Serverless.com (serverless infrastructure as code)
* Netlify (web deployment/hosting)
* Auth0 (authentication)
* Angular (front-end framework)
* Mapbox (maps)
* D3 (data visualization)
* Ag-grid (data grid)
* AlaSQL (javascript-powered SQL on semi-structured data)


# Project Brief

Project description for the Hackathon project

## Tour Boat&#x20;

A Data Lake Explorer web app and management toolset&#x20;

Hackathon participants will create and populate a small (10-100MB) data lake in the cloud with flat files and/or semi-structured data (files should be KB/MB in scale). They will then create tools and user interfaces for exploring, manipulating and visualizing the data.&#x20;

### Core Features:

* A web app facilitating the exploration of the files/folders in the data lake
* Tools for managing the data, e.g. extracting from original sources and storing the data in a useful format (CSV, JSON, etc.)&#x20;

### Potential Features:&#x20;

Additional features and capabilities of the finished product will be dependent upon the interest and capabilities of the of the participants, but could include:

* Map spatial data from the data lake using MapBox
* Allow uploads into data lake via UI using drag-drop
* Implement authentication for web app using Auth0
* Automate data processing using S3+Lambda (trigger code when a file is dropped into an S3 bucket to be processed)
* View file contents from data lake using Ag-grid
* Visualize file contents from data lake using D3
* Build backend processing tools to convert custom data (e.g. log files) to CSV for inclusion in data lake
* Allow SQL processing of files from data lake using AlaSQL
* Manage cloud resources as code using Serverless.com&#x20;

### Project rules:

* All code and required resources will be managed and stored in a GitHub repo; ability to use basic git functionality is required
* Basic documentation and instructions will be produced by the participants for all code and tools they create. It will be in markdown files stored in the code repository, and should be sufficient to understand and maintain everything produced. Any diagrams or illustrations should be produced using draw\.io and stored in the repo as .PNG files (which can be easily edited later) and linked in the markdown files.


# FAQs

#### I’m not an experienced developer, and I haven’t used most of these tools. Can I still participate?&#x20;

There is a wide range of Potential tools listed under What You Can Learn, and most participants will be familiar with maybe just a few of them. However, you should be reasonably comfortable with the tools under What You Need to Know before you arrive if you want to get anything out of this weekend. As a starting point, clone this repo and follow the Quick Start to get it running.

#### There’s no way you can write this much code in a weekend, is there?

This is not a school project--there are no rules against using others’ publicly available code. We will seek out online tutorials and other tools to get up to speed quickly on technologies and tools we want to use. As modern developers, a large part of our work is intelligently implementing the work of others, and that ethos is reflected in this event.

#### Why is SBCotton hosting this Hackathon?

This event grew out of our Summer Internship Program, which is in its third year. We hope that potential interns will come to the Hackathon to get to know us, and let us get to know them. In addition, we’re happy to support the developer community and the educational institutions training up the next generation.

#### When is this thing? Where? What are the hours? Details, please!

The Hackathon will kick off at 5:30pm on Friday, April 12th at our office in Southwest Lubbock, and finish by 5:30pm on Sunday the 14th. We’ll keep the doors open late and provide pizza, snacks, and caffeine. You’ll get out what you put in; the more time you can commit the more you’ll have to show for it.


# How Can I Sign Up?

We will work to put together teams based on areas of interest, capabilities, and schedules in the days leading up to the event. The goal will be to create groups that can be as efficient as possible in learning and coding, so that we can produce the best possible product and experience for everyone involved. To help with this, please send us the following information at <hackathon@sbcotton.com>:

* Schedule - hours you have available during the event
* Specific areas of interest (e.g. serverless technologies, mapping, front-end, etc.)
* Resume/CV

We will respond with any questions and to let you know once your spot is reserved!


# Getting Ready

Once you're [signed up](/2019-spring-hackathon/how-can-i-sign-up), be sure to [review what you need to know and bring](/2019-spring-hackathon/what-you-need-to-know) (hint: brush up on git, javascript and node; bring a laptop with a modern code editor (like VSCode) and your favorite git tools (like TortoiseGit)).

We'll all be working on the same project, but we may break up into smaller teams at the Kickoff meeting depending on the interests and skills of the participants. Look over the [Potential Tools](/2019-spring-hackathon/what-you-can-learn) and the [Potential Features](/2019-spring-hackathon/project-brief) and see what looks exciting to you. We'll discuss the pieces everyone will work on at the Kickoff meeting, having several Features or Tools you'd like to work with will help you get a good assignment.

Be sure to [Contact Us](/contact-us) if you have any questions!


# Contact Us

For questions/comments please contact us: \
SBCotton \
6502 Slide Road, Suite 206\
Lubbock, TX  79424\
(806) 763-6686\
<internships@sbcotton.com>


